June 05, 2004

From scratch

The expression from scratch, as I understand it, means starting from the basic ingredients, without using premade components. If you were to tell me that you had made cookies from scratch, I would take you to mean that you started out with flour, sugar, butter, and so forth. You'd be telling me that you didn't use a mix or premade cookie dough. As far as I know, that is what this expression means to everybody. I wouldn't take you to mean that you had never been taught how to make cookies, did not discuss cookie-making with anybody, and did not consult a cookbook. The reason I mention this is that, believe it or not, the meaning of the expression from scratch comes up in the latest episode in the software wars.

I've talked before about GNU/Linux, the free software movement, and SCO's attack on Linux. Recently a new front has opened in the assault on the free software movement. Ken Brown, the President of the Alexis de Tocqueville Institution, has written a book attacking free software. Some of his claims have been posted on their website, and a draft has been circulated to selected people. The Alexis de Tocqueville Institution has pretensions of being a policy think tank, but seems to be basically a corporate mouthpiece. It is funded by various corporations, including Microsoft, and right-wing foundations. The Disinfopedia has an informative article about AdTI. Among other things, it is a shill for tobacco companies.

One of Brown's bizarre claims is that Linus Torvalds could not have written the Linux kernel without lifting much of the code from somewhere else. His idea is that Linux is a derivative of Minix, a Unix-like operating system developed as a teaching tool for his operating systems course by Andrew S. Tanenbaum. Brown has not a shred of direct evidence for this. Basically, his argument is that a university student couldn't have written an operating system by himself. As it happens, we can be quite sure that Torvalds did not copy Minix because we can compare the code and see that there was no copying. The source code for both is publicly available, here for Minix, and here for Linux. In fact, we know a priori that Linux couldn't be a copy of Minix because Linux is an example of what is called a monolithic kernel and Minix is an example of what is called a microkernel. Of course, Brown knows nothing about operating system design and so can't be expected to understand this.

AdTI's press release and the draft of the book have elicited a great deal of criticism, including devastating responses from some of the principals. Alexey Toptygin, whom AdTI hired to compare the Linux and Minix source code, has publicly stated that he found no copying and has published the results of his comparison. In a message to Andrew Tanenbaum, he says of Ken Brown:

...pay no attention to this man; to the best of my knowledge he is talking out of his ass.
Andrew Tanenbaum, the author of Minix, has explicitly denied that Torvalds copied Minix. You'd think he'd know, wouldn't you? Dennis Ritchie, one of the creators of Unix, has publicly denied Brown's claim that he conducted an "extensive interview" and has made available both sides of his email correspondence with Brown. Eric S. Raymond, President of the Open Source Initiative, to whom AdTI made the mistake of sending the draft of the book, has published a critique in which he characterizes it as
...a steaming pile of crap, full of anti-factual distortions, scare-mongering, and FUD.

AdTI President Ken Brown has issued a reply to his critics. Amazingly, in spite of Minix author Andrew Tanenbaum's denial and the failure of the code comparison to show any copying, he is still pursuing the line that Linus Torvalds must have based Linux on Minix. Among other things, he writes:
Yet Tanenbaum vehemently insists that Torvalds wrote Linux from scratch, which means from a blank computer screen to most people. No books, no resources, no notes -- certainly not a line of source code to borrow from, or to be tempted to borrow from.
Of course, Torvalds had books on operating system design and other resources. But as I mentioned above, writing from scratch doesn't mean that you've never read a book on the subject and never discussed it with anyone. So it would seem that there are just two possibilities here. One is that Ken Brown's notion of the meaning of from scratch is different from everybody else's. The other is that he's deliberately trying to make it look like Tanenbaum said something utterly implausible when he knows perfectly well that that is not what Tanenbaum meant.

The kicker here is that it makes no difference whether Tanenbaum's statement is correct. Suppose, for the sake of argument, that he got it wrong, that he said that Torvalds used no books or other resources, and that Torvalds in fact did. Would that tell us that Torvalds copied from Minix? Of course it wouldn't. Brown is actually trying to pull off a double fraud here: first, to convince us that Tanenbaum's statement about the origin of Linux is implausible, and second, to convince us that if Tanenbaum made such an implausible claim it would show that Linux was copied from Minix. It almost makes me think that Brown isn't an idiot; maybe he's an evil genius.

Posted by Bill Poser at June 5, 2004 01:25 AM