Aug 7 2008

Where Have All The Hobby Operating Systems Gone?

With web applications, web programming, and social media being the current buzz these days, I don’t hear a lot about people getting homegrown operating systems off the ground that much.  In schools, at least the one I attended, operating systems is covered more at a theoretical level than at a practical level.  I’ve been contemplating the idea of building my own operating system for quite a while now.  I don’t have any long term vision for it right now.  Indeed my only expectation for it is that I will be able to write it myself from the ground up.  This is the ultimate programming challenge for me.  I’ve also been fascinated by operating systems and other applications written by individuals instead of massive teams.

Small Is Key

Building a monolithic os is not the route I want to take.  Rather the goal for my os is building a very small kernel with a pluggable infrastructure.  Operating Systems like Minix 3, which has only about 4000 lines of code in its kernel, really appeal to me.  Minix 3 has a very clear goal about what an operating system is and what it isn’t.  In Minix 3 the operating system is the code that carries out system calls and system calls are the interface between the operating system and user applications.  This means that things like shells, GUIs, editors, compilers, and other apps are not part of the os.  This makes maintaining the core operating system easier.  I also like the fact that it is fully POSIX-compliant.

Plan 9 is another interesting operating system although it is somewhat bigger than Minix.  However the kernel source code is between 40,000 and 60,000 lines so it is still within the readability range for one person.  I was first introduced to this operating system in 2000 when I was a summer intern at AT&T Labs and again in 2001 while interning at Bell Labs.  I had a chance to meet quite a few people involved in it’s development.  But in all honesty I had no real interest in operating systems or their development at that time.  But back to Plan 9, the thing that is most attractive about this OS is its structure.  Its implements an underlying distributed file protocol called 9P on top of which most applications sit.  Rio, a distributed windowing system and alternative X11 is one such application that sits on top of 9P.

Alternative Operating Systems

I’ve been investigating other operating sytems primarily developed by just one person and was surprised by just how much could be accomplished.  The current popular homegrown operating systems are MenuetOS, SkyOS, and AtheOS.  I know that there are probably many others out there, but these are some of the most well documented.  MenuetOS seems to have started with one developer, Ville Turjanmaa, but I don’t if the development team has grown since.  SkyOS’s creator, Robert Szeleney, recently took on another developer for his os as he is trying to get it to a professional level where it can compete in the market place.  AtheOS was coded from the ground up by Kurt Skauen, but this project has been abandoned for a number of years although a fork of the project called Syllable is being developed by a group of volunteers.

The MenuetOS has a monolithic structure and is completely coded in assembly language which makes it pretty fast.  This also makes the operating system unique.  Most modern operating systems contain some assembly language coding in the kernel and use a higher level language for implementing other system features.  Everything in MenuetOS is coded in assembly including the GUI.

Although AtheOS was developed by by one person, Kurt Skauen, it still has very good POSIX support which makes porting Unix/Linux applications to the platform easier.  It has a custom GUI application, a TCP/IP stack built into the kernel, and a native network file system.  The AtheOS project is no longer active but since it was licensed under the GPL, two forks of the project were created.  Currently the only active fork seems to be Syllable.

SkyOS is my favorite of all the hobby operating systems I’ve come across.  I first remember seeing this os when I was in college.  Even back then the development of it was really advanced.  It’s creator, Robert Szeleney, has been working on it for over ten years.  Many of its APIs are POSIX compatible so it’s easier to port applications.  It has too many features to list, but it is very impressive.

Is Open Source The Way To Go?

I don’t know.  It seems that when most people think about hobby or alternative operating systems, open source is the first thing that comes to mind.  Now I have nothing against open source.  I am a linux user so I realize that linux couldn’t have come as far as it has without the support of a strong open source community.  But all operating systems have different goals.  Minux is an open source operating system with the goal of educating people about how to actually write operating systems.  MenuetOS seems to have started out as an open source operating system but now is distributed under its own custom license.  SkyOS started as an open source operating system as well but the creator, Robert Szeleney, decided to close the source as development continued to progress.  AtheOS was an open source operating system and has remained one.  However, even though AtheOS was open source its developer, Kurt Skauen, rarely took software additions and fixes from the public.  It was his project.

My reasons for creating an operating system are mainly personal in that I just want to prove to myself that I can do it.  I don’t think I would necessarily want my operating system to live on after I was done with it.  As I said before I have no grand plans for my os or any idea what feature set it will include other than that it will consist of a small kernel.  I think it is better just to get started doing something rather than trying to plan the entire os from the start especially since I don’t have experience writing operating systems.  It’s just a project I want to work on in my free time and on weekends.

KJ

Random Posts

Subscribe To HighTechSister.com

LEAVE A COMMENT

Subscribe Form

Subscribe to Blog