posted by Michael Reed on Thu 12th Oct 2006 18:00 UTC

"My Dream OS, 4/5"

I don't like the idea of having all of my system files in the root directory so we could move them into a parent directory called /sys. So, the fonts would be located in /sys/fonts. Even having some subdirectories within these system directories seems not unreasonable when compared to the Human Rights violating torture which passes for some Linux file location specifications. Having the shared libs relating to networking located in 'libs:/networking/' doesn't strike me as at all unreasonable.

Personally, I consider the idea of a completely hierarchical file system to be a superiority of the Unix file system. MikeOS can place actual drives beyond the system drive in '/drives'. There would be no directory higher than '/' and no file system objects can exist outside of the root file system, only within it.

The best elements of the Linux/Unix file system conventions can be retained. As you might have surmised by now, MikeOS would probably be using Linux file system code, there would be no point in 'switching off' useful facilities such as hard and soft-links.

Software Installation

Here's another area in which I would like to break with Unix conventions. MikeOS would use RISC OS/MacOS X style application folders. I like to know what is on my system and where it is. Installing a Linux application generally involves scattering the files over 20 or so directories. This approach might seem acceptable when the package manager works flawlessly but unfortunately, no package manger ever does. What about all of the smaller utilities which don't update the package database following a ``make install''? I am writing this article in Lyx 1.4.2 (self compiled to get the latest version) yet according to the package manager, I only have version 1.3.6 installed.

Once they have been installed/compiled, Linux applications sometimes leave behind no clue as to where they went! At this moment, I can't remember if the Amiga Emulator is even installed; the only way to find out would be to open up a CLI and type 'uae' (or 'UAE' or is it 'e-uae' for this version?). I wonder what other things are lurking on my system, once installed but now forgotten?

Basically, as MikeOS would be a consumer orientated OS, programmers would create the packages for users to install. The applications can be installed under '/applications' other, not Unix-based OSes seem to be able to support an analog of '/applications/firefox/' for the Firefox install directory (with shared libs going into a shared libs directory).

We can put command line tools into '/bin'. The proof that this is feasible is that I was able to install lots of the GNU tools such as 'grep' and 'ls' onto my OS/2 box without a maze of historically-inspired directories. If, in a typical Linux application package, a significant proportion of the files in an application directory are shared resources, which need to be used by other programs, why are they in the application package?

Perhaps the same approach could be taken towards drivers and services? If it was feasible, could I drop a service that I wanted started at boot time into '/sys/services/'? Mac OS 7.x had an 'extensions' system that worked a bit like this. I don't mind resetting to add major system-level components of that sort; MikeOS isn't designed to run a phone company database server which must be kept running 24/7. Drag the files across, configure what needs configuring and then go to make another cup of tea while the system reboots.

Standard Tools

Being heavily based on Linux, MikeOS would make every effort to retain compatibility with standards such as Posix. This is because it would allow make the maximum reuse of standard tools. All of the GNU tools, for example would be usable for 'free', once we had an OS that could boot to a command line and that would be able to support a compiler/build environment. The GNU tools include all of the standard tools that one would expect of CLI such as ls (dir), grep, cp (copy), etc.

[A good summary, of the GNU Core Utilities exists on the wikipedia page: http://en.wikipedia.org/wiki/Coreutils ]

The CLI itself, would be Bash. In keeping with the MikeOS philosophy, there is only one choice of shell and it comes standard with the OS installation.

Likewise sound subsystem, peripheral device support and networking would, wherever possible, be provided through the reuse of existing technology.

Table of contents
  1. "My Dream OS, 1/5"
  2. "My Dream OS, 2/5"
  3. "My Dream OS, 3/5"
  4. "My Dream OS, 4/5"
  5. "My Dream OS, 5/5"
e p (4)    67 Comment(s)

Technology White Papers

See More