"I have a mind like a steel... uh... thingy." Patrick Logan's weblog.

Search This Blog


Thursday, June 28, 2007


We have Greenspun's Tenth Law. We have Zawinski's law of software envelopment.

Another related truth is that all sufficiently large applications begin to resemble an operating system. And so if you are developing a wiki, a blog server, or anything with the term "server" in it, and you find yourself adding "plugin"-like capabilities, you could do worse than to understand Minix 3, especially with respect to reliability. Well, and Erlang, etc.

Actually, what should be on the reading list? One of the first I had to read was on the THE operating system.


Steve said...

"... Tenth Rule", according to the Wikipedia page to which your link refers. The rule is a crock, because it's impossible to say whether any system implements "half of Common Lisp". First you would have to get Lispers to agree on which was the One True Version, then they would disagree on the percentage.

Zawinski's Law was gone once the Unix API allowed a process to run a copy of /bin/mail as a subprocess. Script kiddie task thereafter.

Do they call Emacs "the text editor that thinks it's an OS", or is it "the OS that thinks it's a text editor"? Nowadays, of course, operating systems themselves range from the tiny to the immense, with Minix towards the tiny side. It's always an achievement to write something cohesive that size, though. I still remember the buzz of writing my first working driver!

MINIX 3 is unusual for considering reliability, let alone publishing reference documentation about it (though it was also interesting to spot the "fixed in next release" caveat for disk drivers).

How I am starting to long for my library, currently languishing in storage after its return to the USA. Papers by Dijkstra's contemporaries make fascinating reading.

Anonymous said...

Another related truth is that all sufficiently large applications begin to resemble an operating system.

Ah no, that's backward:

Operating System: An operating system is a collection of things that don't fit into a language. There shouldn't be one.

Patrick Logan said...

"There shouldn't be one."

I don't disagree. Another reason systems developers should learn from the ones that do exist (both the positive and the negative).

Blog Archive

About Me

Portland, Oregon, United States
I'm usually writing from my favorite location on the planet, the pacific northwest of the u.s. I write for myself only and unless otherwise specified my posts here should not be taken as representing an official position of my employer. Contact me at my gee mail account, username patrickdlogan.