“Linux is obsolete”, the story behind the statement that sparked the most passionate debate about this operating system
The person who pronounced the future of Linux in this forceful way is not an ordinary hobbyist. Andrew S. Tanenbaum, the creator of Minix, chose those words to headline the article you published on the Usenet discussion group comp.os.minix just a few months after the release of the first version of the operating system originally devised by Linus Torvalds. His criticism, unsurprisingly, did not fall on deaf ears.
The next day Torvalds posted a reply on the same forum that sought to debunk Tanenbaum’s criticism. The reason the main Linux instigator took that particular criticism 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 opinions gave rise to an extremely interesting debate that has lasted for years, and that has survived to this day as «el debate Tanenbaum-Torvalds».
A few brushstrokes about Tanenbaum and its operating system
Andrew S. Tanenbaum is not as popular as Linus Torvalds, so it is worth a moment to briefly review why is it 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 been spent at the Free University of Amsterdam, where he has taught computer science for decades. His work as a teacher led him to publish several textbooks dedicated to operating systems, distributed systems, and networks. And, in addition, it also led him to write for an educational purpose the Minix source code.
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 full 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.
Tanenbaum’s books are considered reference works, and are used in computer science schools around the world to explain the architecture 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 recognizes this with the clarity that something obvious requires. However, although the influence of Minix on Linux is very deep, Torvalds did not strictly respect the architecture proposed by Tanenbaum.
Instead of just creating a Minix clone chose to deviate in some essential sectionsIt is precisely one of these decisions that led to the conflict that arose when Tanenbaum published his famous criticism in early 1992 on the Usenet discussion group comp.os.minix.
Micronucleus or monolithic nucleus, that’s the question
That first critical article by Tanenbaum was immediately responded to with another of similar force 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 OS. However, the Linux kernel feature most criticized by Tanenbaum was its conception as a monolithic nucleus.
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 its greater portability, understood as the ability to be adapted to an architecture different from that of the 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.
Andrew S. Tanenbaum defends that micronuclei are superior to monolithic nuclei, among other reasons, due to their greater portability
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 Linux kernel developmentThey joined the discussion to lean their shoulder to Torvalds’.
Explaining the differences between an operating system with a monolithic kernel, such as Linux, and one with a micro-core 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 it’s a single file running in supervisor mode (also known as supervisor mode kernel). This binary file contains the process manager, memory manager, file system, and everything else. Unix, MS-DOS, VMS, MVS, OS / 360, Multics, and many other operating systems use this architecture, ”explains Tanenbaum.
“Most older operating systems are monolithic, so the entire operating system is a single file that runs in supervisor mode,” explains Tanenbaum.
«The alternative is a system based on micronuclei, so most of the operating system runs as separate processes, many of them outside of 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 they only rely on 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 some unexpected statement from either of us rekindle an argument which may continue to kick in as long as they both want to debate. Without a doubt, it is a perfect opportunity for people interested in operating systems to continue learning from them.
Imágenes | Jantangring | Krd | Mattia Gentilini