Andy Tanenbaum on 'Who Wrote Linux'
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.
where, ten years after he first had this argument, he still feels obliged to rag on Linux's design as a monolithic kernel as a bad design decision. This from a man who describes true multitasking and multi-threaded I/O as "a performance hack."
Bitter much?
Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
Why are microkernels a bad idea?
Okay the real father of dos and windows is here
Well, not quite advocate ... I can't get to the interview, it's acting ...slow ... for some reason.
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.
Infuriate left and right
if one is a macrokernel and the other a micokernel?
I don't think Tanenbaum is bitter. He just wants to point this out.
Some things are more important than an animated rat
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?
Can't argue with that. I can't read the article, but I don't think that Tannenbaum argues with that either. He probably said something like Linus copied the basic Minix design (true) and the reporter blew it out of proportion.
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?
Add QNX to that. It doesn't get much more microkernel than that, and I think noone would argue that QNX is slow.
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.
Please correct me if I got my facts wrong.
After I saying that, I was thinking, perhaps Linus should be discredtied - not in reguards to being the father of Linux, but for being so neutral about freedom.
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.
To call OS X a Mach system is a bit disengenious. All I/O operations are handled by the "BSD Subsystem" for performance reasons. This means that all file and network I/O (along with the file security descriptions) are in a "monolithic subsystem" of the uK. Needles to say, this is the most performance-intense section of a UNIX (any?) system. A lot of the message-passing is therefore avoided; and the performance costs that those message passes would incur. Take a look at this url: OS X System Overview See that dotted-line that stretches from the kernel to userland? Tannenbaum would not approve.
The wheel is turning, but the hamster is dead.
I prefer reading it from the Google archives.
tasks(723) drafts(105) languages(484) examples(29106)
Its hard to refute Andy Tanenbaums claims for a number of reasons; his background, his education - basically his history. But to another end, you cant even view Browns document to contrast - they have it password protected.
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.
I was crazy back when being crazy really meant something. (Charles Manson)
This simply confounded me...
"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...
After reading this, the Tanenbaum interview and this, there is little doubt that of Brown and the AdTI were determined in their slander campain against Linux from the start. From the AST interview, it is clear that he is just fishing for incriminating quotes. It is well known that initial Linux development took place on (and was inspired by) Minix. With selective quoting, it's likely that he will have AST seemingly accusing Linus of stealing Minix. One of his more persuasive arguments to the laymen will be that it took the highly experienced professor Tanenbaum years to develop Linux, while kid Linus hacked his OS together in 6 months. Of course, he knows this is not a truthful representation, but that doesn't matter as long as it will get him headlines. We (and AST it seems) may regard people like Brown and McBride as dumb and ignorant. But we should beware, these people are of a kind that we do not encounter often day-to-day: people with malicious intend.
I read the interview and followed the other two articles, the original and Linus' reply. I think this stuff is a must-read. [conspiracy theory] Perhaps someone, somewhere funding anti-Linux FUD is realizing the whole SCO thing is falling through? [/conspiracy theory]. It outlines the differences between what Linus believes in and what Tanenbaum believes in. The more articles I see like this, the better I feel. There's a lot of people out there who know the truth, and I don't care how many billions you have, your underhanded sneakiness will be revealed. This whole situation has been the posterchild for Open Source.
FLR
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... :-) )
Karma: Excellent (My Karma? I wish...:-( )
What does this quote reference?
"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
http://groups.google.com/groups?dq=&start=75&hl=en &lr=&ie=UTF-8&group=linux.samba&selm=1Xf0Z-7VF-11% 40gated-at.bofh.it
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
He's also affiliated with Democratic Centruy Fund:
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.
``Windows IS a micro-kernel based OS''
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.
Please correct me if I got my facts wrong.
Wtf!?
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
`Windows IS a micro-kernel based OS''
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.
Holy s-, it's Jesus!
In my opinion, Tanenbaum is right in his discussion about the micro vs. monolithic kernel issue. This doesn't mean Linux is a mess, but it could have been better. The information for doing so was available when Linux was developed by Linus. Don't get me wrong, I never wrote an entire operating system like Linux or Minix, but my point is that the knowledge was available and it was not used in the (initial) development of Linux. Perhaps Linus is really convinced that monolithic is preferred, but that is not enough to debunk the reasoning of Tanenbaum concerning microkernels.
I think that clumsy line is the main reason I gave up watching B5.
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.
I think you have apple's OS design completely backwards. Old Macs were completely monolithic (not unlike their hardware), and virtually everything ran in the same address space. Mac OS X changes things by running the microkernel Mach with the monolithic BSD-derrived Darwin kernel under that. The real reason Apple switched over was the simple fact there were too many design limitations in the original MacOS, and it was too difficult to tack on the features people expect these days, like separated (protected) address spaces, fully preemptive multitasking, and multi-user capabilities. All those features could've been grafted into the original MacOS kernel, but the engineers must've decided that it would be easier to graft MacOS onto a modern kernel rather than the other way around.
I used up all my sick days, so I'm calling in dead.
Breakfast served all day!
I think they are. A 10% hit in performance is going to get eaten up as hardware gets better and faster. But that 50% increase in manageability and flexibility is going to pay dividends well into the future.
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.
about 8 years ago, while still an undergrad, we had an os theory class where over the period of the semester implemented crude implementations of the various parts needed for a primitive os. it worked, albeit not wonderfully, but we were all quite proud with ourselves at the end of the semester. learned more in that one class, than nearly the rest combined.
Yes, I have RTFA. Yes, I have a girlfriend. Yes, I'm new here. And no, I don't want a free iPod.
The comment on Ashcroft is out-of-place in an otherwise blunt article. That snipe and the cocky back-patting smack of elitism.
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.
Could you write a "microkernel" that becomes a macrokernel if compiled with certain parameters? Message passing would be done via a macro which can become simply a function call.
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.
Hardly - if you can believe what he says. For example:
So why slam Linus? Because Linus did something he fundimentally disagrees with. The disagreement 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.
Ok, I'm going to do some armchair analysis here. I think it _will_ come down to a X% difference in performance, in general. Consider what happens when a process in Linux makes a syscall. It triggers a user->kernel context switch. The kernel does some work, potentially blocking the user process, and eventually wakes up the process again and does a kernel->user context switch.
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