Posted by
michael
on from the oh-christmas-tree dept.
BigFire writes "Professor Tanenbaum responds to the slashdot effect and a small critique of Ken Brown's forthcoming book in his followup. A small gem is where he disclosed that Ken Brown can't multiply simple positive integers."
Article text
by
Anonymous Coward
·
· Score: 5, Informative
Ken Brown's Motivation, Release 1.2
Background
On 20 May 2004, I posted a statement refuting the claim of Ken Brown, President of the Alexis de Tocqueville Institution, that Linus Torvalds didn't write Linux. My statement was mentioned on Slashdot, Groklaw, and many other Internet news sites. This attention resulted in over 150,000 requests to our server in less than a day, which is still standing despite yesterday being a national holiday with no one there to stand next to it saying "You can do it. You can do it." Kudos to Sun Microsystems and the folks who built Apache. My statement was mirrored all over the Internet, so the number of true hits to it is probably a substantial multiple of that. There were also quite a few comments at Slashdot, Groklaw, and other sites, many of them about me. I had never engaged in remote multishrink psychoanalysis on this scale before, so it was a fascinating experience.
The Brown Book
I got an advance copy of Ken Brown's book. I think it is still under embargo, so I won't comment on it. Although I am not an investigative reporter, even I know it is unethical to discuss publications still under embargo. Some of us take ethics more seriously than others. So I won't even reveal the title. Let's call it The Brown Book. There is some precedent for nicknaming books after colors: The International Standard for the CD-ROM (IS 10149) is usually called The Red Book.
Suffice it to say, there is a great deal to criticize in the book. I am sure that will happen when it is published. I may even help out.
Brown's Motivation
What prompted me to write this note today is an email I got yesterday. Actually, I got quite a few:-) , most of them thanking me for the historical material. One of yesterday's emails was from Linus, in response to an email from me apologizing for not letting him see my statement in advance. As a matter of courtesy, I did try but I was using his old transmeta.com address and didn't know his new one until I got a very kind email from Linus' father, a Finnish journalist.
In his email, Linus said that Brown never contacted him. No email, no phone call, no personal interview. Nothing. Considering the fact that Brown was writing an explosive book in which he accused Linus of not being the author of Linux, you would think a serious author would at least confront the subject with the accusation and give him a chance to respond. What kind of a reporter talks to people on the periphery of the subject but fails to talk to the main player?
Why did Brown fly all the way to Europe to interview me and (and according to an email I got from his seat-mate on the plane) one other person in Scandinavia, at considerable expense, and not at least call Linus? Even if he made a really bad choice of phone company, how much could that cost? Maybe a dollar? I call the U.S. all the time from Amsterdam. It is less than 5 cents a minute. How much could it cost to call California from D.C.?
From reading all the comments posted yesterday, I am now beginning to get the picture. Apparently a lot of people (still) think that I 'hate' Linus for stealing all my glory (see below for more on this). I didn't realize this view was so widespread. I now suspect that Brown believed this, too, and thought that I would be happy to dump all over Linus to get 'revenge.' By flying to Amsterdam he thought he could dig up dirt on Linus and get me to speak evil of him. He thought I would back up his crazy claim that Linus stole Linux from me. Brown was wrong on two counts. First, I bear no 'grudge' against Linus at all. He wrote Linux himself and deserves the credit. Second, I am really not a mean person. Even if I were still angry with him aft
And you would pick this up from the links, but just for the record: Tanenbaum is this european guy who once upon a time in the 80s wrote a textbook on operating systems which came with a simple UNIX-like operating system called "Minix". Ken Brown is some guy who works for something called the "Alex de Torqueville" (sic?) institute and he's writing a book which appears to mostly consist of slander against Linus Tourvalds and/or the Free Software movement.
Re:Little Help?
by
cmowire
·
· Score: 4, Informative
Prof. Tanenbaum made MINIX, which predates Linux and provided some inspiration, but no actual code. MINIX initially hosted the Linux environment until it was able to exist on its own. Prof. Tanenbaum and Linus had a massive flamefest early in the days of Linux over microkernel vs. monolithic kernel.
Ken Brown works for the Alexis de Tocqueville Institution, who is basicly in the business of writing "impartial" reports for people with money. It's public knowlege that they've taken money from Microsoft in the past for reports. He is writing a book accusing Linus of not writing Linux.
Linux is Obsolete
by
jsse
·
· Score: 4, Informative
First, I REALLY am not angry with Linus. HONEST. He's not angry with me either. I am not some kind of "sore loser" who feels he has been eclipsed by Linus. MINIX was only a kind of fun hobby for me.
For the rest of you who don't know 'the past' Prof. Tanenbaum with Linus, you may refer to the famous mailing list log "Linux is Obsolete".
Linus seems to be doing excellent work and I wish him much success in the future.
So I guess Prof. Tanenbaum can give higher grade than "F" to Linus now.:)
Both Prof. Tanenbaum and Linus are my favourite persons. I'm so happy to see this happy ending in real life.:~)
Before a book is published the publishers/authors usually send out copies for review & comments. Then, if errors are found (for example) they can be corrected before going to print. The idea of the embargo is essentially like an NDA - because the version being read is not the final version, it would be unfair to talk publically about it.
As for free speech - this isn't a legal thing, it's purely done out of respect for the publishing process and basic good manners. Once the final version is available it's fair game for anyone.
--
----
Den ene knappen er powerknapp, den andre er Bender voice knapp "Bite My Shiny Metal Ass"
CP/M 86, the 8088/8086 version of CP/M, was released in 1982, long after the IBM search for a disk operating system for the PC (which was in 1980). The very reason Seattle Computer produced their QDOS was that CP/M 86 wasn't available yet. This is what Microsoft bought, a veritable port of CP/M to the 8086.
If you were working at DRI, it was after the events cited, obviously.
-- HBI's Law: Frequency of calling others Nazis is directly correlated with the likelihood of the accuser being Communist.
Microkernel reality
by
Animats
·
· Score: 5, Informative
For starters, I'm reading this discussion on a computer running a microkernel. This machine is running QNX 6.2 on a Shuttle 1.5GHz AMD desktop box. The browser is Mozilla 1.6, running under the QNX Photon GUI. It runs about as well as the same version of Mozilla on a comparable Windows machine. Even the same Mozilla bugs show up.
The file systems and networking are user programs.
You can add new file systems; there's one that mounts.zip files, there's NFS, and there's Samba.
In Linux terms, visualize a system where there's the/proc file system for inter-program communication, and everything works through that mechanism.
The drivers really are outside the OS. I've written a FireWire camera driver for QNX, and it's a user program. It's privileged in that it does map some real memory shared by the device, and it can talk to the device directly, so it could potentially cause a crash by making the device write someplace it shouldn't. (That's really a weakness in the PC's I/O architecture; there's no MMU between devices
and memory, for historical reasons dating back to the original IBM PC.)
Debugging a driver is like debugging a normal program. You can even run a driver under a debugger. You can kill a driver while it's running, and it's no big deal. (If you have real memory mapped, it's not recovered until the next boot, so I had to restart my machine about once a week while doing driver development.) Mainframe people have been doing this since the 1960s, but it's rare on PCs.
The basic penalty for using a microkernel is one extra copy and context switch for every file system operation. If your system is doing anything besides I/O, you'll probably never notice. If you're running a web server that serves mostly plain pages (little Perl, Java, PHP, etc.),
you'd probably notice the overhead.
So why are microkernels so rare? They're hard to write well. You can't just hack them together like a UNIX clone. There are some tough design problems to be solved. If those are botched, message passing performance will be terrible.
Message passing and CPU scheduling need to work together. This forces certain design decisions in the scheduler. It's also why adding message passing to an existing system tends not to work well. The Hurd crowd has been thrashing on this issue for a decade. I would have loved to see something as good as QNX from the Hurd people.
But it didn't happen.
Mach didn't really work out as a microkernel. Mach started from 4.3BSD (considered bloated in its day), and versions of Mach below 3 had 4.3BSD in the kernel. MacOS X is not a microkernel system; the BSD stuff is in the kernel. Basically, retrofitting a microkernel architecture to an existing UNIX kernel didn't work.
What you do get from a microkernel like QNX is predictablity. The kernel changes very little and is very reliable. Good microkernels, like QNX and IBM's VM, settle down into versions that almost never change and have very long MTBFs. This brings down total cost of ownership.
Re:Little Help?
by
JPriest
·
· Score: 4, Informative
Linux was written on Minix and based partly on it (and partly on many other operating systems). But Linux does not and never did contain any Minix source code. For one Linux is a monolithic kernel and Minix is a microkernel. Not just different code but entirely different implementations. I highly recomment reading a usernet post from Andy Tanenbaum in 1992 titled "LINUX is obsolete" and the corresponding response from Linus.
-- Saying Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
Re: microkernels the best approach
by
niew
·
· Score: 5, Informative
If you want successful microkernels, look at NT and Darwin
Hmmm, No...
It's a widely perpetuated myth that NT is a microkernel. It may have started out that way, but has long since grown through millikernel, centikernel, decikernel to full blown kernel... (and beyond if you count browser, media player and kitchen sink OS embedding)
The linked letter from Prof Tanenbaum touches on this point too... He says:
Microsoft claimed that Windows NT 3.51 was a microkernel. It wasn't. It wasn't even close. Even they dropped the claim with NT 4.0.
Re:Changed opinion
by
nathanh
·
· Score: 4, Informative
But it should not be ignored that you can now add filesystems to a running kernel as modules, and even build them outside of the kernel tree. At this point, Linux is essentially a microkernel design running as a monolithic kernel for performance reasons as an implementation detail.
Dynamically loadable modules does not make Linux a microkernel design. It would only be a microkernel if the filesystem code ran in a different address space. But because ext3.o runs in the same address space as the kernel, it is most definitely a monolithic design. It is not a "microkernel design running as a monolithic kernel". That's just a nonsensical statement.
A future version could offer the option of running the filesystems in userspace if you want. (That is, running all of the filesystems in userspace with the kernel fs API; there's already support for having filesystems in userspace if you want.) I wouldn't be surprised if people having weird problems would be advised to try the "ext3.userspace" option, and if you could avoid tainting your kernel with "nvidia.userspace".
You clearly understand that the significant distinction between microkernel and monolithic is the address space for the subsystems. So I can't understand why you'd suggest that kernel modules makes Linux "essentially a microkernel design". Look at the address space for ext3.o; it's kernel space.
I don't see Linux evolving into a microkernel until there's hardware support for cross address space branching. Don't hold your breath.
Ken Brown's Motivation, Release 1.2
Background
On 20 May 2004, I posted a statement refuting the claim of Ken Brown, President of the Alexis de Tocqueville Institution, that Linus Torvalds didn't write Linux. My statement was mentioned on Slashdot, Groklaw, and many other Internet news sites. This attention resulted in over 150,000 requests to our server in less than a day, which is still standing despite yesterday being a national holiday with no one there to stand next to it saying "You can do it. You can do it." Kudos to Sun Microsystems and the folks who built Apache. My statement was mirrored all over the Internet, so the number of true hits to it is probably a substantial multiple of that. There were also quite a few comments at Slashdot, Groklaw, and other sites, many of them about me. I had never engaged in remote multishrink psychoanalysis on this scale before, so it was a fascinating experience.
The Brown Book
I got an advance copy of Ken Brown's book. I think it is still under embargo, so I won't comment on it. Although I am not an investigative reporter, even I know it is unethical to discuss publications still under embargo. Some of us take ethics more seriously than others. So I won't even reveal the title. Let's call it The Brown Book. There is some precedent for nicknaming books after colors: The International Standard for the CD-ROM (IS 10149) is usually called The Red Book.
Suffice it to say, there is a great deal to criticize in the book. I am sure that will happen when it is published. I may even help out.
Brown's Motivation
What prompted me to write this note today is an email I got yesterday. Actually, I got quite a few :-) , most of them thanking me for the historical material. One of yesterday's emails was from Linus, in response to an email from me apologizing for not letting him see my statement in advance. As a matter of courtesy, I did try but I was using his old transmeta.com address and didn't know his new one until I got a very kind email from Linus' father, a Finnish journalist.
In his email, Linus said that Brown never contacted him. No email, no phone call, no personal interview. Nothing. Considering the fact that Brown was writing an explosive book in which he accused Linus of not being the author of Linux, you would think a serious author would at least confront the subject with the accusation and give him a chance to respond. What kind of a reporter talks to people on the periphery of the subject but fails to talk to the main player?
Why did Brown fly all the way to Europe to interview me and (and according to an email I got from his seat-mate on the plane) one other person in Scandinavia, at considerable expense, and not at least call Linus? Even if he made a really bad choice of phone company, how much could that cost? Maybe a dollar? I call the U.S. all the time from Amsterdam. It is less than 5 cents a minute. How much could it cost to call California from D.C.?
From reading all the comments posted yesterday, I am now beginning to get the picture. Apparently a lot of people (still) think that I 'hate' Linus for stealing all my glory (see below for more on this). I didn't realize this view was so widespread. I now suspect that Brown believed this, too, and thought that I would be happy to dump all over Linus to get 'revenge.' By flying to Amsterdam he thought he could dig up dirt on Linus and get me to speak evil of him. He thought I would back up his crazy claim that Linus stole Linux from me. Brown was wrong on two counts. First, I bear no 'grudge' against Linus at all. He wrote Linux himself and deserves the credit. Second, I am really not a mean person. Even if I were still angry with him aft
It isn't that you're "out of the know" it's just that you didn't see the previous article on this subject on slashdot two days ago.
You want to read this article. It should explain what is happening.
And you would pick this up from the links, but just for the record: Tanenbaum is this european guy who once upon a time in the 80s wrote a textbook on operating systems which came with a simple UNIX-like operating system called "Minix". Ken Brown is some guy who works for something called the "Alex de Torqueville" (sic?) institute and he's writing a book which appears to mostly consist of slander against Linus Tourvalds and/or the Free Software movement.
Irritable, left-wing and possibly humorous bumper stickers and t-shirts
Prof. Tanenbaum made MINIX, which predates Linux and provided some inspiration, but no actual code. MINIX initially hosted the Linux environment until it was able to exist on its own. Prof. Tanenbaum and Linus had a massive flamefest early in the days of Linux over microkernel vs. monolithic kernel.
Ken Brown works for the Alexis de Tocqueville Institution, who is basicly in the business of writing "impartial" reports for people with money. It's public knowlege that they've taken money from Microsoft in the past for reports. He is writing a book accusing Linus of not writing Linux.
Gentoo Sucks
First, I REALLY am not angry with Linus. HONEST. He's not angry with me either. I am not some kind of "sore loser" who feels he has been eclipsed by Linus. MINIX was only a kind of fun hobby for me.
:)
:~)
For the rest of you who don't know 'the past' Prof. Tanenbaum with Linus, you may refer to the famous mailing list log "Linux is Obsolete".
Linus seems to be doing excellent work and I wish him much success in the future.
So I guess Prof. Tanenbaum can give higher grade than "F" to Linus now.
Both Prof. Tanenbaum and Linus are my favourite persons. I'm so happy to see this happy ending in real life.
Before a book is published the publishers/authors usually send out copies for review & comments. Then, if errors are found (for example) they can be corrected before going to print. The idea of the embargo is essentially like an NDA - because the version being read is not the final version, it would be unfair to talk publically about it.
As for free speech - this isn't a legal thing, it's purely done out of respect for the publishing process and basic good manners. Once the final version is available it's fair game for anyone.
---- Den ene knappen er powerknapp, den andre er Bender voice knapp "Bite My Shiny Metal Ass"
CP/M 86, the 8088/8086 version of CP/M, was released in 1982, long after the IBM search for a disk operating system for the PC (which was in 1980). The very reason Seattle Computer produced their QDOS was that CP/M 86 wasn't available yet. This is what Microsoft bought, a veritable port of CP/M to the 8086.
If you were working at DRI, it was after the events cited, obviously.
HBI's Law: Frequency of calling others Nazis is directly correlated with the likelihood of the accuser being Communist.
The file systems and networking are user programs. You can add new file systems; there's one that mounts .zip files, there's NFS, and there's Samba.
In Linux terms, visualize a system where there's the /proc file system for inter-program communication, and everything works through that mechanism.
The drivers really are outside the OS. I've written a FireWire camera driver for QNX, and it's a user program. It's privileged in that it does map some real memory shared by the device, and it can talk to the device directly, so it could potentially cause a crash by making the device write someplace it shouldn't. (That's really a weakness in the PC's I/O architecture; there's no MMU between devices and memory, for historical reasons dating back to the original IBM PC.)
Debugging a driver is like debugging a normal program. You can even run a driver under a debugger. You can kill a driver while it's running, and it's no big deal. (If you have real memory mapped, it's not recovered until the next boot, so I had to restart my machine about once a week while doing driver development.) Mainframe people have been doing this since the 1960s, but it's rare on PCs.
The basic penalty for using a microkernel is one extra copy and context switch for every file system operation. If your system is doing anything besides I/O, you'll probably never notice. If you're running a web server that serves mostly plain pages (little Perl, Java, PHP, etc.), you'd probably notice the overhead.
So why are microkernels so rare? They're hard to write well. You can't just hack them together like a UNIX clone. There are some tough design problems to be solved. If those are botched, message passing performance will be terrible. Message passing and CPU scheduling need to work together. This forces certain design decisions in the scheduler. It's also why adding message passing to an existing system tends not to work well. The Hurd crowd has been thrashing on this issue for a decade. I would have loved to see something as good as QNX from the Hurd people. But it didn't happen.
Mach didn't really work out as a microkernel. Mach started from 4.3BSD (considered bloated in its day), and versions of Mach below 3 had 4.3BSD in the kernel. MacOS X is not a microkernel system; the BSD stuff is in the kernel. Basically, retrofitting a microkernel architecture to an existing UNIX kernel didn't work.
What you do get from a microkernel like QNX is predictablity. The kernel changes very little and is very reliable. Good microkernels, like QNX and IBM's VM, settle down into versions that almost never change and have very long MTBFs. This brings down total cost of ownership.
Linux was written on Minix and based partly on it (and partly on many other operating systems). But Linux does not and never did contain any Minix source code. For one Linux is a monolithic kernel and Minix is a microkernel. Not just different code but entirely different implementations. I highly recomment reading a usernet post from Andy Tanenbaum in 1992 titled "LINUX is obsolete" and the corresponding response from Linus.
Saying Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
Hmmm, No...
It's a widely perpetuated myth that NT is a microkernel. It may have started out that way, but has long since grown through millikernel, centikernel, decikernel to full blown kernel... (and beyond if you count browser, media player and kitchen sink OS embedding)
The linked letter from Prof Tanenbaum touches on this point too... He says:
Dynamically loadable modules does not make Linux a microkernel design. It would only be a microkernel if the filesystem code ran in a different address space. But because ext3.o runs in the same address space as the kernel, it is most definitely a monolithic design. It is not a "microkernel design running as a monolithic kernel". That's just a nonsensical statement.
You clearly understand that the significant distinction between microkernel and monolithic is the address space for the subsystems. So I can't understand why you'd suggest that kernel modules makes Linux "essentially a microkernel design". Look at the address space for ext3.o; it's kernel space.
I don't see Linux evolving into a microkernel until there's hardware support for cross address space branching. Don't hold your breath.