Andy Tanenbaum on 'Who Wrote Linux' 668
Andy Tanenbaum writes "Ken Brown has just released a book on open source code. In it, he claims (1) to have interviewed me, and (2) that Linus Torvalds didn't write Linux. I think Brown is batting .500, which is not bad for an amateur (for people other than Americans, Japanese, and Cubans, this is an obscure reference to baseball). Since I am one of the principals in this matter, I thought it might be useful for me to put my 2 eurocents' worth into the hopper. If you were weren't hacking much code in the 1980s, you might learn something." Tanenbaum's description of the interview process with Brown is classic. See also Slashdot's original story and Linus' reply.
I like the last bit (Score:4, Interesting)
Bitter much?
Re:Grain of salt please (Score:3, Interesting)
Re:I like the last bit (Score:5, Interesting)
The Real Father of DOS &Windows (Score:3, Interesting)
Devil's advocate (Score:2, Interesting)
But I had the distinct impression from other quotes about the AdTI book that IFFFF you go with the idea that everything which looks like UNIX was inspired by UNIX, THEN it is not that big a stretch to say that Linux was not invented but is just a copycat derivative, therefore Linus did not invent Linux, he merely wrote it. Like I said, I have not seen the actual book (of course) or interviews, but maybe that is the quibble they are going with, a sock puppet for SCO, who is in turn Microsoft's own sock puppet.
And for all you bozoes who think this means I believe it, well, ha ha, yolk's on you for having no imagination in your narrow little cross-eyed brain.
How can Linux be a copy of Minix (Score:3, Interesting)
I don't think Tanenbaum is bitter. He just wants to point this out.
Oh the irony. (Score:4, Interesting)
right?
But who wrote the version of Basic that started bill gates on his path to riches?
The answer of course is that every creative engineering endeavour builds upon what came before. the detractors will call the step that the developer in question took as derivative, obvious, insignificant, or larcenous. the supporters will shine light upon the principal's ability to fuse diverse, unfocused, and/or unapplied parts into a cohesive whole.
to mis-quote grandpa simpson, 'the fax machine isn't anything more than a waffle iron with (something or other that i forgot).'
so, the question is really this: those of you who accuse (probably correctly) whoever is claiming that linus didn't write linux of spreading FUD, have you ever written a similar post smearing gates on basic? pot kettle?
The plot thickens (Score:5, Interesting)
Re:Grain of salt please (Score:4, Interesting)
Worse, he said "Linus wrote Linux as far as I know" Then when the moron said that One person couldn't possibly write a kernel, Andrew listed six other examples (including himself) showing that one person could do that. Remember reading (the post) is fundamental.
How is that for a grain of salt?
Re:I like the last bit (Score:1, Interesting)
Basically, Mach has had severe performance problems especially with things like file I/O, which they are now "fixing" the same way Microsoft did with NT, by moving some servers in kernel.
QNX (Score:5, Interesting)
As for Darwin; it was certainly slow on my x86 laptop, but it's not lacking any speed on my iBook. I guess that says something about the quality of the x86 port (hint: there is no such thing).
Poor Andy seems a bit too stuck in his I am right and everyone who disagrees is wrong. I have a book here (Distributed Systems: Principles and Paradigms) in which he claims that a 20% performance loss is not so bad, in exchange for all the benefits a microkernel brings. I most sincerely think that is a ridiculous statement, but fortunately, it doesn't have to be that way. I believe microkernels need not incurr any significant performance penalty at all.
Re:I like the last bit (Score:5, Interesting)
Apparently, the really trendy kids have decided that microkernels themselves are obsolete, and moved on to something called exokernels [c2.com]. I can't pretend to understand the distinctions involved.
On second thought (Score:3, Interesting)
When I think of Linus, I think of Charles Lindburg - he was prestigious hero, and a brilliant person. But when he went on a visit to Germany, all he could see was the armada of beautiful planes, and the amazing technology. He came back to the USA, and proclaimed that we shouldn't fight Hitler. The point being, Lindburg was a brilliant hero who was right about technology, but dead wrong about the importance of freedom - his stance didn't help him or us. This is how I feel about Linus, I'm thankfull he put Linux under the GPL, and that he's responsible for bringing us this cool technology - but I think his casual/neutral attitudes about freedom really suck, and in the long term will cause alot of uneeded harm. The goal shouldn't be to win a popularity contest, or to fit in, but to secure our freedoms in the technology space. Heck, that's the force that made Linux grow so much compaired to other alternatives to begin with.
What amazes me is how so many people feel that there is nothing wrong with having a technology bias, but then these same people turn arround and think you're a fruit for having a freedom bias. But political freedom isn't voodoo, it's provven itself more than enough - it's not just an opinion or wishfull thinking. I just can't understand why so many people who should know better seem simply ashamed of it.
OS X (Score:5, Interesting)
Re:I like the last bit (Score:3, Interesting)
I have no idea about OSX, but calling AIX fast is about the same as calling Windows user-friendly. Most people think it's like that but once you actually try do do something the truth reveals itself.
I used to run my own server on AIX on a pretty fast RS/6000 and it was rediculous. I finally replaced it with a slow Duron with Linux which ran abour orders of magnitude faster (and cost about 1/20 of the RS). I also benchmarked Linux on the same RS6k and got 2x the performance compared to AIX on compilations.
Re:I still love the classic conversations from 199 (Score:2, Interesting)
Hard to refute (Score:2, Interesting)
Putting a story at the top of the front page of your website but making it password protected while no other storys on your frontpage are similarly protected smacks of gun for hire/skewed view/anything for money. Appears to me they want you to read the headline but not read the text, sound familiar?
These adti individuals dont appear to be concerned with their own credibility and i hope whatever they are being paid is worth it.
How many programmers does it take to write an OS? (Score:3, Interesting)
"Finally, Brown began to focus sharply. He kept asking, in different forms, how one person could write an operating system all by himself. He simply didn't believe that was possible."
How many people does Brown thing wrote the original version of DOS? Microsoft wouldn't have gotten their big break were it not for Tim Paterson's SOLO coding effort.
Great article though...
Re:On second thought (Score:5, Interesting)
In one of the "Revolution OS" interviews, he states he's merely the engineer, and RMS is more like the philosopher. I think he wants to remove himself from the political aspect and just enjoy the work. Think Einstein and the atomic bomb.
Malicious intent (Score:5, Interesting)
This whole thing is wonderful. (Score:3, Interesting)
Re:history... (Score:3, Interesting)
Yes, you can't reach perfect models of reality in multitudes of area (history, physics, etc), but to claim that they are all bunk is a bit overblown.
It's like saying that since we can't freeze anything to 0 degrees Kelvin, that all termometers are worthless. Physicists can get very, very close to absolute zero -- and measure how far we are.
(On topic, I loved Tanenbaum's books when I studied comp sci and would have lots of them, if people returned all things I've lent them the last 20 years... :-) )
Did they have a fight over a girl? (Score:5, Interesting)
"Some of you may find it odd that I am defending Linus here. After all, he and I had a fairly public "debate" some years back. My primary concern here is getting trying to get the truth out and not blame everything on some teenage girl from the back hills of West Virginia."
Just curious...
-Derek
Re:I like the last bit (Score:2, Interesting)
Re:How can Linux be a copy of Minix (Score:5, Interesting)
I was semi-surprised at how retarded Brown came off in the article. I mean, everything that's come out of his "institution" would lead one to expect that, but somehow I thought maybe it was just an act for the punters. Turns out he really is that dumb. Weird.
Re:I like the last bit (Score:3, Interesting)
And look at this Was:The plot thickens (Score:1, Interesting)
From: Justin Orndorff (raison__d_etre@hotmail.com)
Subject: [Samba] research inquiry
This is the only article in this thread
View: Original Format
Newsgroups: linux.samba
Date: 2004-05-18 08:50:10 PST
Greetings,
I'm currently doing research into corporate contributions towards open
source projects, such as Linux. One of the recent Credits Files lists Mr.
Anton Blanchard as a contributor. Is Mr. Blanchard still an employee with
the company?
Also, does the company have any policies regarding open source contributions
by employees? If so, are there any differences between on and off the clock
contributions?
Thanks very much for your time and apologies for posting on your mailing
list. I did not find any other contacts on your website related to this side
of your business.
Best,
Justin Orndorff
Re:Oh the irony. (Score:1, Interesting)
Kenneth Brown (Score:3, Interesting)
He's also affiliated with Democratic Centruy Fund [dcfund.net]:
Sounds like "If you've got a lot of money that you can afford to lose and don't ask too many questions, invest with us." Most of the links on that site are broken, too.
It always amazes me that people have the nerve to pull stunts like this guy does. I just have to believe that his Karma will catch up with him eventually.
Re:Article text (Score:4, Interesting)
That may be true if you look only at the kernel proper, but I'm willing to bet that there are "userspace" processes that have kernel access to an extent that makes the system actully megakernel.
Arguing your comments about microkernels:
I don't believe microkernels are any more secure or insecure, than macrokernels. As for stability, I would rather expect microkernels to be better there. The added flexibility is immense, and has real world uses.
Personally, I favor a system where nearly everything resides in userspace. It might even be feasible to make the system so flexible that different users or even processes can use different memory managers, schedulers, etc. There are a number of OS projects that explore in this direction, but I don't think we're quite there yet.
Re:QNX (Score:4, Interesting)
Re:OS X (Score:4, Interesting)
Re:GLX is a fair name (Score:1, Interesting)
Why introduce a new name at all?
and you do are aware of SGI's 3D infrastructure in X11 named GLX? also, X.Org and everyone else strongly discourage people to name X "XWindows", it's X or "The X Window System". Also there are production embedded Linux systems without GNU (my VoIP modem for example), and less embedded systems without X (my router for example)... All linux are not Mandrake.
end rant
Re:Article text (Score:5, Interesting)
No no no. Windows is a monolithic kernel. Using Andy's defintions, the drivers run in kernel space; thereby, making it monolithic.
"but I'm willing to bet that there are "userspace" processes that have kernel access to an extent that makes the system actully megakernel."
Nope, this is false. In this sense, Windows NT (not counting 9x/Me because they suck) is identical to Linux. User space processes require system calls and a kernel crossing to have access to any kernel services.
"I don't believe microkernels are any more secure or insecure, than macrokernels."
I strenously disagree. In both Linux and Windows NT, 80+% of crashes are due to problems in drivers. There is a ton of research to back this up (Engler et al, I think). If the drivers existed in user space, a la microkernels, then 80+% of crashes would just disappear. Most people who complain about Windows' crashes do not realize the driver writers are to blame. Yes, Linux will have the same problem as drivers are ported. This also, has been pointed out in much research. THIS is the very reason why Andy dislikes monolithic kernels.
Tanenbaum is right (Score:1, Interesting)
Re:I like the last bit (Score:4, Interesting)
Tell that to Tanenbaum:
From: ast@cs.vu.nl (Andy Tanenbaum)
Newsgroups: comp.os.minix
Subject: LINUX is obsolete
Date: 29 Jan 92 12:12:50 GMT
". . . While I could go into a long story here about the relative merits of the two designs, suffice it to say that among the people who actually design operating systems, the debate is essentially over. Microkernels have won . .
Cited from here [oreilly.com]
Re:I still love the classic conversations from 199 (Score:1, Interesting)
Well, if that's the reason you gave up on B5, you gave up mighty early - that line was only present in the opening of the first season. Every season of B5 has a different opening blurb, and that line was dropped (along with most of the rest of the Season 1 blurb) at the opening of Season 2.
Re:Fighting features (Score:2, Interesting)
Re:OS X (Score:3, Interesting)
(I guess the easy answer is that you need to install BSD ... to run all your zombie processes, har har har!)
Tanenbaum keeps using this word... (Score:3, Interesting)
Re:I like the last bit (Score:5, Interesting)
I'll agree with that. However, I can say that for the stuff I do, microkernels win. I've written a microkernel RTOS for an embedded system, and it had the following advantages for me:
1) It was easy to write. (Very modular)
2) It is easy to maintain. (Very modular, and because all interaction is done with messaging, you dont worry about the code you are doing now interacting in some unknown way with something else. ie. You can ignore the rest of the system except for the messages you send to it)
3) It is easy to give it strong deterministic real-time response. This is a big thing for me in the applications I use it for. Data ends up flowing from one task to another, and I just have to make sure my scheduler doesn't mess that up.
4) The overhead introduced by message passing was negligible (The RTOS was implemented to replace an existing system, and did so comfortably)
5) Its really easy to make stable and reliable systems, because everything is chopped up into small well understood sections with well defined interaction between sections.
Microkernels might have slightly lower throughput than monolithic macrokernels, but I am not running a batch transaction processor.
For desktop use, I want controlled latency and reliability. I don't feel that Linux gives me all that it should in those departments, though I use it because it is better than most (with some patching). Kernel modules feel like the worst of both worlds to me.
So, given the priorities I stated above, I think I would prefer a microkernel OS, all other things being equal. I'd jump ship from Linux to one, if most other things are equal.
Other people will have other priorities and I encourage them to use whatever works for them.
Re:I like the last bit (Score:3, Interesting)
Peace.
Re:I like the last bit (Score:2, Interesting)
peace.
Re:Monolithic versus microkernel (Score:3, Interesting)
Who's saying anything about a 10% hit in performance?
Here are some benchmarks between Panther and Yellow Dog Linux on a Dual 1.25 ghz G4.
Unix Bench Scores (bigger is better)
for Linux: 316.4
for Panther: 131.0
lmBench Fork in microseconds, smaller is better)
for Linux: 352
for Panther: 1402
lmBench TCP Latency (in microseconds, smaller is better)
for Linux: 46.3
for Panther: 76.8
lmBench Pipe performance (in MB/s, bigger is better)
for Linux: 419.0
for Panther: 216.0
We're talking about huge performance issues across the board. Everything from process construction and destruction to context switching to communication latencies. OSX is much much slower. I attribute this entirely to the Mach Microkernel.
Re:Writing a kernel is easy! (Score:3, Interesting)
Re:I like the last bit (Score:3, Interesting)
Re:I like the last bit (Score:3, Interesting)
It was a 43P-140 with a 332MHz 604e, half a gig of memory. Of course it's slow now, but back then 604e's were standard RS6k CPU's and the 332 was the fastest of them (I know, I worked with SP clusters @ IBM at the time and ALL had 604e CPUs). The Duron was... umm... a 600MHz one with 128 megs of memory (and yes, a few years younger than the RS6k). With the RS/AIX my load was around 40 every day and the machine was unusable - with the Duron the loads were under 1.
I don't know what you do to your AIX machines for them to be fast (neither do the guys @ IBM), but even the POWER4's that I administer now are slow. The floating point performance is excellent, but that's about it. They're no use for any real work - even the Sparcs we have are faster (and they're pathetic too).
Me - I switched to x86 hardware with Linux and haven't looked back.
Re:Great article but .... (Score:3, Interesting)
I support the Patriot Act because it works. Furthermore, nobody has shown that it has been abused since it became law. Tanenbaum needs to be a little more levelheaded about American laws.
Crazy question - micro vs macro (Score:3, Interesting)
Then kernel developers can run the "micro" version and have the freedom to easily hack parts while the system is running. But production machines could run the "macro" version.
Re:How can Linux be a copy of Minix (Score:3, Interesting)
The problem is that Tanenbaum does not seem to understand that the world outside of universities has a different view of superiority.
The x86 ISA sucks. The Alpha, 68k, spark, Arm, and powerPC where and in some cases are much better ISAs. But the Intel ISA won. More people use it and it gives a HUGE bang for the Buck!
Tanenbaum was to interested in Minx as a teaching tool and in "pure" OS design. Linux at the time wanted more bang for the buck. It might be hard to believe but Linux used to only run on the 386 family of chips. If I remeber correctly Linux was supposed to be PC only OS.
Tanenbaum may be right. Of course there are also things like Plan 9. Frankly I am a little tired of Unix/Linux being the best OS. I want to see some new ideas in OSs and GUIs. Being a big OOP fan I would like to see an OO OS. Maybe I will start writing my own OS like Linus and Tanenbaum did. Odds are I will develop it on Linux
Thanks Mr Tanenbaum and thanks Linus.
Re:He slams Linus almost as much as Brown... (Score:3, Interesting)
Hardly - if you can believe what he says. For example:
So why slam Linus? Because Linus did something he fundimentally disagrees with. The disagreement [fluidsignal.com] has been public and heated. Andy aludes to this today. But he also notes:
So yes - he still feels the same way after all these years. He acknowledges this disagreement. And notes that it's nothing personal.
Bitter of Linux's success? I don't see it.
Re:Monolithic versus microkernel (Score:3, Interesting)
In the message passing model, generally, the syscall ends up sending a message to some system server. Now that involves a user->kernel switch to trigger the message send, and a kernel->user switch for the message to be delivered. When a response is sent from the system server, the same hit is incurred again. So essentially, we have about twice the number of context switches going on.
But userkernel stuff isn't really the major problem with message passing. It's kernelkernel interaction that used to be a simple function call.. but with microkernels suddenly become two message sends. That seems rather daunting at first, but there are many optimization methods to resolve it.
For example, if two system servers are going to talk with each other extensively, they can do some initial handshaking to establish a shared memory area, and use that to communicate.. bypassing the kernel entirely. There will still be a latency hit with relation to that _particular_ interaction, but the overall message passing overhead will be reduced.
Another idea is to used shared memory for uploading of, for example, write-protected code. It might be possible to have two processes share a chunk of memory, and in that memory, include code to access structures stored within that shared memory. If you design a standardized system for doing something like that, you might be able to bring it all down to the level of a function call again.
There are lots of options. I don't know how feasible those options are - but they havn't really been tried to any great extent. There's nothing equivalent in the microkernel area to the extensively tested and tweaked freely developed Linux.
About modularization, I disagree with you. The problems you are describing stem from over-engineering. Modular systems don't need to be hard to understand or work with. Their whole purpose is to partition off related code into islands, have them interact with well-defined interfaces, so that it's easier to reason about the whole by reasoning about the pieces. Badly engineered modular systems can be just as horrible as badly engineered monolithic systems. That's not really saying anything about either approach.
-Laxitive
Re:Oh the irony. (Score:3, Interesting)
This wise adage is why Intellectual Property, if implemented in the visage of Capitalists, will lead us to another Dark Age, a Totalitarian State or both.....
Re:I like the last bit (Score:3, Interesting)
I was running Atari TOS. AST's microkernel design ran on my Atari ST and gave me a working Unix-like system. Linus's hack only ran on the 386, and was useless to me. Arguing that it was superior when it only ran on a machine I didn't have was pointless.
Re:I like the last bit (Score:3, Interesting)
While I take your point on security, to be fair, in a decent modern microkernel, message passing is a highly optimised operation. In fact, the kernel is usually optimised for precisely two tasks: scheduling and message passing. When that's pretty much all your kernel does, there are a few implementation tricks that you can use which avoids a lot of machinery that you'd otherwise find in your kernel.
Moreover, a point which is not always appreciated is that monolithic kernels often have similar costs. You still have to copy data from user space to kernel space and back again. Compare this with a modern microkernel which copies directly from address space to address space. The microkernel still needs to swap tasks, but a) it's trivial to schedule, and b) only on the x86 is swapping tasks expensive, and sometimes not even then (e.g. using L4's small address space optimisation).
IMO, microkernels and monolithic kernels are so different as to be almost incomparable.