Posted
by
michael
on Thursday May 20, 2004 @08:55AM
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.

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

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.

Well, there are certainly benefits to a modular micro-kernel design. I wouldn't deny it (and haven't). But there are also drawbacks (message passing is terribly hard to make secure in a multi-tasking context, and is frequently slower than dirt. Add to that some of the braindead design decisions of the x386 w.r.t. privileged processes...) Yuck.

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

very true. also, Tanenbaum I think ignores the kernel module and abstration layers in the kernel. one of the points of a message passage system is to have proper interfaces defined so that subsystems can be replaced and interchanged. For people that have watched kernel development over the years, those design benefits are basically in the Linux kernel. yeah it may be "monolithic" in the OS kernel theory deisgn aspect, but it incorporates the design abstrations of a "microkernel" without the performance hits (for the most part on both counts).

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 [c2.com]. I can't pretend to understand the distinctions involved.

Exokernels reinvent IBMs VM system. "An Exokernel securely multiplexes the raw hardware, and application libraries directly implement traditional OS functions." This does not mean that applications must now include their own drivers for every possible hardware they might use. It means that drivers can now be packaged as shared libraries in user space rather than as kernel modules.

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.

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.

I personally prefer nanokernels. A nanokernel is a (kernel * 10^-9). It works out as being much smaller and faster, since a microkernel is only (kernel * 10^-6). Yeah, yeah? Let's see if Andy Tanenbaum can explain that one! Soon, Linux hackers will be jumping ship because they will be 1337 enough to write a PICOKERNEL!

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

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.

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.

A 20% performance hit really doesn't matter. Look at the rate of speed increases in hardware. When new systems come out doubling performance at such a regular pace, a one-time 20% slowdown to switch to an otherwise superior architecture with other benefits is an easy pill to swallow.

Of course, I don't think microkernels are a superior archeticture to begin with, and I think that a bland "20%" isn't a reasonable estimate of the real-world application or database's performance loss, so I still disagree with Andy.

I'm of the view that the differences between micro and monolithic kernels are really a question of where you place things in a semantic sense. Just as one can write OO code in C, one can write well-isolated modular code in a monolithic kernel. I'd rather have the burden of that modularization taken care of on the developer's end than at runtime.

A 20% performance hit really doesn't matter. Look at the rate of speed increases in hardware. When new systems come out doubling performance at such a regular pace, a one-time 20% slowdown to switch to an otherwise superior architecture with other benefits is an easy pill to swallow.

Good theory. Practice seems to work out differently.

Speed comparisons between products. Seems like 5% difference is enough to declare a clear winner. Unless you look behind the curtain.

Speed increases in hardware? At work I have two computers. I am typing this on NT4 on a 400MHz Gateway. My "other" computer is XP on a 2.4GHz Dell. Other than some legacy dBase for DOS applications the "faster" computer isn't any faster. It does boot faster which means that the XP machine is booted a lot more often than the NT. A 20% performance hit would be the same 20% on both machines.

The quoted improved performance doesn't quite translate into reality. A legitimate 10-times performance (IBM 1410 to IBM 370/135) transated into a 2-times difference in actual throughput. By the way, going the other direction won't work. As a rule of thumb, you will feel 90% of all slowdowns and only 10% of all speedups. This works both directions, like the "uphill both ways" quip.

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

The performance hit of doing a context switch on PowerPC is about the same as doing a function call, which make multithreading and things like microkernels very easy to do fast. On x86, the overhead is often an order of magnitude larger, making microkernels crawl.

However, L4Linux is Linux running atop an L4 kernel. This means that the Linux kernel is still as monolithic as it always was. The same goes for MkLinux (Linux on Mach) and Darwin (a monolithic BSD server on Mach).

Exactly. The parent probably meant disk device driver. I wonder what blocksize he used? Picking the right blocksize makes all the difference in the world; larger blocksizes reduce head movements (which are orders of magnitude slower than actual data transfers), but will eventually exhaust core memory.

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 [apple.com] See that dotted-line that stretches from the kernel to userland? Tannenbaum would not approve.

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.

The software that Apple is referring to with the term "BSD subsystem", and the BSD core I/O routines to which the grandparent is referring, are not the same thing. I don't know for sure, but I believe Apple's talking about some additional libraries and such that folks developing for BSD are used to having installed, but which aren't needed by OS X and typical Apple-centric apps.

Performance of the compiler is probably more guilty when it comes to overall performance than the kernel. Further you are comparing apples with oranges comparing a Mac to a PC when it comes to compiling...

I object to your comparison between apples and oranges and Macs and PCs. Equating apples compared to oranges with Macs compared to PCs is like comparing comparisons between euphemisms with comparisons between idioms.

Sure there is. It adds detail, and makes the speaker more credible, because it proves that the topic is actually something he cares heavily about. Demonstrating passion is a way to quickly prove that although your beliefs might not be perfectly correct, you've at least spent a lot of time and effort researching them, and are thus an informed source.

And from another perspective: show that he is still antagonistic to Linus's system gives him even more credibility. If a friend vouches for you, that might be discounted as a buddy covering for you- but if an enemy says you're innocent, then he's got no motivation to lie on your behalf.

(This reminds me in a roundabout way of Iraq today: the US Army "raiding" Chalabadi's headquarters, and he's publically "upset" about it. But they could've really been trying to help him gain power in Iraq, because the common people won't trust a leader who's too friendly to the USA. An OT example of how people can be easier to categorize by counting their enemies rather than their supporters)

Because if you want any kind of decent performance out of a server system you need both those things. Otherwise you've got a couple of designed-in bottlenecks to throughput. Now *that's* a braindead design decision. Of course, its completely understandable in the context of MINIX's design as a teaching system, but to deride those features in other OS's as "a hack" is just pure prejudice.

I've re-read that old flameware a few times over the years. It's kinda interesting how one reason he derides the performance hack is that "you don't need them", because normal PCs only have one job running. Certainly nobody envisioned the kind of systems we'd be running today (note the comment about 10 years from now when we're all on 200mips 64MB sparcs. That'd barely qualify as a toaster today....), but Linux rose to the challenge, Minix pretty much didn't. I think the freedom of Linux had alot to do with that (and he misses the point during the flamewar on that, too).

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?

One reason that Minix did not "rise to the challenge" is that Tannenbaum wanted to keep his OS simple, for didactic reasons. Linux designed his OS to run on his new 386 computer, which had all sorts of nifty capabilities-- memory protection, a 32 bit address space, etc. Tannenbaum thought it was important to run run on on low end (student) hardware

RTA. particularly the bit where Tanenbaum says that he kept MINIX small in order to to keep it up the challenge of being a good teaching tool. And then goes on to imply that he was suprised that it took so long for the niche of free, open production-featured UNIX to be filled by Linux and BSD.

Of course, Tanenbaum would have prefered that niche to be filled by a microkernel OS, but MINIX was never going to be that OS. MINIX was going to be the code that the creators of free UNIX cut thier teeth on at university. And guess what, it was.

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?

I read the article from the Groklaw link before it showed up on/. Tanenbaum says that at least five different people single handedly wrote a UNIX-like kernel and that Linus clearly wrote Linux. He also says that Brown, the person who interviewed him, was completely clueless and obviously pushing an agenda.

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.

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.

I really have to figure out how to do this scam.
Get money from big corporations

They started off taking money from [digital-law.net] the [adti.net] Swiss [americanswiss.org]. The process seems to go something like this:

1. Get some hack-journalist experience (overfunded and obscure policy journals publish damn near anything; ditto for the Washington Times, as long as it purports to be conservative).
2. Get to know rich people
--a. get cushy internships in college
--b. marry a lawyer at a Big Firm
3. Convince the rich people you know to pay you for hack journalism.
4. Use hack journalism to push dubious foreign-investment schemes
5. PROFIT!!!

The key is that business, academia, law, journalism and government don't really know how to function with one another. They want to, for both good and bad reasons, so a lot of the time they're willing to throw big money conferences, fellowships, publications and "research institutions" that are supposed to grease the wheels.

Added to this, washed-up bigwigs usually want some place to go, and their former friends often set up make-work jobs for them. Lose an election? Why don't you give a lecture once a month at my public policy school. Get shitcanned from your CEO job? Why don't you sit on my government advisory committee. Newspaper column dried up? How bout you be a fellow at my think-tank. And of course, all of these people need gophers, personal assistants, research aides, etc. - a whole industry of suckups scurrying around washups.

The pay is peanuts for the honorees, sometimes even nonexistent. But they like the honorary titles. In exchange, the institution that hands out the titles gets more prestige from having Big Names attached to it. Look at the name-dropping on AdTI website: Jack Kemp, Newt Gingrich (Republicans), John Norquist (Democrat). In turn, the aura of Big Names clustered around an institution makes it easier to sucker donors.

That's basically the scam: laundering prestige for money. All you have to do is Know People(tm).

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.

When I read it, to me it came across as a gentle rub, more good natured than bitter. Alas, when reading text, very often it is hard to determine the mind set of the author at the time of witing...

Actually, the real context is damning. His real reason for damning multitasking for MINIX is "no-one on a home PC will ever want to run more than one job at a time."

If by "home PC" you mean an Intel x86 machine, and put that into the context of way things were looking around 1990, that is an entirely reasonable standpoint. Not very many people ever did do much multitasking on 386es.

Most people around then (myself included) did not think the x86 architecture was going to hang around much longer. It is quite clear that Tanenbaum shared the majority view at the time, that RISC was the way to go.

Also, the design goals of MINIX, clearly stated by Tanenbaum, (see his book, I've read it.) was for MINIX to be an educational tool, and run on low-end (e.g. 286) PC:s. He was not planning MINIX to be a production-quality system. He did not want to add 386-specific features.

You should not dismiss Tanenbaum so lightly, he most likely is far more knowledgeable on these subjects than you or I. It's like saying Einstein was a moron because he didn't grok quantum theory.

I don't know, perhaps you're a Linux zealot who wants to believe that Linus is always right. But the reason this entire debate is so well-known is that both sides raise valid points. The difference is in their intentions and design goals, not in the facts.

Poor old Ken Brown must be wondering how wise it was to have made that particular trip now!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.":-)

Slashdotted...
Some Notes on the "Who wrote Linux" Kerfuffle, Release 1.1Background

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

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.

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.

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.

In old world media, who creates something of value is more important than what gets created. Hence there is often alot of slander, lies, and outright fraud (and a lot of crapy media). In Hollywood, it's so bad it's pratically institutionalized.

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.

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.

Actually its RMS who calls Linus 'just an engineer' and its not a compliment. Its said in the vein of 'just a child,' as in he might be able to do something but he doesn't understand the ramifications. In this case, Linus isn't fighting his (RMS) holy war so he doesn't think highly of Linus and derides him as just an engineer who doesn't understand the whys of the GPL.

From everything I've read, I'd say Linus is anything but casual about freedom. What he is *not* is an idealist. That's what we have RMS for. He's a pragmatist, exactly the kind of person you want in charge of an engineering project. Perhaps not the person you want at the head of a movement, but that's not what he is. He's first and foremost an engineer.

If you want to "secure our freedoms in the technology space" with F/OSS, you need to actually have F/OSS that works well to convince the 99.99% of the world to whom the need and benefit is not intuitively obvious. If all we had were a bunch of RMS clones, we'd be a lot worse off, because he scares the hell out of business types, who are much more concerned with the economic benefits of F/OSS that Linus Torvalds provides.

We need leaders with a variety of different strengths to spread the message to people with a variety of different interests. Linus Torvalds does an excellent job selling the benefits of F/OSS to engineers. The fact that he lets people like Eben Moglen handle the freedom side doesn't mean that he's causing any harm. If Eben Moglen spent his precious time hacking kernel code, we'd all be worse off.

While [Minix is] not free software in the sense of "free beer" it was free software in the sense of "free speech" since all the source code was available for only slightly more than the manufacturing cost.

That's not "free as in speech". IIRC, the licence prevented us from distributing changes to the OS in any form other than patch files. This was a major reason why people became interested in Linux -- no such restriction exists and it is therefore, truly "free as in speech".

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?

I'm the first to disagree with anyone who says that Bill Gates isn't a very smart guy. He's got programming skills and incredible business smarts. However, he didn't write DOS, it was a clone of CP/M bought from another seattle company and then resold to IBM. story [diracian.com].

You are right of course, that each engineering marvel builds on something previously. If all the tech in the world were removed, we might know how to build cars and houses and put together computer systems, but we'd never know how to put together a hammer with stones and sticks, or fashion steel and silicone out of iron and sand. It would be interesting, wouldn't it? We'd have to start out with that old tech, to get back to this new stuff.

Anyways. idiots complain about Microsoft all the time, stupidly. But smart people do too - and there are plenty of good arguments against MS that don't require ignorance. The debate will continue. Hopefully Linux will get better, and the computing experience in general will get better. We'll see.

Bricklin sent waves of laughter through the auditorium by reading a passage from Lammers' interview with Bill Gates in which the young Microsoft founder explained that his work on different versions of Microsoft's BASIC compiler was shaped by looking at how other programmers had gone about the same task. Gates went on to say that young programmers don't need computer science degrees:

"The best way to prepare is to write programs, and to study great programs that other people have written. In my case, I went to the garbage cans at the Computer Science Center and I fished out listings of their operating systems."[my emphasis]

Bricklin finished reading Gates' words and announced, with an impish smile, "This is where Gates and [Richard] Stallman agree!"

The "Programmers at Work" panelists were full of optimism about new opportunities to reinvent software -- in the mobile-phone world (where, Scott Kim noted, the constraints of small screens and tiny memory made it feel "like the early days" again), in the new universe of RF tags, and in the still-unfolding saga of global networking. Bob Carr reminded everyone that technology transformations usually take 20 years to unfold -- "I remember thinking in 1987 that the PC industry was mature, it was over" -- and that the Internet is only halfway through that cycle.

Still, that picture of Bill Gates dumpster-diving for operating-system code was hard to shake. Finding new ways to think about programming and to make better software demands a willingness for pioneers to open up their work so others can learn from it. "Getting the software industry on a more open, fair and level playing field," as Hertzfeld put it, is a prerequisite for any leap forward in the programming world. Software patents are a looming train wreck; competition in most "end-user" software is largely a distant memory. Simonyi's technical bottleneck is also a social, political and business logjam.

Linus of course was doing a course at Uni with Tannenbaum's Minix as it's example code... But then again... he didn't deliberately set out to write an OS from scratch... to begin with, he wrote it primarily to have fun with the 386 instruction set and also to read usenet...

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

1. Describe the components of an operating system, besides the centralcomponent, the kernel.2. What do programmers usually develop first, the compiler or thekernel?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? Whatare the three key things in operating system development that take thelongest 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 themarket?

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?

After reading this, the Tanenbaum interview and this [linuxinsider.com], 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.

1. Describe the components of an operating system, besides the centralcomponent, the kernel.

The components of the operating system are as follows: The file browser, the kernelized window manager, the web browser, the media player, and the gaping remote exploit. As can be seen by this feature list, Microsoft Windows is the only true operating system on the market today.

2. What do programmers usually develop first, the compiler or thekernel?

Neither can be developed without access to a text editor, so invariably this is always written first. Unfortunately, once it is written, it needs to be compiled, and the compiler itself needs an operating system to run on. This "chicken and egg" problem wasn't solved until 2097, with the invention of time travel.

[Seriously, this guy is wrong to assume that both have to be written in order to have a complete system. Theoretically, you could develop an x86 operating system entirely on an Apple Powerbook, and just copy the binaries over, so you don't need to develop a compiler to develop an operating system.]

3. Does this sequence impact the OS at all?

Yes. Writing the compiler first opens a gaping hole in the fabric of the universe, while writing the kernel first causes a plague of sabre-toothed cows. The trick is to write them both at the same time so that the cows are immediately sucked into the gaping hole.

4. What's more complicated, the kernel or the compiler?

"Complicated" means "something I know how to do." "Simple" means "something I don't know how to do, but I know the people who do and they're a bunch of nitwits so how hard can it be?" Given that criteria, I would have to say that both are braindead simple. Ask me again in a couple of years.

5. Why does operating system development take as long as it does? Whatare the three key things in operating system development that take thelongest to perfect?

There are three rules that apply here. The first is Hofstadter's Law [wikipedia.org]: It always takes longer than you think, even if you've accounted for Hofstadter's Law.

The second rule is the 90% rule: The first 90% of the project will take 90% of the time, and the last 10% will take the other 90% of the time.

The last rule is called the "There's no way in hell we can add all the features the marketing department has already promised our customers, and they just added twenty more, and by the way three of them violate laws of physics" rule. Unfortunately, only the name of the rule has been passed down over the years, so nobody remembers what it was about.

A basic familiarity with computers is helpful, but not strictly necessary. For example, when Dennis Ritchie wrote the compiler for the BCPL language, he didn't actually use a computer. He scrawled the whole thing on a ream of paper, and had his secretary transcribe it. Similarly, when Linus wrote the 0.1 kernel, he used a photocopier.

7. In your opinion, why aren't there more operating systems on themarket?

Because it is not in the interests of the Freemasons to have more operating systems on the market. I can't say anything more about that in this forum, but it's absolutely true.

[Geez. There's a difference between an "operating system" (which a decent grad student can whip out in a few months) and an operating system which can be marketed as competition to the OSes already on the market. Linux 1.0 was probably closer to the former than the latter.]

1. On April 12, 2004, he asked about Linux ownership on usenet linux.kernel, using IP address 66.44.2.45 (RCN dialup access range). He used raison__d_etre@hotmail.com as his originating email address.References:http://groups.google.com/groups?selm=1Kbes-3hM- 1%4 0gated-at.bofh.it&output=gplain

2. On April 28, 2004, he asked about obtaining older versions of Minix in a Minix related mailing-list. He used raison__d_etre@HOTMAIL.COM as his originating email address.References:http://listserv.nodak.edu/scripts/wa.exe?A2=ind 040 4d&L=minix-l&F=&S=&P=59

3. On May 6, 2004, he posted questions about O.S. development on usenet alt.os.development, using IP address 66.44.4.15 (again, RCN dialup access range). He used jorndorff@adti.net as his originating email address.References:http://groups.google.com/groups?selm=b6920e1.04 050 61039.75c2fc2c%40posting.google.com&output=gplain)

4. Later on May 6, 2004, the very same questions were asked in various web forums by someone using the nickname "jnana".References:http://www.webmasterworld.com/forum40/1067.htm http://forums.devhardware.com/showthread.php?t=18 1 19&goto=nextoldesthttp://www.osdev.org/board.jsp ?message=6907

5. On may 18th, 2004, he asked questions about corporate contribution into Linux on usenet linux.samba, using IP address 138.88.144.59 (Verizon DSL access range). He used raison__d_etre@hotmail.com as his originating email address.References:http://groups.google.com/groups?selm=1Xf0Z-7VF- 11% 40gated-at.bofh.it&output=gplain

It is very likely that it is indeed only one person as:- The topics are closely related.- The IP used when posting using the @adti.net address (3) is on the same range as the one used when posting using the @hotmail.com address (1).- The questions asked using the jnana nickname (4) are the same as the ones asked using the @adti.net address (3).

Obviously, we have someone here, going by the names of Justin Orndorff/Jnana/Raison__d_etre (French for "reason to exist, or reason to be), and who seems very interested in Linux and other FOSS intelectual properties issues.

This person has at least two email addresses:raison__d_etre@hotmail.comjorndorff@adti.net

What else ?

6. He apparently has a page/blog on Devianart. He uses the same Justin O. and Jnana names. He says he's 22 and lives in CP (?), Maryland. He has apparently started a new job on March 1st.References:http://jnana.deviantart.com/http://jnana.devi antart.com/journal/

7. He seems to like movies, particularly the "poetic" genre.References:http://www.amazon.com/exec/obidos/tg/cm/member- gui des/-/A17FKWGJYHSEL2/103-1166439-6115864

8. He likes VHS music tapes trading (particularly black metal), has an email address @wam.umd.edu (University of Maryland) where he seems to be a student.References:http://www.tapetradernetwork.com/Framed_body_ri ght.asp?ArtistID=3338http://www.tapetradernetwork.c om/Framed_Trader_Det ail.asp?ID=9856

9. A while back he was looking for "Codreanu comp. ['Fidelis Legio']" (whatever that is, apparently more black metal).References:http://grumblesmurf.net/pipermail/coldmeat-l/20 02- February/010935.html

10. Well, he actually seems to be an English student at U. of Maryland (College Park, CP again, see (6)), and interested in films production.References:http://cinemaminima.com/blogs/orndorff/

OK, so maybe this is going a little fast but we apparently have an:- English student in Maryland,- Interested in films- Using email addresses raison__d_etre@hotmail.com, jorndorff@adti.net and maybe morpheus@wam.umd.edu (fake ?)- Working since March or April for the ADTI (A. de Tocqueville Institute)

FWIW, I think he's probably right from a technical standpoint. In practice, however, the macrokernel has been far easier to work with. Witness the huge success that macrokernel designs have had over microkernel designs. Even Apple, whose original macs were microkernels, eventually switched over to a macrokernel because of the difficulties of updating the original one.

My conclusion is the Ken Brown doesn't have a clue what he is talking about. I also have grave questions about his methodology. After he talked to me, he prowled the university halls buttonholing random students and asking them questions. Not exactly primary sources

I dont think Linus or anyone else has tried to conceal or hide the origins of linux. Anyone who has taken more than a passing interest in the history of linux knows that Linus got interested in kernel development while hacking Minix which was supplied in source code form in an educational book called "Operating Systems: Their design and Implementation". Rebel Code (Glynn Moody) is an excellent history of linux and open source and a great read. If people are interested in getting a good background its a great place to start.

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.

my first reaction to this attack was, 'who the f### is Ken Brown? as they taught me back in school, 'always consider the source' --if this guy's attacking Linux, he'd better have some solid credentials in the computer industry, right? well, all it took was a Google search, and the first link I hit told me all i need to know:
Anti-Open Source lobbyists need love, too
Friday October 25, 2002 - [ 03:00 PM GMT ]
Topics: Migration
- By Robin "Roblimo" Miller -
I felt bad for Ken Brown of the Alexis De Toqueville Institution (AdTI) last week...
http://www.newsforge.com/business/02/10/25/056218. shtml?tid=19
thanks to Roblimo, we have a first-hand account of Ken Brown's shameless FUD-ing, back in 2002--read this link for a cuttingly funny look at Mr. Browns earlier efforts;>
you gotta love the 'thousands of eyeballs' that are working on our side--it more than offsets what M$ gets from spreading it's dirty money around...
-DWitt
ps. methinks Brown's IP has just gone down the tubes--thank you very much Andy Tanenbaum!

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.

From what I've observed there are lots of programming projects that are "hard" for companies and large organizations because they aren't so amenable to "early partition" as people would like, and yet are substantially easier for one developer (or two in some cases) who partition the problem using internal divide-and-conquer, thus completely understanding the partitioning scheme right off the bat rather than spending months hashing it out at meetings and miscued early development efforts.

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.

Matt Loney of ZDNet UK is covering the story, including Andy Tanenbaum's two Euro-cents here [zdnet.co.uk]. I don't think anyone at AdTI, least of all Ken Brown, is going to be living off royalties any time soon - "falls at the starting gate" indeed. ZD even mention AdTI's ties to Microsoft least there be any doubt, which is nice of them.:)

I know many in the Linux community like to paint Mr. Tanenbaum as a bitter lunatic, but this is a great article, one that every Linux user/zealot should read.

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.

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

The teenage girl is a reference to the smiling, cigarette-smoking woman Lynndie England pictured pointing at a humiliated Iraqi man's genitals, and the fact that she and her smiling comrades will take the fall for Donald Rumsfeld and the rest of the chain of command.

From the AdTI website: " AdTI's Kenneth Brown reviews the origins and development of Linux -- in light of repeated expressions of contempt for intellectual property rights by Torvalds and some (but by no means all) open source programmers." (emphasis added).

I don't have to read the book -particularly after reading Tanenbaum's very convincing presentation that the author doesn't know dick about intellectual property, not to mention he was basically lying about writing a book about the history of Unix, when it is clear his notion from the get go was to write a book titled "SCO is telling the truth about Linux - Really!" The quote above makes it clear that rather than bother to, oh, find some actual copyrighted code in Linux that is stolen, he is arguing the stellar logic that:1) Open source advocates are contemptuous of copyright law2) People who are contemptuous of copyright law are plagiarists3) The people who wrote Linux are open source advocates...

Remind me what de Toqueville said about weaselly corporate shills again?

A quote from the Yahoo article -

"The report," according to Gregory Fossedal, a Tocqueville senior fellow, "raises important questions that all developers and users of open source code must face. While you cannot group all open source programmers and programs together; many are rigorous and respectful of the intellectual property rights, while others speak of intellectual property rights with open contempt." -Emphasis, again, added.

Get it? Failing evidence for any credible claim that they are actually TREATING intellectual property rights with contempt, they will note that they "speak" of them with open contempt... as if there were something wrong with that.

Writing a simple OS kernel is easy. I wrote one, and believe me, it wasn't that hard. At the university where I am a grad student, we require the undergrads to write most of an OS kernel (including virtual memory and a filesystem) in a one-semester course. I read alt.os.development regularly, and there are high school students who are writing OS kernels. (I'm often depressed by the fact that they are much better programmers than I am:-)

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.

Quote from Tannenbaum: That's when I discovered that (1) he had never heard of the patent, (2) did not know what it meant to dedicate a patent (i.e., put it in the public domain), and (3) really did not know a thing about intellectual property law. He was confused about patents, copyrights, and trademarks.

Do you not find it strange that the President of an organisation involved in arguments about patents, copyrights and trademarks should be so ignorant of patents, copyrights and trademarks?

The nonsense coming out out of AdTI together with Andrew Tanenbaum's description of his interview make me wonder whether the speculation that Microsoft is behind this is really correct. Microsoft has tons of money and some fairly smart people, even in management. I find it hard to believe that they couldn't do a better job than this. Even if they need a putatively independent
institution as a front, they could write the material themselves. They could even have their chosen institution hire somebody halfway competant for the project. It's hard to believe that they couldn't do better than this.

I wonder if this is perhaps just somebody trying to make a name for himself and/or bring in money for himself or his institute rather than something directly arranged by Microsoft.

BackgroundThe 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 workAST: A think tank, like the Rand Corporation?KB: Sort ofAST: What does it do?KB: Issue reports and booksAST: Who funds it?KB: We have multiple funding sourcesAST: Is SCO one of them? Is this about the SCO lawsuit?KB: We have multiple funding sourcesAST: Is Microsoft one of them?KB: We have multiple funding sourcesHe 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 MeI 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

In a kernel there is a lot of interaction between the various parts. In a monolithic kernel these interactions are performed by simple subroutine calls and manipulation of shared data. In a microkernel these interactions require a more complex switch between tasks, and message passing. In exchange, you get better protection of one part from the others, which makes tracking down bugs quicker.
John Sauter (J_Sauter@Empire.Net)

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.

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?

I thought it added credibility to Tanenbaum's recounting of the interview, insofar as he was acknowledging the simple fact that Linus wrote Linux without expressing any solidarity with him. It wasn't a case of academics and hackers closing ranks against a hostile interviewer, it was a competitor acknowledging that no wrongdoing had occurred.

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.

I wouldn't even call it sour grapes or hubris. He believes in the micro-kernel and Linus didn't use one. So to him Linus is a smart kid who should have paid better attention in class. He talks like a professor. Well that is what he is. His comment on students says it all:)

It is not unlike the whole GNU/linux argument that Stallman keeps bringing up. Stallman fundamentaly believes in the GNU and what it stands for.

Linus isn't to concerned about ideals. That is his secret. He is rather pragmatic and makes the choice that works right now. It is why it is the cute little penguin and not some super slick logo or the BSD devil that is the symbol for everything MS is not. Minix, BSD, hurd. All are free and true to some higher ideal about software. But linux rules them all in actually being used.

Tanenbaum and Stallman are the shoulders Linux stands on (with a lot of others of course) but at the same time it is also betraying them a little. That tanenbaum and Stallman can't help but point this out makes them real human people. Not some politically correct mouthpiece. I like them all the more for it.