Slashdot Log In
Andy Tanenbaum on 'Who Wrote Linux'
Posted by
michael
on Thu May 20, 2004 08:55 AM
from the besides-the-tooth-fairy-of-course dept.
from the besides-the-tooth-fairy-of-course dept.
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.
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.
An excellent article (Score:5, Funny)
Curious that someone would spend all that cash and yet have done so little research. Smells of hidden agendas, or no-so-hidden agendas perhaps?
The best part has to be: "But the code was his. The proof of this is that he messed the design up."
This just in. (Score:5, Funny)
Article text (Score:5, Informative)
Some Notes on the "Who wrote Linux" Kerfuffle, Release 1.1
Background
The history of UNIX and its various children and grandchildren has been in the news recently as a result of a book from the Alexis de Tocqueville Institution [adti.net]. Since I was involved in part of this history, I feel I have an obligation to set the record straight and correct some extremely serious errors. But first some background information.
Ken Brown, President of the Alexis de Tocqueville Institution, contacted me in early March. He said he was writing a book on the history of UNIX and would like to interview me. Since I have written 15 books and have been involved in the history of UNIX in several ways, I said I was willing to help out. I have been interviewed by many people for many reasons over the years, and have been on Dutch and US TV and radio and in various newspapers and magazines, so I didn't think too much about it.
Brown flew over to Amsterdam to interview me on 23 March 2004. Apparently I was the only reason for his coming to Europe. The interview got off to a shaky start, roughly paraphrased as follows:
AST: "What's the Alexis de Tocqueville Institution?"
KB: We do public policy work
AST: A think tank, like the Rand Corporation?
KB: Sort of
AST: What does it do?
KB: Issue reports and books
AST: Who funds it?
KB: We have multiple funding sources
AST: Is SCO one of them? Is this about the SCO lawsuit?
KB: We have multiple funding sources
AST: Is Microsoft one of them?
KB: We have multiple funding sources
He was extremely evasive about why he was there and who was funding him. He just kept saying he was just writing a book about the history of UNIX. I asked him what he thought of Peter Salus' book, A Quarter Century of UNIX [amazon.com]. He'd never heard of it! I mean, if you are writing a book on the history of UNIX and flying 3000 miles to interview some guy about the subject, wouldn't it make sense to at least go to amazon.com and type "history unix" in the search box, in which case Salus' book is the first hit? For $28 (and free shipping if you play your cards right) you could learn an awful lot about the material and not get any jet lag. As I sooned learned, Brown is not the sharpest knife in the drawer, but I was already suspicious. As a long-time author, I know it makes sense to at least be aware of what the competition is. He didn't bother.
UNIX and Me
I didn't think it odd that Brown would want to interview me about the history of UNIX. There are worse people to ask. In the late 1970s and early 1980s, I spent several summers in the UNIX group (Dept. 1127) at Bell Labs. I knew Ken Thompson, Dennis Ritchie, and the rest of the people involved in the development of UNIX. I have stayed at Rob Pike's house and Al Aho's house for extended periods of time. Dennis Ritchie, Steve Johnson, and Peter Weinberger, among others have stayed at my house in Amsterdam. Three of my Ph.D. students have worked in the UNIX group at Bell Labs and one of them is a permanent staff member now.
Oddly enough, when I was at Bell Labs, my interest was not operating systems, although I had written one and published a paper about it (see "Software - Practice & Experience," vol. 2, pp. 109-119, 1973). My interest then was compilers, since I was the chief designer of the the Amsterdam Compiler Kit (see Commun. of the ACM, vol. 26, pp. 654-660, Sept. 1983.). I spent some time there disc
Sounds like my mother-in-law (Score:5, Funny)
Start with a premise, do little or no research, and declare conclusions. When the truth is pointed out, get indignant.
Granted, I haven't read the book in question, but this was a very enlightening article. I especially loved the comment that insinuates that Linus could have done a better job if he HAD stolen the code, than he did.
It's an old copyright strategy (Score:5, Insightful)
I think the enemies of Linux are trying a similar strategy based on the addage "if you kill the shepard - the sheep will scatter", "If you lie about something long enough or hard enough, people will believe it". They can't discredit Linux for technological or commercial reasons anymore, so their only option is to discredit Linus. With billions at stake, it could get nasty.
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.
Parent
On Minux (Score:5, Informative)
The plot thickens (Score:5, Interesting)
Re:The plot thickens (Score:5, Funny)
1. Describe the components of an operating system, besides the central component, the kernel.
The Klaspil, the Frammistat and the Peramulator (sometimes called the "Virtual McGuggehupphe Valve). The Kaspil formats tuples for processing by the Frammistat, tuples are sorted, tagged and valued by the Perambulator.
2. What do programmers usually develop first, the compiler or the kernel?
Acne. Lots, usually.
3. Does this sequence impact the OS at all?
Probably
4. What's more complicated, the kernel or the compiler?
Girls
5. Why does operating system development take as long as it does?
Why is a duck?
What are the three key things in operating system development that take the longest to perfect?
Obsolecense, threading and nice icons.
6. Do you need operating systems familiarity to write a kernel? Yes / no? Elaborate please.
Yes. No.
7. In your opinion, why aren't there more operating systems on the market?
Terrorism.
Parent
Malicious intent (Score:5, Interesting)
Parent
...and here he is on devhardware.com and others! (Score:5, Informative)
Interesting...! I think I'll email PJ with this little lot!
J.
Parent
Fighting features (Score:5, Insightful)
Credit Mr. Tanenbaum sticking to his guns on the micro kernel design. But the brilliance of Linus is that he realises you must first have features to fight!
There's no room for debate. (Score:5, Funny)
In conclusion .. (Score:5, Insightful)
What more needs to be said !
Two independently developed *nices (Score:5, Informative)
OMU (6809 processor, ported to 68000) roughly system 7 but only single user, integrated shell.
http://tallyho.bc.nu/~steve/omu.html
UZI (Z80 processor, ported to 180, 280) roughly system 7: multitasking
http://www.dougbraun.com/uzi.html
Really A Secret ? (Score:5, Insightful)
I think its fair to say that "shock horror!" Andy Tanenbaum probably "learned" how to write Minix from somewhere else. In any case in the initial phases of Linux I think its fair to say that Linus did 99% of the work. And after the seed was planted.. well lots of people are now involoved with writing linux.
Its the nature of the beast almost all human acheivements are adaptations of something that came before . Its called development and its incredibly difficult to come up with an idea that doesnt have its basis in something else.
I challenge anyone to try and come up with an idea that doesnt have its origins in something else.
nick
Roblimo busted Ken Brown back in 2002! (Score:5, Informative)
The Important Point (Score:5, Insightful)
Thanks to Mr. Tanenbaum, we have the proof here:
People can create operating systems on their own. Even UNIX-like operating systems. Linus learned from Mr. Tanenbaum. Linus wrote the first kernel, published it and asked for input, which the rest of the world provided.
Linus then acted as a proper project manager, and the rest is history.
So again, whatever people do - do not buy the book.
Now, here's the problem: if we talk about this upcoming book, people will want to buy it. It's the Gibson Effect - the more its denounced, the more people will want to read it, and next thing you know there will be lines of people at the bookstores claiming they can see Jesus's face on this book.
So instead, I recommend to all intelligent folks in the programming community: ignore it. From here on out, don't even refer to the book by name, or its foundation, or the author. The more we pretend it doesn't exist and it's not important, the less interest people will have in it. If someone asks (such as a Pointy Haired Boss guy), shrug and lie as you say "No idea. I heard it was some book, but that it wasn't that good." And then shut up and leave it at that.
Don't give these guys free advertising. Don't even give them an ounce of respect, they don't deserve it.
Re:The Important Point (Score:5, Informative)
I had an experience where an entire development team of twenty people spent about a year and a half writing a large, grandiose enterprise software system that was supposed to be general-purpose and flexible, but in the end was a real performance turd at the job it was supposed to do. Using what I knew about the actual problem from looking at the previous solution's mistakes and the original problem statement, I rewrote the system from scratch over about 8 weeks at a client's site, averaging about 300 SLOCs a day (coding in Java where I can fly), with one developer helping me on a few specific tasks, and we ended up with a system that was functionally equivalent and about 50 times faster than the previous version because it stripped out all the unnecessary modularity (modularity is good, but if you split something that should be one component into ten, you just get lots of extra overhead) and message-passing that gunked up the original design.
I can't help but think of the analogy between this project and the Linux/MINIX effort. My knowledge of the problem was informed by analyzing the earlier design, but not a line of code was actually derived from it. And the twenty-some-odd man year effort was replaced neatly by a 3-man-month effort that was superior.
The moral of the story is that any of us who've been around in the software world long enough will tell you that most any system, assuming you lift all the crazy featurization constraints, can be written fairly rapidly by one person. And that usually you'll get a better result with an early working product and iterative functionality development than you will with a monolithic development effort, assuming you know the architectural parameters going into the effort by having been able to analyze previous efforts at solving a similar problem.
So the point is... keep the assumptions in mind before you start estimating a project's size and scope, man-hour requirements and so on. Development of UNIX-like OSes was a well-defined, well-understood problem at the time Linus did his work. And don't go claiming that somebody accomplished an impossible task unless you have a REALLY good understanding of the software engineering process in general, and the particulars of the problem they solved - in this case Ken Brown has neither. We didn't really need Mr. Tanenbaum to tell us that, but it shows what a stand-up guy he is that he has made a clear effort to defend Linus despite any past arguments they may have had.
Parent
Even Ziff Davis is saying AdTI's stance is a crock (Score:5, Informative)
Level-headed and interesting (Score:5, Insightful)
First, he goes into the history of why people were souring on UNIX and the various independently-written UNIXalikes. These were mostly individual projects, which really sets the record straight for the people who seem to think that Linus was the first person to do this, and that Linus was somehow the only person intelligent and manly enough to write his own kernel.
At the same time, he lays out the history of UNIX clones, of which Linux was definitely one. It's surprising to me how many people seem to think of Linux as a great, independent OS, and fight so hard to deny that it has roots in UNIX. Of course these people are mostly young and don't know much about computer history. In that respect, this is an educational article.
And, yes, he does talk about the micro vs. monolithic kernel issue, but he does so without fanaticism, and, you know, what he says is generally correct. He's all for small and reliable software, which is something that UNIX was originally but rapidly became the antithesis of. Performance issues, back when people were using 4.77 and 8 MHz desktop processors, well, let's just say that things were different then. Now you have people writing big applications in Python. The real reason Linux ended up with a monolithic kernel is because that's what Linus understood and it was easier for him to write that way.
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
Writing a kernel is easy! (Score:5, Insightful)
Writing a scalable, production-quality OS kernel is another matter entirely. That takes hundreds or thousands of person-years by talented programmers.
Ken Brown is obviously a complete shithead if he doesn't understand this distinction. AST's rebuttal made the facts of the matter abundantly clear, and I'm sure any competent OS developer he asked would have told him the same thing.
Re:I like the last bit (Score:5, Interesting)
Parent
Re:I like the last bit (Score:5, Informative)
Don't fall for the hype.
On the other hand, QNX is actually pretty true to the concept.
Parent
Re:I like the last bit (Score:5, Insightful)
Treating the micro v. monolithic debate as a solved problem ("microkernels win!") is as idiotic as suggesting that object orientation is the ideal solution to all programming problems.
Parent
Re:I like the last bit (Score:5, Insightful)
I think he made such a big stink about it during the infamous flame war that, even if it was somehow proven that a macro-kernel is a better design, Tanenbaum could never back down from his premise without losing face.
Parent
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.
Parent
Re:I like the last bit (Score:5, Informative)
To summarize, let me call the part that securely multiplexes hardware the "kernel".
- Monolithic makes drivers share address space with the "kernel".
- With Microkernel, "kernel", drivers, filesystems, applications, etc each get their own address spaces.
- Exokernel makes drivers share address space with applications. (Hopefully, filesystems get their own process and address space.)
As you can see, as soon as you start partitioning applications into separate processes for security and robustness, the distinction between Exokernel and Microkernel becomes rather vague. The advantage of the Exokernel or VM approach is that you get the flexibility of keeping things like filesystems in a separate process for security and robustness, and things like video drivers in the same address space for performance. You might even have an X server as a separate process, but still allow full screen mode games that directly call the driver libraries for performance.IBM's VM was never that popular in its raw "Exokernel" mode with drivers in application space. However, it is still hugely popular as a way to run multiple Operating Systems as the "applications". Your mainframe can securely run multiple instances of S/390 Linux and traditional mainframe systems together.
Parent
Re:I like the last bit (Score:5, Informative)
cheers.
Parent
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.
Parent
Re:QNX (Score:5, Informative)
Parent
OS X (Score:5, Interesting)
Parent
Re:I like the last bit (Score:5, Insightful)
Parent
Re:I like the last bit (Score:5, Insightful)
Perhaps, just perhaps mind you, he is simply stating what, in his opinion, is true.
KFG
Parent
Re:I like the last bit (Score:5, Insightful)
Arguing about monolithic versus microkernel was like arguing about whether a starving man's meal should be vegetarian or not.
Parent
Re:I like the last bit (Score:5, Insightful)
Parent
Re:I like the last bit (Score:5, Insightful)
12 years ago, who would have imagined that it is normal and in fact essential for a desktop OS to be able to smoothly handle many IO intensive processes at the same time?
Parent
Re:I like the last bit (Score:5, Informative)
Parent
Re:How can Linux be a copy of Minix (Score:5, Insightful)
Since I don't think anyone here has RTFA'd (/. effect and all) it's not worth judging right now. I think it's pretty classy of Tanenbaum to step up and offer some perspective on the AdTI FUD. If he does that as someone who still doesn't buy into Linux, that makes it all the more credible. Do we really want every response to this to be written by a Linux fanboy?
Parent
Re:How can Linux be a copy of Minix (Score:5, Informative)
The bitter part comes in the last couple of paragraphs, where he takes the opportunity to say that Linus was a misguided kid who should have paid more attention in class such that he would have seen the obvious superiority of a microkernel over a macrokernel. But he's quick to point out that he and Linus are not enemies.
Parent
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.
Parent
Re:Tanenbaum was wrong about microkernels (Score:5, Informative)
Background
The history of UNIX and its various children and grandchildren has been in the news recently as a result of a book from the Alexis de Tocqueville Institution. Since I was involved in part of this history, I feel I have an obligation to set the record straight and correct some extremely serious errors. But first some background information.
Ken Brown, President of the Alexis de Tocqueville Institution, contacted me in early March. He said he was writing a book on the history of UNIX and would like to interview me. Since I have written 15 books and have been involved in the history of UNIX in several ways, I said I was willing to help out. I have been interviewed by many people for many reasons over the years, and have been on Dutch and US TV and radio and in various newspapers and magazines, so I didn't think too much about it.
Brown flew over to Amsterdam to interview me on 23 March 2004. Apparently I was the only reason for his coming to Europe. The interview got off to a shaky start, roughly paraphrased as follows:
AST: "What's the Alexis de Tocqueville Institution?"
KB: We do public policy work
AST: A think tank, like the Rand Corporation?
KB: Sort of
AST: What does it do?
KB: Issue reports and books
AST: Who funds it?
KB: We have multiple funding sources
AST: Is SCO one of them? Is this about the SCO lawsuit?
KB: We have multiple funding sources
AST: Is Microsoft one of them?
KB: We have multiple funding sources
He was extremely evasive about why he was there and who was funding him. He just kept saying he was just writing a book about the history of UNIX. I asked him what he thought of Peter Salus' book, A Quarter Century of UNIX. He'd never heard of it! I mean, if you are writing a book on the history of UNIX and flying 3000 miles to interview some guy about the subject, wouldn't it make sense to at least go to amazon.com and type "history unix" in the search box, in which case Salus' book is the first hit? For $28 (and free shipping if you play your cards right) you could learn an awful lot about the material and not get any jet lag. As I sooned learned, Brown is not the sharpest knife in the drawer, but I was already suspicious. As a long-time author, I know it makes sense to at least be aware of what the competition is. He didn't bother.
UNIX and Me
I didn't think it odd that Brown would want to interview me about the history of UNIX. There are worse people to ask. In the late 1970s and early 1980s, I spent several summers in the UNIX group (Dept. 1127) at Bell Labs. I knew Ken Thompson, Dennis Ritchie, and the rest of the people involved in the development of UNIX. I have stayed at Rob Pike's house and Al Aho's house for extended periods of time. Dennis Ritchie, Steve Johnson, and Peter Weinberger, among others have stayed at my house in Amsterdam. Three of my Ph.D. students have worked in the UNIX group at Bell Labs and one of them is a permanent staff member now.
Oddly enough, when I was at Bell Labs, my interest was not operating systems, although I had written one and published a paper about it (see "Software - Practice & Experience," vol. 2, pp. 109-119, 1973). My interest then was compilers, since I was the chief designer of the the Amsterdam Compiler Kit (see Commun. of the ACM, vol. 26, pp. 654-660, Sept. 1983.). I spent some time there discussing compilers with Steve Johnson, networking with Greg Chesson, writing tools with Lorinda Cherry, and book authoring with Brian Kernighan, among many others. I also became friends with the other "foreigner," there, Bjarne Stroustrup, who would later go on to design and implement C++.
In short, although I had nothing to do with the development of the original UNIX, I knew all the people involved and much of the history quite well. Furthermore, my contact with the UNIX group at Bell Labs was not a secret; I even thanked them all for having me as a summer visitor in the preface to the first editio
Parent
Re:I still love the classic conversations from 199 (Score:5, Informative)
Parent
Re:I still love the classic conversations from 199 (Score:5, Funny)
"the Babylon project was a dream given form
"Its goal: to prevent another war by creating a place where humans and aliens could work out their differences peacefully.
"It's a port-of-call, home away from home for diplomats, hustlers, entrepreneurs, and wanderers.
"Humans and aliens wrapped in two million five hundred thousand tons of spinning metal, all alone in the night.
"It can be a dangerous place, but it's our last, best hope for peace.
"This is the story of the last of the Babylon stations. The year is 2258.
"The name of the place is Babylon5."
"Oh, and GNU Hurd was just released."
Parent
Monolithic versus microkernel (Score:5, Informative)
John Sauter (J_Sauter@Empire.Net)
Parent
Re:Monolithic versus microkernel (Score:5, Insightful)
The microkernel idea derives from one basic principle: anything that doesn't need to run in kernelspace, shouldn't be in kernelspace.
There are several hypothetical benefits to this approach. For one, code that executes in kernel space is trusted. You'll notice that a lot of CS academics advocate microkernel architectures. It's because the less you have in the kernel, the easier it is to verify the kernel. The fewer the set of kernel primitives you have, the easier it is to reason about how the kernel will behave. In modern microkernels (see: L4, or it's free variant Fiasco), pretty much the only thing of importance left in kernel space is the scheduler, process management, and a few basic stubs for memory management. Most of the memory management implementation itself is pulled out into userspace.
The other benefit of microkernels is that they allow the system to be more flexible, when designed correctly. For example, having drivers in userspace means that you don't have the Linux issue with having to match driver versions with kernel versions. Another good example is that you _still_ cannot reasonably mount filesystems as a non-priviledged user in Linux. It's not unreasonable to expect that if you have access to a filesystem image, and you have access to the mount point, that you be allowed to extend the mount point with a view into the filesystem that you have control of. It should be possible, but it's not - mostly because the FS core is embedded into the kernel. And yes, there are kernel modules that promote the VFS layer to userspace - and they work pretty well. But there's really no need to have an artificial distinction between userspace FS impementations and kernelspace. There's nothing special about parsing directory and file structures that really needs to be in the kernel.
There are, and always will be, performance hits associated with moving kernel stuff into userspace. You necessarily have to have context switches for message passing - which has to be implemented in the kernel to be trusted in a microkernel design. The question is wether you think the benefits of microkernel design are worth that tradeoff.
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.
-Laxitive
Parent
Re:Let's reignite the fight! (Score:5, Funny)
Parent
Re:Backhanded and Grudging (Score:5, Insightful)
It's on the order of Michael Cowpland's acknowledging that Microsoft's undocumented APIs were no threat and no hindrance in the development of WordPerfect because they were just for internal plumbing and of no benefit to someone writing an app on top of them.
Parent
Re:Oh the irony. (Score:5, Informative)
Parent