Slashdot Mirror


More From Tanenbaum

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."

3 of 496 comments (clear)

  1. 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

  2. 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.

  3. 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.