Tanenbaum-Torvalds Debate - Notes This paper didn't come to any kind of conclusions so much as it was a good discussion of the state and intentions of MINIX and Linux at the time. There was a lot of misunderstanding about theory versus practice, especially about the difference between Linux and MINIX. MINIX was intended as a simple code base, easily understood by students. Linux on the other hand was intended both to have more advanced features (purposefully excluded from MINIX) and to take advantage of all of features that the Intel 386 architecture offered (sacrificing platform independence). AST pointed to a lot of the existing literature[1] proclaiming the technical and theoretical superiority of microkernel design (after posters established that there were indeed successful microkernel deployments in the wild[2]) but it was eventually realized that Linux's monolithic design allowed it to be developed and delivered quicker. This availability was considered a major win and why Linux steadily gained popularity over the years. This was the main reason why many hackers of the time were choosing Linux over MINIX, BSD, GNU, or other less free or less available Unix-like systems. There were many references to the technical deficiencies of MINIX without depth of discussion. A list of the features that MINIX didn't have is: 386 support, virtual terminals, soft links, select() syscall, PTY's, demand paging, swapping, shared text, shared libs, efficient MM, flexible MM, X Windows, TCP/IP, or POSIX. Admittedly the version of MINIX written at the time was started before POSIX was created and the rest of the features would have needlessly complicated MINIX's codebase. Posters cited Linux's availability, quick evolution and performance as much better than MINIX's. There was a lot of talk about MINIX's poor multithreaded filesystem performance, making it perform poorly for mutlitasking workloads such as compiling programs while reading other files, reading data from a floppy drive and reading email at the same time, or using emacs. Most of the (perceived) problems with MINIX lead to the development of Linux and the growth of its community. Pragmatism won over theoretical idealism. The pragmatism was both technical (the monolithic design, sacrificing platform independence for more features) and social (accepting patches from others, freely licensing the code) and can still be seen in the Linux Kernel community today. This all shows how pragmatism is a strong factor in OS choice. What's amusing is some of the incorrect predictions made by posters: - x86 will fade as the dominant architecture (x86 is still a large backwards- compatible hack that isn't even CISC internally, but it is the general performance king -- more pragmatism) - microkernels are the wave of the future (hard to say: WinNT, Mac OS, and QNX are arguably the only mainstream consumer OSes that are microkernels, but they aren't particularly loud about it, Linux is still very loudly monolithic) - GNU kernel will be released soon (we're still waiting for it, even today) --- 1 - A Comparison of Two Computer Systems: Amoeba and Sprite, 1991, Douglis, Kaashoek, Osterhout, Tanenbaum ftp://ftp.cs.vu.nl/pub/papers/amoeba/cs91.ps.Z The Filesystem Belongs in the Kernel 1991, Welch http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.51.3730 Unix as an Application Program 1990, Rashid, Golub, Dean, Forin http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.52.633 2 - AmigaOS, QNX, Chorus, Mach 3.0, Amoeba, GNU, Plan 9 (not really)