More Responses to de Tocqueville Hatchet Job
akahige writes "Fresh from the debunking of the 'Linus couldn't possibly have written an OS without ripping someone off' book published by the Alexis de Tocqueville Institution, Tanenbaum has published an email he got from the consultant hired to do the code comparison between MINIX and Linux. Among other juicy comments, 'pay no attention to this man.' (There was no stolen code, either.) In related matters, ESR was apparently sent a pre-release excerpt of the book which he completely eviscerates with his usual zeal. Another story on NewsForge." See our previous stories if you're coming to this late.
comparison analysis:
The raw comparison files are very large, but mostly full of false positives. This is due to the way SIM handles lists of constants and SIM's inability to distinguish between function calls and certain elements of syntax.
Only 4 actual similarities were found. They are excerpted in whole, with reference to the respective source files, and discussed. Since the similar code sections are fairly invariant over all versions of minix and linux compared, excerpts will be taken from linux-0.96c and minix-1.2.
1. in linux, include/linux/ctype.h:
[code sipped]
in minix, include/ctype.h:
[code snipped]
These are the 'character type' macros. They predate both minix and linux, and are a part of the majority of C libraries. They are specified in the ANSI C standard (ANSI X3.159-1989), and arereferred to in most C textbooks (i.e. "C++ How to Program" H. M. Deitel, P. J. Deitel --2nd ed. ISBN 0-13-528910-6).
2. in linux, include/linux/stat.h:
[code snipped]
in minix, h/stat.h:
[code snipped]
Both the names and values of these constants are specified by the POSIX standard.
3. in linux, in fs/read_write.c:
[code snipped]
in minix, in fs/open.c
[code snipped]
The behavior of the lseek system call is specified by POSIX. Since it is so simple, practically all implementations will be highly similar.
4. in linux, in fs/minix/inode.c: in minix, in fs/super.c This operation is required in order to correctly mount the minix filesystem. All implementations would need this or equivalent code.
Since, out of thousand of lines of code, only 4 small segments were found to be similar, and since in each case the similarity was required by external factors (the C standard, the POSIX standard, the minix filesystem format), it is highly unlikely that any source code was copied either from minix to linux or vice-versa.
And if you keep reading until the end, he acknowledges that the word "swiped" creates a bad impression/implication, and that Microsoft legally used BSD code.
Clearing Up Some Misconceptions
I would like to close by clearing up a few misconceptions and also correcting a couple of errors. First, I REALLY am not angry with Linus. HONEST. He's not angry with me either. I am not some kind of "sore loser" who feels he has been eclipsed by Linus. MINIX was only a kind of fun hobby for me. I am a professor. I teach and do research and write books and go to conferences and do things professors do. I like my job and my students and my university. If you want to get a masters there, see my home page for information. I wrote MINIX because I wanted my students to have hands-on experience playing with an operating system.
After AT&T forbade teaching from John Lions book, I decided to write a UNIX-like system for my students to play with. Since I had already written two books at this point, one on computer architecture and one on computer networks, it seemed reasonable to describe the system in a new book on operating systems, which is what I did. I was not trying to replace GNU/HURD or Berkeley UNIX. Heaven knows, I have said this enough times. I just wanted to show my students and other students how you could write a UNIX-like system using modern technology.
A lot of other people wanted a free production UNIX with lots of bells and whistles and wanted to convert MINIX into that. I was dragged along in the maelstrom for a while, but when Linux came along, I was actually relieved that I could go back to professoring. I never really applied for the position of King of the Hackers and didn't want the job when it was offered. Linus seems to be doing excellent work and I wish him much success in the future.
While writing MINIX was fun, I don't really regard it as the most important thing I have ever done. It was more of a distraction than anything else. The most important thing I have done is produce a number of incredibly good students, especially Ph.D. students. See my home page for the list. They have done great things. I am as proud as a mother hen. To the extent that Linus can be counted as my student, I'm proud of him, too. Professors like it when their students go on to greater glory. I have also written over 100 published research papers and 14 books which have been translated into about 20 languages. As a result I have become a Fellow of the IEEE, a Fellow of the ACM, and won numerous other awards. For me, these are the things that really count. If MINIX had become a big 'commercial' success I wouldn't have had the time to do all this academic stuff that I am actually more interested in.