gabriel rosenkoetter on Wed, 9 Apr 2003 19:11:05 -0400 |
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
|
|