And rule four: The OS must be be open source and freely distributable.
Now it is time to define exactly what we want the OS to do. What are Mike's needs from an OS? Like most geeks I like to do a bit of everything with my computer. I need most of the standard, consumer-grade applications. These applications would include media players, office applications and Internet applications. It almost goes without saying that I want to run these applications within a stable, multitasking GUI environment. Why GUI-centric? Because it's what Mike likes!
This raises an interesting point about FOSS in general: A lot of people who have only ever used a mainstream OS are unaware that alternative OSes like Linux have access to more free applications than a commercial OS like Windows. If you want to burn CDs, edit text files or play video files for example, you might run into the problem of there being too much choice with Linux. You might try three or four text editors, all of the them of a high quality and completely free, before you settle on the one that suits the way you want to work. This, for me, is part of the attraction of a FOSS OS.
Defining 'stability' in absolute terms is not an easy thing to do. In this case, I am specifying what I expect in terms of OS stability; improving universal application stability is beyond the scope of this project. I consider stability to be an area in which most modern operating systems have improved over the older generation. Some people seem to have a different memory of these things than I but I seem to remember that my RISC OS, Amiga OS and OS/2 based machines would crash quite often. Every Amiga-head must shudder at the memory of the pointer going stiff, shortly before the power light begins to flicker.
In contrast, my Windows 2000 and Ubuntu machines are very reliable. In fact, if either of them suddenly reset the machine or froze, my thoughts would probably turn first towards hardware failure. I regard this, 'one complete crash per year, if that' expectation of stability to be a realistic one and one that is representative of an area of genuine progress in modern operating systems.
Rule five: Multi-tasking, with modern audio video media facilities. It has to be as stable as reasonably possible - about as stable as other modern operating systems.
These specifications are, again, useful as they help us to narrow the field a little bit. For example, the open sourced version of GEM can't be used as the basis of the project because it's not multitasking and it doesn't have a powerful multimedia subsystem. [for more info about GEM, see this article - [ http://en.wikipedia.org/wiki/Graphical_Environment_Manager ]
Similarly, AROS can't be used either. AROS is a portable Amiga OS-like with freely available source code but it's multimedia features are not complete. Another strike against it is that, in order to maintain some backwards compatibility at the source code level, it doesn't support full memory protection. There isn't much one can do when the MP3 player application has just corrupted the workspace of the word processor. Even for a high luck character, it seems fairly certain that this design could never consistently maintain the sort of stability that MikeOS specifies. [For more info about AROS, see their homepage - http://www.aros.org/ ]
Other things that Mike likes to do include music production and playing games. Unfortunately, we need to make the OS successful before commercial development houses will start to port over their commercial grade games and media creation utilities. For this reason, I'm willing to keep dual booting for these two things for the time being. Don't give up hope though, a quick Google for the words 'Steinberg' and 'BEOS' reveal that, in 1998, some BEOS support for VST plug-ins had been completed and that work had begun on a BeOS port of a variant of Cubase.
This highlights another advantage of both making MikeOS a FOSS project and of basing it upon existing FOSS components - it can't be killed stone dead by the financial problems of a parent company and neither can it be held back due to legal difficulties. In the same way, there is no way a huge corporation can buy it just simply to kill it.
Single user, Client Orientated, Media OS
Another specification of MikeOS will be that it is basically oriented around the single-user model. By this I don't mean that MikeOS would have no multi-user features such as multiple log on identities and subsequent per-user /home directories; I think that features such as these are relevant to the single user experience I am attempting to specify. My point is that, advanced multi-user facilities such as being able to run a program from another machine on the Internet or the ability to allow hundreds of other users to simultaneously execute programs on your machine should not get in the way of the single-user client experience.
This emphasis that MikeOS would be designed for a smooth single user experience leads us to rule 6.
Rule 6: One of each of the components that make up the base installation.
This means, one shell, one GUI, one sound subsystem etc. Software installation is discussed further down.