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.
Andy Tanenbaum is a hero.
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.
The real question here is if Linus stole AT's code from MINIX, which both the creator of MINIX and an independant auditor both say he didn't.
"Everybody knows the moon's made of cheese," Wallace.
Well, it turns out that Linus never did make an operating system. Instead, he just created Linux which is a kernel that happens to be used with most of the GNU System to create OSes such as Debian and RedHat. Of course no one person could create an OS by themselves..... Hell, he wasn't even the only one working on Linux.
The more pain this causes ADTI, the lower their future credibility sinks, the number of people whose long-term memories record ADTI as the bunch of corporate whores they are... the more damage is done to their prospects of seeking future funding. Even from Microsoft, it won't make sense to pour more money into ADTI if they are widely considered a joke.
Better yet, if ADTI suffers, the public scandal will help deter other "think tanks" from attacking free software when Microsoft or other proprietary vendors come knocking with "research" dollars.
PJRC: Electronic Projects, 8051 Microcontroller Tools
Where does it say anything about the TCP stack? All it say is that portions of software are under the BSD license.
The only way to tell that the TCP stack is one of the portions used is through behavorial analysis.