Re: Creating an operating system
From: Robert Wessel (robertwessel2_at_yahoo.com)
Date: 20 May 2004 23:00:00 -0700
email@example.com (Dan) wrote in message news:<firstname.lastname@example.org>...
> I'm looking to write an custom operating system designed for one
> purpose. It is going to be much like Google's operating system, which
> is designed for hardware fault tolerance and distributing computing
> power. I'm a developer but I've never had experience with writing or
> designing an operating system.
> I wouldn't be the one actually writting it, so please don't post
> saying I'm out of my league. I'm actually looking to know if anyone
> (who is reading this)has written a custom operating system or has been
> involved in it. I'm wondering how long would it take to write
> something like this? It would most likely be heavily based on linux.
> For say 5 guys who have experience in linux and linux kernel
> development, what kind of time would it take?
> I'm not sure if it would be easier just to modify the linux kernel or
> actually just write a new one from scratch (I'm really don't know much
> about this area).
> I'm obviously not looking for an exact time estimate because it would
> take too long to give all the details on what I'm trying to do, but I
> am looking for a general time frame, like 5000 man hours? 20000?
> Has anyone had experience working on anything like this?
My first question is what exactly is missing from Linux that you need
for your application? Fault tolerance and distributed computing can
be implemented in many ways, but much depends on the application.
Just as an example, in what way would a Beowulf cluster be inadequate?
Without knowing more about your application, it's hard to make any
suggestions, much less produce an estimate.
For example, if the problem breaks down into nice self-contained
chunks, a tructure something like SETI@Home can work. If it's
something with a big, but loosely connected, database like Google (you
mentioned only distributed computing and fault tolerance), they've
pretty much put data mirroring at the application layer on their
database machines, and have web services on front end machines. If
you were planning something like a big e-commerce web site, you might
do some sort of database cluster for the back end (you could use
Oracle, as one example), and have some number of web servers in front.
The DB Cluster is internally fault tolerant, and you drop off dying
web servers with your load-balancing device in front of the pile.
So knowing what the structure of the applications is, what's shared,
what's communicated, and what kinds of faults are to be tolerated or
recovered from, overall levels of reliability required, and of course
the performance requirements for all these areas. Some idea of the
budget parameters would be nice too.