I can’t quite believe that it’s taken me this long to realize this. Particularly because it was five or seven years ago that I spent a great deal of time trying to figure out exactly what it was about Erlang that was whispering in my ear; but now I think I know.
We are seeing the emergence of a third species of the operating system.
The first time this happened was the operating systems built at Parc. At Parc they found that if you wanted to X you needed to let go of Y given that there were limited resources at hand. To get a really fast user interface they had to give up a whole range of standard operating system design principles. The result was a machine that was quantitatively different. The first Macintosh repeated this design pattern. You could tell because experts in traditional operating systems and programming were agast at the corners the Mac folks had cut. Everybody else was blown away by what they had achieved.
A new species of OS emerged; the Desktop OS by mutating off of the real OS. This mutant rejoined the main stream, though it took 25+ years. These days we expect a rich UI, deep internationalization, human response visual time-constant interaction from all operating systems.
For the last five to ten years I’ve been interested in the emerging network OS. Aka: “The network is the machine.” Look! Two definite pronouns in one slogan: the network, the machine. Talk about monopoly! The key puzzle is who will own, or who will govern, that great network OS. Hence my interest in standards.
Aside about the structure of that problem … Operating systems are two sided network effects. They bridge between applications and hardware. Bridges are good places to put up a toll booth, a central authority, or a monopoly. So open standards are a way to try and keep the network operating system rasonably free. They are key to the maintenance of the end to end principle. Key to avoiding a single point of failure, and reliable. Key to a reasonably priced information super highway for the planet. So this particular OS is pretty contested turf.
Ok, so that’s two species of OS: the network kind, and the regular kind. What about this new kind?
New species arise when the environmental pressure take on a new shape and a niche exist long enough to tolerate the mutations With luck you get a totally new kind of beast. Of course at first it’s just an ugly mutation of the old beasts. The valuable mutations, for a new species of OS, are the ones that respond to powerful new pressures and the shape of the niche. I think you can see that happening at places like Google.
Go read these two postings, and then skim the third link. Rich Skrenta makes the case that Google runs the worlds largest computer and most advanced operating system. Then Jason Corace picks up the ball and thinks about what this OS has for major subsystems. Those subsystems (all the world’s public data, delivery platforms close to the clients, unique hardware muscle) are analagous to how the Mac had subsystems like resource management and windowing that at first blush seem just a plug-in but after a while totally change the nature of the game. Finally skim this list of papers, notice the domain name.
This is not just Google! Every one of the massive apps on the web – Amazon, EBay, Yahoo, AOL, HotMail, Passport, DoubleClick, etc. etc. – are solving an analagous problem. These apps create the demand for a new species of operating system. One with massive pools of computers. One where mind bogglingly large amounts of data. One with extremely cheap cpu/bandwidth/storage. One distributed globally. Possibly most interestingly one with a deep invasive model of their users.
Since each of these examples is each emerging inside their own bubble we are likely to get more than one of these – at least for a while. Each one of these is a network hub for some aspect of the culture/economy/internet. They all have to tackle similar design problems; just for example getting fast response for the entire long tail of the power-law curve.
So there it is. Three species of OS. Traditional, Network, and Hub. Each with it’s own niche that’s sufficently different that they should evolve very different beasts.