"LINUX is tied fairly closely to the 80x86. Not the way to go. While LINUX suffers from lack of portability, portability was obviously never much of a consideration for its author, who explicitly stated that it was written as an exercise in learning about the 386 architecture."
Tanenbaum.

A debate about operating system kernels, 1992

It was a far more fascinating deepdive than I thought it would be. For background, Stallman's GNU project still lacked a kernel to be a full operating system, and Minix was not available as open source at the time. Finnish student Linus Torvalds had written a new kernel which came to be known as Linux, and had become very popular very quickly. Andrew Tanenbaum, author of Minix, launched a salvo in comp.os.minix on Usenet under the heading "LINUX is obselete", and of course Torvalds felt obligated to reply.


"Time for some serious flamefesting!"
Linus Torvalds


It was just a single message on a tech forum in 1992, until it wasn’t. What followed was a heated, now-legendary debate between Andrew Tanenbaum, a seasoned professor with a strong opinion on system design, and a young Linus Torvalds, who had just released a little side project called Linux. At the heart of it was a fundamental question about how operating systems "should" be built. Microkernels versus monolithic kernels. Elegance versus pragmatism. Academia versus the real world. And while it may have looked like a nerdy squabble to outsiders, the ripple effects of this argument would shape the future of software as we know it.

Tanenbaum's kernel was developed with a different philosophy than Torvalds', a microkernel rather than a monolithic kernel. The most obvious difference as I understand it is that a microkernel relies on external, user-space drivers to carry out much of the grunt work. In Tanenbaum's words:

" The alternative is a microkernel-based system, in which most of the OS runs as separate processes, mostly outside the kernel. They communicate by message passing. The kernel's job is to handle the message passing, interrupt handling, low-level process management, and possibly the I/O."
Further to the philosphical issues, Minix was released as proprietary, paid software whereas Linux was free (as in the sense of beer and speech).

Much of the early conversation revolves around CPU architectures and their capabilities, and dips into the issue of software portability (i.e. the ability to run the kernel on processors other than the one it was written for (Linux was designed for the Intel 80386 as a hobby project, Minix for the 8086).

By the time Linus responded, others had already joined in the fray, and that pattern continues throughout the debate. It weaves in and out of technical and philosophical implications but the dive is worth it, should you care to read ¹

The debate went on for almost two years online, back and forth between defenders and detractors on each side. Was there a clear winner? Well no, but there didn't have to be. The debate did what it needed to do: enable public discussion about operating systems, which while beyond the ken of most people, nonetheless sparked interest in the field of open operating systems, including the GNU Project's still unfinished Mach kernel. If we're talking about what gets used, Linux comes out the winner, powering most of the internet, an extraordinary number of mobile phones and all the world's top supercomputers. For the past ten years it's been a personal winner for this guy, as i've used nothing but GNU/Linux since ditching Windows. The Mach krnel is still not yet finished, and few people have even hard of Minix, let alone used it.




¹ Archive of the debate on Google Groups



$ xclip -o | wc -w
555