gabriel rosenkoetter on Wed, 9 Apr 2003 19:11:05 -0400


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

[PLUG] Origin Myth


On Wed, Apr 09, 2003 at 06:26:47PM -0400, Toby DiPasquale wrote:
> Not really. Linux was written independently of Minix, although the text
> from which Minix sprang was referenced in the creation of Linux. Linux
> started out as a terminal emulator that Linus could use to connect to
> his university's network. He then decided that he was most of the way
> there already, so why not write an OS? It was only after Linux was borne
> that Tanenbaum started the infamous "monolithic vs. microkernel" flame
> thread on lkml. It's all right there in __Just for Fun__.

Well. While Torvalds has a better history of not distorting, to
his benefit, fact in the retelling than does Tanenbaum, I'm not
too interested in taking either side of the story exclusively.
:^>

So, anyway, this is *my* speculation based on having read a variety
of sides of the story (note that different people's descriptions
change over time):

Torvalds read about OS design in Tanenbaum's book (as quite a few CS
students do; it's a very good book). I honestly don't recall (though
I once knew) whether that was as part of a class, and I think it
wasn't directly under Tanenbaum if it was (but again, don't recall).
Those questions may be answered in "Just for Fun".

Torvalds was also sick of the crappy terminal emulator on his
computer (running CP/M? DOS? don't recall), and found that he could
get much faster response by writing assembly and booting it directly
than running it as an application from within another OS (still
true today, but the hardware's so fast that we don't care).

What you said, Toby, goes here. Torvalds making mention of some OS
design constructs and why he made the decisions he made with
reference to Tanenbaum's book. This is why I say Linux is a reaction
to Minix; Torvalds purposely made different choices than Tanenbaum
did with full knowledge of Tanenbaum's reasoning.

Because Minix was popular among people playing with OSes at the
time, and because there really wasn't another place to get their
attention, Torvalds posted about his shiny new OS in Minix's
newsgroup, merely as a "you might be interested" kind of thing.

As discussion spooled up, Torvalds did what he could to move it
elsewhere, but you can't control other people.

Tanenbaum got pissed, and got pissy at Torvalds.

Then people pointed out that Linux was, in fact, faster than Minix,
and that maybe, just maybe, it was because of the microkernel
architecture of Minix. Tanenbaum responded that that wasn't the
point, that the microkernel architecture was more Right from a
design point of view, and that that's what mattered. And that all
these people should like his OS better because it was better-
designed. And if they didn't, they should shut the hell up about it
on the newsgroup that was there to discuss Minix (strikes me as a
pretty reasonable request).

Anger ensues, ways part.

Tanenbaum got (unnecessarily, probably) upset about the whole thing
and was kind of a jerk[1], to Torvalds in particular. Tanenbaum's
point was always that Minix was about teaching and practicing OS
design principals, not about performance. Torvalds was always about
getting the most out of the money he'd put down on his computer,
which meant ignoring some of the finer points of clean design,
because doing so was necessary for performance.

They're both right.

I happen to think that microkernel architectures will *never* be
worth the effort, that they're a bad case of putting the engineer
before the user to the vast detriment of the latter.  But I happen
to think the user's more important than the engineer in the computer
interface, and his wishes should be preferred. I don't know if
Tanenbaum would agree with that statement (or if he would agree,
but point out that the user "should" want to be using a cleanly
designed system... which is, when you put a fine point upon it, in
fact disagreeing).

I also happen to think that the Linux codebase is particularly
ill-suited to porting to other hardware architectures (though plenty
of people are working at doing it), and in general very "stuck" in
what may not have been the best of decisions (decisions other than
the micro/monolithic thing; that's spot on, in my opinion), but
didn't matter much when Linux was just an OS for a few hackers to
play around with.

-- 
gabriel rosenkoetter
gr@eclipsed.net

[1] But he was never anywhere near so much of a jerk as certain
other people are on a regular basis, and the Linux/Free/free/open
source crowd seems to love them (Theo de Raadt, Richard Stallman...
want more?).

Attachment: pgp4M5meHozTs.pgp
Description: PGP signature