If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

OpiOS

Well, I started re writing the design of my OS, and have changed a bit of it. I am re opening discussion on it, and so whoever wants to can give an opinion here. Keep the criticism CONSTRUCTIVE:

Heres my OS:

I'd write my own OS but I have no intentions on being a programmer. I'm an OSs person and thats that. I can secure my systems and I would make my OS a mix; I would talk to the developers of Solaris, Trusted Solaris, and Open BSD to work on a security stand point.

I want things to stay simple yet effective. DOS was very simple yet did it's job. I'd have the people who write OSs similar to DOS work with the coders to make things stay simple.

I'd have them there, not to WORK on the system, but to watch over the other programmers. Also, SuSE, Debian, Slackware, and Mandrake Linux would also be hired in. I think those are the best of the best in the Linux world. I like SuSE and it is my favorite distro, so I would take parts from them and strike a deal with them.

I also like Slackware because it's simple and effective, mix that with the simple and ease of use of SuSE, and then add features from Mandrake because the way they do a few things I also like, and then Debian, another fav of mine.

Debian would have to be in there because apt-get would be a feature of my OS.

Then Id have a nice design ready. The actual OS would be a mix between Solaris, Trustred Solaris, Open BSD, SuSE, Mandrake, Debian, Slackware *BSD, and BeOS. As for networking, I would hire in Free BSD. I think Free BSD is very good with networking and I would use some of what they do too. The Linux 2.6 Kernel from what I understand has been running circles around most OSs for networking, so that would be a big basis for idea to.

The TCP stack would be very much like the one in the Linux kernel, as it is one of the best. Also the only one completly RFC complient.

Something that pisses me off about any OS is when it becomes bloated. To try and combat this, I would try to keep the people coding it in check with the people from DOS. DOS was not bloated. Anything that can run of a floppy usually is not. And as I have said before, I want the install VERY customized. If you want that is. You will be able to do the install in a number of ways.

One of the things I like about an install is being able to do it my way. I think one of the hardest things that will need to be done, will be trying to get it all to fit on floppy/CD/DVD. I want people to be able to install this OS even on a 286. If DOS can run on it, my OS damn well better be able to. Regaurdless of how old these machines are, I do not think it is right that an OS can tell you when your machine is to old. That is not right.

I know this would mean making several versions of the OS. This may seem very stupid, and maybe all of them won't sell well. That's ok, I'm not doing this to become rich, I'm doing this because I WANT too.

I would make a version for the 286 - 486 machines, that would be based on floppy disks, and if possible, a CD-ROM. Obviously, this version would work on new hardware too, but it would come with the OS. The box for this OS when you bought it would obviously be huge. Bigger than a SuSE Linux 9.0 Professional box by far.

This would accomplish a few things:

Users would not have to upgrade, or toss out there old machines.

They would be able to install it on the main machines they use, and then use the other versions for an old machine they have lying around. So buying it would get you the CD/DVD disks to install, and also the floppies.

I would make the OS simple, yet seemingly complex. I would split the OS into peices and have each part to one job VERY well. If you know alot about UNIX, this is the basis for it too.

I would NOT make it like a Micro Kernel though. It would be a monolithic kernel, because making a Micro kernel is a pain in the ass. You have all of these ervers who need to communicate with each other, and then, if something goes wrong, you have to try and figure out which service does what, and when you fix one, you could break the others. It's a big head ache.

I would give the option to have a GUI or not, which during install would be chosen, but after picking it you would not be locked into the choice. You could type a command, and make it start booting in GUI mode. Also, I don't like OSs that make you type sopme weird ass command to make things happen. The command to go from booting into CLI only, into GUI at boot up, would be simple: bootup="gui"

I like that, it's easy to remember, and of course would require root access. There would be a root account, just as in UNIX, except unlike UNIX, installing software would not always require root.

Trojans, virii, worms, they all need to be able to run, and root kits do to, for them to work. Well, installing software needs root access on most OSs, and that gives the thing a chance to take over a system. So I would be making it so, depending on the software, and where it came from....Hmm, I just made up a new Idea, while you install software, it would do a scan of the code inside of it looking for strings. If a Virii or malicious like string is found, it would report this to you, and tell you about the string it found.

For installing trusted software, as in software coming from the OS install media, or from the OS web site, that would be ok with root. But software downloaded from the net, that would be scanned, and installed with maybe a sudo style tool, that would not allow the software access to anything it didn't need. Also, the software would be monitored, and watched. Kind of like a tripwire style tool.

If it tried doing anything else, or did something it wasn't supposed to, it would be locked in a "Code Cage" so that it could not hurt antything, and the root account would be notified of this, and then the proper action could be taken.

The "nobody" user in Linux is who would be running most server software/Daemons. That way if someone exploits code of say, apache, they don't get root that easy.

The GUI would have a meter you could use to basically choose how GUI intence the system would be. If you have a powerful machine and you like eye candy, You could set the system GUI FX up all the way and everything would look beautiful, tasks would start up like movies.

But, if you wanted you could also run it on a 386. and if you wanted it would have a user interface that ran on a 386, not just command line. Of course this would be similar to a DOS Shell, the mouse would work, but the GUI would be nothing more than colored text and things that would prolly resemble a drawing on the screen, kind of like PC-DOS uses.

Also, I would make it so that it had "patches" for compatibility. Like if you wanted it to run Windows **** or something like that, you could install the patch from the installation media. That way the system wasnt hogging resources for no reason.

Stability, Reliability, Security and Performance would be what I'd want first. The GUI would look awesome, but I wouldnt take away from reliability just to "make it look pretty". The installation I think would be new. I would have it set up so that while you were installing it was interactive.

Like when you booted it up it would have a nice looking splash screen and then detect your hardware, but while it was doing that, there would be a screen asking you to turn on your speakers and click a button when you heard a test sound. After the speakers were on and a nice sound level was choosen, a little text box would pop up and it would say Hello, what is your name? And then you could tell it your name and it would say Hello to you and ask how you were doing and ask if youd like to play a game.

Id have a couple low resources games for you to choose, like testris or tron, or a window would come up for you to draw on while you waited for hardware detection. Also, hardware support would be very important to me, all the new features of hardware can't be used if the OS cant find it, right?

That is why I would go to almost every hardware manufact and ask them for drivers or specs to create them. Then I would have the drivers tested. Also, I would recommend Nvidia cards to my users.

I'd have a chat with the people who make Nvidia cards and tell them about it and ask for them to include drivers for my OS on the CDs of there cards. Id also do this with juts about every other hardware maker. That way people using this wouldn't have the excuse that with Windows the **** works because theres support.

That wouldn't be aloud to be said anymore, because my OS WOULD have support. And everytime something new came out, I would have a patch ready on the OSs website that would add the drivers to your system. Before the thing was released though, I would hire hackers, crackers, and system analysis people to come in and seriously **** with the thing.

I'd give them a copy free for doing so, and, along with cash, I think they'd do good. After the OS was done, I would take the code form it, and chop it up into peices, and have secure code analysis done on it to be sure there aren't any holes in it or security flaws that make compromise the system.

Also, to everyone who used it, I would have the activation codes for every copy registered, and that way I could make the OS pop a Window up after the install saying "Congratulations! Your registration code was a randomly generated number that has a winning package" Or some **** like that where there would be a few of the packages sold having registration codes that, when registered, would alert the user that they won, and then, they could take the code and call up a special number for OS tech support and say they got the message, and then that person could verify this and they would win a new computer or $1000.00 in cash.

The registration code they used would then be marked off so it couldnt be used again. I duno I just think that this would be a nice change in OS installation than the usual "please set your clock" bullshit I see every week when I do an OS install.

The OS itself would be sort of UNIX based, it would be able to run KDE and all the other X clients, but also, by default, it would use a custom one that came with it. Also, pricing would be very similar to Linux distros you see in a store. I would charge around 70 Dollars for it. Thats a decent price and people can usually afford that much, **** they pay twice that for Windows anyway.

Also, I would have so much software available. By default Id let you choose what you wanted, but the install would be 2 DVDs at least. Unless you did it for 386s, then it would be on floppy, which I would have the OS come with the DVDs, CDs, and floppies for the installation. The floppy disks would contain software for the OS made to run on old machines. The DVDs would be like SuSE Linux, you could install from CDs or DVDs.

But to make it so you could have good software on your older machines, I would have the basics needed be on the floppies, and then, the software could be downloaded, or installed from CD, and compiled, or installed.

I guess after using more than 40 OSs, I know what I and a few others would like to see in an OS. Oh yea, more importantly, the OSs would come with Tux racer, Vi, Emacs, an Unreal Tournament Demo, Doom, Quake, and a firewall.

Wouldn't it be nice to have an OS come with a computer you bought at a store that was actually not Windows? Id strike up deals with alot of people like Microsoft did, and that way we could minimize how many viruses people were hurt by. There wouldnt be no damned VB script in my OS. Id start out with at least x86 and Alphas and Sun stations being supported. Id have it so you could buy the version for whatever hardware you were using it for.

Also, that piracy bullshit wouldn't have people in jail. Well not as much anyway. I'd make it so when you bought your copy, you could install it on 3 machines. Not 1, but 3. Most people have 3 or less machines and I dont think it's right you have to buy 3 ****ing copies of the same software because your kids wanna play with it too, ya know?

So I'd allow 3 machines to use it at once, for the same price. That way they could try it out on one machine, and if they only had, say, two machines, they could let a friend borrow the CD to try it out.

This way, people aren't being accussed of piracy, and they can go back to being people who actually share, but with some rules. I know that bit would probably make Richard Stallman smile.

I'd have a built in command line that could use DOS and UNIX commands so you wouldnt have to re learn anything. But also, I'd have extra commands built in. Also the fact that it would be cheaper than Windows would help.

And I would stick by what I said about installation, I'd let it go for 3 machines. Because it really is ****ing dumb to have to spend 900 Dollars on Windows because the kids wanna play with it too. As for using it as a server, I'd have the most common servers able to be ran on it and also, I'd have new ones.

A new FTP server, a new Web Server, all kindsa ****. I'd make sure it was compatible with **** though too. Also, by default, all servers and or Daemons would be shut off. But also there would be a program to configure services and **** like that. But also the thing would have a text version too. Kind of like YAST2 from SuSE.

Also, maybe I'd make it so the server **** didn't come on the install media, but after you registered you could download them or...Hmmm *Heh, neat watching the thought process happen isn't it? * Maybe I'd just have a CD that came with it that had all the servers on it.

With a warning about them saying something like "You will usually only need these if you are a sys admin or if you are setting up a computer in which other computers need to access the machine, if you aren't sure, you don't need them".

Hmm, yea, that sounds good. And I think that having the site have patches you can add everytime new hardware is released would help. Like when a new peice of hardware was released the site would have a patch to download which contained drivers.

Heh this would rock man! Also, the OS would be able to run Windows software, Linux software, BSD, all kinds of OSs. That way people who wanted to try it or buy it but couldn't switch there platforms over could continue using what they already have and this too.

If it's not compatible with anything, no one will want to use it. Specially companies who use Windows, they aren't going to use this if they have to buy all new ****, but if this works with it just fine, they'll buy it, then if they like it, then they buy it and use it exclusevly, that little ability to CHOOSE what you want to do, will make me rich.

Also, I would have another patch to download or have it on the CDs or DVDs, that would allow you to run DOS programs, Windows progs, all kindsa ****. So people could buy it and use it as a server without having to ditch what they use as the server software.

Also, I would have it so games would be supported to, that way gamers could use it. I would also add a program to it that would monitor temps inside the machine, so that when it got too hot, it would display a warning message and play a series of beeps so sys admins and users could adress the problem without having to buy new machines.

I think system availability is important for a company, and you cant use a machine that bursted into flames because it over heated. Also, I would add a custom multi media player. I know I for one did not like Winamp, XMMS is cool as hell though, but I'd wanna go better, I would have OpiuMedia Player as a program that came with it. It would be fully skinable, resizeable (****ing small Video windows get on my nerves, and getting pissed about a problem leads to creativity), And also, I would make sure it was NOT a RAM and resources hog. It could be ran in Command line mode or "Text" mode, and Also in GUI.

It would play ALL media types. Codecs are a pain in the ****ing ass to search for, this would play everything. Also built in key strokes would be used. Not like exclusivly, but if you didnt feel like using a mouse, I'd have keystrokes for all tasks. And if you had the player in full screen, I'd have a pop up saying how to exit full screen mode so people wouldnt get disgruntled.

This OS will change computing as we know it. I have almost 40 OSs. and if you include some I downloaded a few days ago; I have like 49. Iv used A LOT of OSs, I know what I liked and what I didn't like from each one, I'd take away what was annoying and I would add my favorite parts from each one.

I would also have man pages like UNIX has. But also, help tools would be very important too. You can't tell someone to read the ****ing manual if they don't know where to start. I'd have it come with basic manuals for how to install and how to use it, but also for the people who enjoy hacking OSs, I'd give them something to quench that extra "how does it do that?" type of thinking.

I'd have a help menu with a search bar that would allow you to ask questions, and also just search for something by key words in general. It would be set up so you'd ask a question, and it would use the words you typed to find matches. Also for the people looking for more info, it would work the same way. It would take each word you typed in and find every manual/help file with matching words and display them.

But for people new to the system I'd have more options available, like it would ask YOU questions and then display what it would think you want. Also I'd have it with a few minor learning capabilities. The things you did most for example, It would do a sort of "defragment" on the fly. Like when you opened a program or did something, it would take a note of this and then after you used it for say 3 days and it had a decent amount of "notes" it would cache the things you did the most so they loaded faster.

The command line I think would be a very strong point. I'd have a tool kind of like YAST2 because YAST2 ****ing owns. Except I would make it so you could add hardware and **** without rebooting. I think it would take some neat tricks to pull that off.

Like one of the custom commands would be to make part of the File system (Morphine138) sleep, or sort of save all changes for you and shut that part of itself down so you could pop in hardware and then issue another "Wake up" command and it would refresh everything in memory and find the hardware and install the actual drivers for it...Actually, no, I have it pop up a menu and have it ask how youd like to install the drivers.

It could connect to the OpiOS website and download the latest driver, or install it from the install Media, or..Something like that. Just about anythinng to keep it from ever needing a reboot. I know I hate having to reboot, specially when you got a nice uptime going.

Another part of the OS would be protected memory. I'd make it part of the OS. I'd call it "memory Body Gaurd". It would keep an eye on everything in memory and if it detected something about to happen that could cause the system to become unstable in anyway, it would try to prevent it, and if it did freeze the system or become unstable, it would pop up a message telling you about it and then have a few options, you could basically just refresh that part of the OS and it would kill anything that seemed to be giving a problem.

I dont think that would happen though because of the people who would be working on this. And this would also go back to how the OS would be able to shut a part of itself down to allow the installation of hardware without rebooting. The ability to do that would be a main feature.

I know something like this is possible because Solaris doesn't usually need a reboot for hot swap **** or other hardware. The commands to shut down a part of the file system and bring it back up would be the sedate command, to make a part of the system fall asleep while you performed the surgery on the case (taking it off and adding hardware...kind like giving the PC a boob job, there both silicone right?) and then the coffee command would bring it back up.

I think another way to achieve this would be to have every part of the MOBO monitored by the OS, the PCI slots and drive bays could be monitored, and then AGP slots, and the RAM slots, and then when you wanted to add new hardware but didn't feel like rebooting the machine, you could tell it to sedate a certain area, it would sort of shut that part off, you could add it, then coffee it back on and it would find and use the new hardware.

I think the file system I picked would be a good choice name wise. Morphine was named after the Greek God of dreams, so The Morphine138 file sytem, which would work like a dream, would be very nice. Also the 138 is in there, because so many file systems seem to have numbers. Fat16,32,EXT2,3....**** like that. And 138 would of course be taken from my Love for the Misfits.

I'm really glad you all are in this thread. I think its going VERY well. I'm getting a lot of feed back and Also thanks to everyone for thinking its a good idea so far. I love it! And me being an OSs person, well it's fitting that me, whos used so many, be the one who makes the ultimate OS.

I'd also strike a deal with ISPs. I'd give them the OS for free to use on there servers and to give a few employees. In return, all of the users of OpiOS would get free internet access if they wanted it. Kind of like, you scratch my back and give me a reach around and I'll hook you up and save you a few thousand dollars in software costs.

I would have the file system (Morphine 138) have encryption built in. Also, if someone somehow got into the machine from an exploit or whatever, or if your a bastard like me, I would have a logout command.

Logout would work like:

logout -user -now or later or whatever.

Also, I would have it so that logs were stored in a special area, that way if someone did break in, you have logs, and if they whiped those, you have a back up that no one can get to because they'd be encrypted and stored on a separate partition.

Also, I think I'd want to add something like, for example, being able to handle a couple TBs of RAM. Also if you wanted you could allocate RAM for DDOS attacks. That way if someone was DOSing you, you could set aside RAM to handle that. The OS would detect the attack. Mainly by seeing that you had a **** load of useless data coming at you, and then use the allocated RAM to deal with the problem by not only sending some back, but also not responding to the rest.

That way some lamer bitch DOSing you would get DOSed himseld and you'd seem to dissappear.

hi
The outline you gave is Awsome, how much you wll be able to practically implement will be the question. there will be many factors hindiring this time, price i think would be one of those factors. I don't have that much experience in OS creation, and you have quite a team there but still using my limited knowledge and through a user prespective i would like go give a few suggestions here. First and formost is modularisation(cohesion and coupling how will you be able to balance those), because the thing from a user prespectve what i hate most about most OS is the amount of closily coupled they have with the running application, like in windows 98/Me they are so coupled it the running application fails(hangs) more often than not the whole OS is effacted it either becomes unstable or hangs and you have to restart it. thats what i like in WinNT based (2000,Xp etc) that the overall system is independent from the user applications running under it. if one application fails generally you will be able to safely close the app. without affection the others.

I will have to to school right now i have printed your post gore and i will give it a through read. then i guess will be able to comment on it further.

Re: OpiOS

Well, you asked for it...

First off, don't call it OpiOS, it makes you sound like you're a drug dealer or something. You'll end up with your creation being the exclusive domain of l337 script kiddies who use it for "hacking" because they think the name sounds cool. I doubt you would attract many home or business users with a name that sounds like a drug.

I'd write my own OS but I have no intentions on being a programmer.

I think you'll need at least a reasonable understanding of C, even if you're not a die-hard programmer. You will probably have to edit some source code at some point during the creation of an OS, even if you are just building it from existing software.

I want things to stay simple yet effective. DOS was very simple yet did it's job. I'd have the people who write OSs similar to DOS work with the coders to make things stay simple.

DOS was a nightmare - you couldn't even delete directories recursively and there was no command line completion (although you could argue that it was unnecessary in a world of 8.3 filenames).

I'd have them there, not to WORK on the system, but to watch over the other programmers. Also, SuSE, Debian, Slackware, and Mandrake Linux would also be hired in. I think those are the best of the best in the Linux world. I like SuSE and it is my favorite distro, so I would take parts from them and strike a deal with them.

I don't think you'll have a huge amount of success hiring in all those people, since you would in many ways be the "competition". Although YaST 2 is now licensed under the GPL, so you could use parts of that if you wanted.

Debian would have to be in there because apt-get would be a feature of my OS.

Or (shock horror) you could consider ports/portage from FreeBSD/Gentoo. (sorry, had to get that one in).

Then Id have a nice design ready. The actual OS would be a mix between Solaris, Trustred Solaris, Open BSD, SuSE, Mandrake, Debian, Slackware *BSD, and BeOS.

Whoa, you're going to mix *9* existing OS's and expect this to work? Not just that, but mixing BSD, Linux and BeOS?

I know this would mean making several versions of the OS. This may seem very stupid, and maybe all of them won't sell well. That's ok, I'm not doing this to become rich, I'm doing this because I WANT too.

No need to make separate versions per se, just compile with different flags and don't include memory crunchers such as KDE.

I would make the OS simple, yet seemingly complex. I would split the OS into peices and have each part to one job VERY well. If you know alot about UNIX, this is the basis for it too.

Absolutely definitely. Each programme should never become a jack of all trades and master of none.

I would give the option to have a GUI or not, which during install would be chosen, but after picking it you would not be locked into the choice. You could type a command, and make it start booting in GUI mode.

That isn't difficult... just change the runlevel in inittab and don't install a GUI. To start a GUI once you have the command line is startx. Or just check the boot parameter and have that start xdm/kdm/gdm/whatever.

Hmm, I just made up a new Idea, while you install software, it would do a scan of the code inside of it looking for strings. If a Virii or malicious like string is found, it would report this to you, and tell you about the string it found.

I would imagine that this is extremely difficult to automate - you could look for known malicious strings (e.g. if someone has hacked Apache to include subseven or whatever) and do some heurestics but other than that you're better off looking at the code or just trusting the source it came from.

If it tried doing anything else, or did something it wasn't supposed to, it would be locked in a "Code Cage" so that it could not hurt antything, and the root account would be notified of this, and then the proper action could be taken.

"Code cage" sounds extremely similar to the jails feature that already exists...

The "nobody" user in Linux is who would be running most server software/Daemons. That way if someone exploits code of say, apache, they don't get root that easy.

Have separate users (with the nologin option) for each major server, that way if someone compromises Apache there's no way they can get at sendmail either (e.g. asking Apache to read the sendmail config files would fail).

The GUI would have a meter you could use to basically choose how GUI intence the system would be. If you have a powerful machine and you like eye candy, You could set the system GUI FX up all the way and everything would look beautiful, tasks would start up like movies.

You can do this in KDE, and I bet Gnome either has or will have (in 2.6) this feature.

I might comment on the rest later, but I can't be bothered reading it all now.