Slashdot Mirror


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.

26 of 668 comments (clear)

  1. I like the last bit by gowen · · Score: 4, Interesting

    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.
    1. Re:I like the last bit by MemoryDragon · · Score: 5, Interesting

      Actually, since the interview is not reachable anymore, I assume it is right what you said. But Tannenbaum is right in his sense, a Makrokernel does not really make that much sense, it is easier to program because you simply have method calls instead of messages, but you run into driver compiles, crashes due to the strong binding etc... Mach at least in its early incarnations was not the best example of a Microkernel, neither is the vaporware hurd, which probably will be finished in about 100 years, but improved Mach kernels derived from newer incarnations already have shown how powerful and stable the concept can be, Two words:AIX and MacOSX both based on Mach kernels and both excellent and fast operating systems.

    2. Re:I like the last bit by Tarantolato · · Score: 4, Interesting

      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.

      Apparently, the really trendy kids have decided that microkernels themselves are obsolete, and moved on to something called exokernels. I can't pretend to understand the distinctions involved.

    3. Re:I like the last bit by buzzdecafe · · Score: 3, Interesting

      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.

      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

    4. Re:I like the last bit by Nurf · · Score: 5, Interesting

      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.

      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.

      --
      ---
    5. Re:I like the last bit by Sunda666 · · Score: 3, Interesting

      To be 100% fair, it never was a microkernel anyway. But in the 3.x days the NT kernel was small enough to pass as a microkernel (falsely, eh, based on the sheer size/complexity alone). But GUI performance sucked, and had some issues (regular users being unable to change the desktop resolution due to the lack of priviledges comes to mind), and since windows is all about the GUI, they decided to put the GUI (and a lot of other drivers too) in kernelspace. So, now it is not a microkernel, and the kernel is not small anymore.

      Peace.

      --


      ``If a program can't rewrite its own code, what good is it?'' - Mel
    6. Re:I like the last bit by doug_wyatt · · Score: 3, Interesting

      Actually, with most of the exokernels that actually existed in the wild, even things like the filesystem and the network stack existed within the process of the application using it. For apps that shared the same implementation, they'd use a shared library - a purely performance hack so that the text segments didn't use up lots of memory. But each app could chose to implement their own version. You could think of an Exokernel as a monolithic kernel except that the abstractions that the kernel present to the process are much lower level (e.g. disk blocks and packet filters) than with traditional monolithic kernels (e.g. files and sockets). The main premise of Exokernels was that OS's have traditionally, secured hardware resources, multiplexed hardware resources and abstracted hardware resources - the first two are good ideas, but the last one is better left up to the application since it knows what it's doing with them.

  2. Re:Grain of salt please by 91degrees · · Score: 3, Interesting

    Why are microkernels a bad idea?

  3. The Real Father of DOS &Windows by CrypticSpawn · · Score: 3, Interesting

    Okay the real father of dos and windows is here

  4. How can Linux be a copy of Minix by solidhen · · Score: 3, Interesting

    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
    1. Re:How can Linux be a copy of Minix by Tarantolato · · Score: 4, Interesting

      He also says that Brown, the person who interviewed him, was completely clueless and obviously pushing an agenda.

      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.

  5. Oh the irony. by mumblestheclown · · Score: 3, Interesting
    Of course Linus wrote linux.

    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?

  6. The plot thickens by DreamerFi · · Score: 5, Interesting
    Take a look at this post on alt.os.development:

    Greetings,

    I'm conducting some research on behalf of the Alexis de Tocqueville
    Institution in Washington, DC. I'd like if someone could shed some
    light on the following questions:

    1. Describe the components of an operating system, besides the central
    component, the kernel.
    2. What do programmers usually develop first, the compiler or the
    kernel?
    3. Does this sequence impact the OS at all?
    4. What's more complicated, the kernel or the compiler?
    5. Why does operating system development take as long as it does? What
    are the three key things in operating system development that take the
    longest to perfect?
    6. Do you need operating systems familiarity to write a kernel? Yes /
    no? Elaborate please.
    7. In your opinion, why aren't there more operating systems on the
    market?

    Thanks for your time. Best,
    Justin Orndorff


  7. Re:Grain of salt please by mr_z_beeblebrox · · Score: 3, Interesting

    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?

  8. QNX by RAMMS+EIN · · Score: 5, Interesting

    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.
    1. Re:QNX by JesseL · · Score: 3, Interesting

      If you'r using dd to copy a partition and you find it slow, how cold you possibly attribute it to the filesystem? Doesn't dd just do a raw copy and ignore the filesystem in a case like that?

      --
      "Prefiero morir de pie que vivir siempre arrodillado!"
  9. OS X by ink · · Score: 5, Interesting

    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.
    1. Re:OS X by Wesley+Felter · · Score: 3, Interesting

      Yes, Apple made a big mistake with the Darwin kernel. They get none of the advantages of a monolothic kernel (speed) and none of the advantages of a microkernel (isolation). They probably would have been better off just throwing away the NeXT kernel and porting the FreeBSD kernel to PPC.

  10. How many programmers does it take to write an OS? by Brackney · · Score: 3, Interesting

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

  11. Re:On second thought by Cytlid · · Score: 5, Interesting
    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.


    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.
    --
    FLR
  12. Malicious intent by mst76 · · Score: 4, Interesting

    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.

  13. Did they have a fight over a girl? by Derek · · Score: 4, Interesting

    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

  14. Re:Article text by RAMMS+EIN · · Score: 3, Interesting

    ``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.
  15. Re:Article text by CrayzyJ · · Score: 5, Interesting

    `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!
  16. Re:Writing a kernel is easy! by denlin · · Score: 3, Interesting

    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.
  17. Re:Great article but .... by __aalomb7276 · · Score: 3, Interesting

    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.