The person who pronounced the future of Linux in this forceful way is not an ordinary fan. Andrew S. Tanenbaum, the creator of Minix, chose those words to headline the article he posted on the Usenet discussion group comp.os.minix just months after the release of the first version of the operating system originally devised by Linus Torvalds. His criticism, as expected, did not fall on deaf ears.
The next day Torvalds posted a reply on the same forum that sought to dismantle Tanenbaum’s criticism. The reason the main Linux instigator took this particular critique of its kernel operating system so seriously was that its own creation was clearly and deeply influenced by Minix, which, in turn, was based on Unix. That first exchange of views gave rise to an extremely interesting debate that has lasted for years, and which has survived to this day as “the Tanenbaum-Torvalds debate.”
A few brushstrokes about Tanenbaum and its operating system
Andrew S. Tanenbaum is not as popular as Linus Torvalds, so it is worth taking a moment to briefly review why he is so influential . Although he graduated from the prestigious Massachusetts Institute of Technology (MIT) with a degree in physics and a doctorate in astrophysics from Berkeley, Tanenbaum quickly became passionate about computer science in general, and operating system design in particular.
He was born in New York, and spent his childhood in White Plains, a town very close to the city of skyscrapers from which, curiously, Mark Zuckerberg, the creator of Facebook , also comes . However, most of his professional career has spent at the Free University of Amsterdam, where he has taught computer science for decades. Her work as a teacher led her to publish several textbooks dedicated to operating systems, distributed systems and networks. And furthermore, it also led him to write the Minix source code for educational purposes.
Tanenbaum’s books are unanimously considered authentic reference works, and are used in computer science schools around the world to explain the architecture and design of operating systems. In fact, at least one of them, the one entitled ‘Operating systems: design and implementation’, contains an appendix with the complete source code of one of the first versions of the Minix kernel so that it can be consulted by computer science students interested in the design of operating systems.
Linus Torvalds has never hidden how much the Tanenbaum book I just mentioned inspired him as much as Minix. In ‘Just for Fun: The Story of an Accidental Revolutionary’ , the autobiography he published in 2001, he acknowledges this with the clarity that something obvious requires. However, although the influence of Minix in Linux is very deep , Torvalds did not completely respect the architecture proposed by Tanenbaum.
Instead of just creating a clone of Minix, he chose to deviate in some essential sections , and one of these decisions, precisely, led to the conflict that arose when in early 1992 Tanenbaum published his famous criticism in the discussion group comp.os. minix from Usenet.
Micronucleus or monolithic nucleus, that’s the question
That first critical article by Tanenbaum was immediately responded to with another of similar forcefulness by Torvalds, which started a strictly technical discussion in which both designers addressed multiple discrepancies about what was the most efficient way to implement some of the core components of a operating system. However, the characteristic of the Linux kernel most criticized by Tanenbaum was its conception as a monolithic kernel .
The creator of Minix defended, and nothing seems to invite us to think that he has changed his mind, that micronuclei are superior, among other reasons, due to their greater portability , understood as the ability to be adapted to an architecture different from that of that CPU for which they were initially designed. Torvalds, however, defended his decision, arguing that although Linux’s monolithic design might make it less adaptable to other architectures than Minix, the application programming interface he had developed compensated for that disadvantage and, in practice, made Linux more portable than Minix.
The tone of the articles with which Torvalds and Tanenbaum responded was respectful, but little by little their responses increased in complexity to break down the technical peculiarities that each of them resorted to to reinforce their arguments. Interestingly, other Usenet users, especially those who were involved in the development of the Linux kernel , joined the discussion to lend their shoulder to Torvalds.
Explaining the differences between an operating system with a monolithic kernel, such as Linux, and an operating system with a microkernel structure, such as Minix, would require a full article on this topic. And it would be complex. However, we can intuit very broadly what each of these architectures proposes, leaving aside the more complicated concepts. This is the way in which Tanenbaum explains in one of his articles published on Usenet the differences between these nuclei.
“Most of the older operating systems are monolithic, so the entire operating system is a single file that runs in supervisor mode (also known as kernel mode ). This binary file contains the process manager, the memory manager, the filesystem, and everything else. Unix, MS-DOS, VMS, MVS, OS / 360, Multics and many other operating systems use this architecture, ”explains Tanenbaum.
‘The alternative is a microkernel-based system , so most of the operating system runs as separate processes, many of them outside the kernel. These processes communicate through messages. The role of the kernel is to manage this exchange of messages, manage interrupts, monitor low-level processes and input / output. Some examples of this design are the RC4000, Amoeba, Chorus, Mach or Windows NT operating systems. This latest Microsoft operating system had not yet been released at the time Tanenbaum wrote the article to which this text belongs.
Torvalds and Tanenbaum have assured many times that their relationship is friendly, and that their differences about the way an operating system should be implemented are only supported by technical aspects . In no case should they be viewed as a personal dispute. Obviously it must be so.
Almost three decades after that first critical article on Tanenbaum Linux is in fantastic shape , proving that Torvalds and his collaborators have done nothing wrong. Interestingly, every now and then an unexpected statement from either of them rekindles an argument that may continue to rage as long as both of you feel like arguing. Without a doubt, it is a perfect opportunity for people interested in operating systems to continue learning from them.