Andrew Tanenbaum, creator of MINIX, argued in 1992 that Linux, being a monolithic kernel, represented an outdated design compared to the microkernel approach of MINIX. He believed that microkernels, with their modularity and message-passing architecture, offered superior portability, maintainability, and reliability, especially as technology moved towards distributed systems and multicore processors. Tanenbaum predicted that Linux, tied to the aging Intel 386 architecture, would soon become obsolete and fade away as more advanced hardware and software paradigms emerged. He emphasized the conceptual superiority of MINIX's design, portraying Linux as a step backwards in operating system development.
The blog post argues for a standardized, cross-platform OS API specifically designed for timers. Existing timer mechanisms, like POSIX's timerfd
and Windows' CreateWaitableTimer
, while useful, differ significantly across operating systems, complicating cross-platform development. The author proposes a new API with a consistent interface that abstracts away these platform-specific details. This ideal API would allow developers to create, arm, and disarm timers, specifying absolute or relative deadlines with optional periodic behavior, all while handling potential issues like early wake-ups gracefully. This would simplify codebases and improve portability for applications relying on precise timing across different operating systems.
The Hacker News comments discuss the complexities of cross-platform timer APIs, largely agreeing with the article's premise. Several commenters highlight the difficulties introduced by different operating systems' power management features, impacting timer accuracy and reliability. Specific challenges like signal coalescing and the lack of a unified interface for monotonic timers are mentioned. Some propose workarounds like busy-waiting for short durations or using platform-specific code for optimal performance. The need for a standardized API is reiterated, with suggestions for what such an API should offer, including considerations for power efficiency and different timer resolutions. One commenter points to the challenges of abstracting away hardware differences completely, suggesting the ideal solution may involve a combination of OS-level improvements and application-specific strategies.
Snowdrop OS is a hobby operating system written entirely in assembly language for x86-64 processors. The project aims to be a minimal, educational platform showcasing fundamental OS concepts. Currently, it supports booting into 32-bit protected mode, basic memory management with paging, printing to the screen, and keyboard input. The author's goal is to progressively implement more advanced features like multitasking, a filesystem, and eventually user mode, while keeping the code clean and understandable.
HN commenters express admiration for the author's dedication and technical achievement in creating an OS from scratch in assembly. Several discuss the challenges and steep learning curve involved in such a project, with some sharing their own experiences with OS development. Some question the practical applications of the OS, given its limited functionality, while others see value in it as a learning exercise. The use of assembly language is a significant point of discussion, with some praising the low-level control it provides and others suggesting higher-level languages would be more efficient for development. The minimalist nature of the OS and its focus on core functionalities are also highlighted. A few commenters offer suggestions for improvements, such as implementing a simple filesystem or exploring different architectures. Overall, the comments reflect a mix of appreciation for the technical feat, curiosity about its purpose, and discussion of the trade-offs involved in such a project.
Summary of Comments ( 140 )
https://news.ycombinator.com/item?id=42980283
HN commenters largely dismiss the linked 1992 post arguing for Minix over Linux. Many point out that the author's predictions about Linux's limitations due to its monolithic kernel and lack of microkernel structure were inaccurate, given Linux's widespread success and ongoing development. Some acknowledge that microkernels have certain advantages, but suggest that Linux's approach has proven more practical and adaptable. A few commenters find the historical perspective interesting, noting how the computing landscape has changed significantly since 1992, rendering the arguments largely irrelevant in the modern context. One commenter sarcastically celebrates Tanenbaum's foresight.
The Hacker News post titled "LINUX is obsolete (1992)" links to a 1992 Usenet post within the comp.os.minix group where Andrew S. Tanenbaum, the creator of MINIX, criticizes the monolithic kernel architecture of Linux, predicting its imminent obsolescence in favor of microkernel systems. The Hacker News thread contains several comments discussing Tanenbaum's arguments and their historical context.
A compelling line of discussion revolves around the accuracy of Tanenbaum's predictions. Many commenters point out that Linux's success ultimately proved Tanenbaum wrong, with Linux becoming the dominant operating system in many domains while microkernels remained a niche technology. They discuss the reasons for this outcome, citing factors like the rapid pace of hardware development making portability less critical, the performance advantages of monolithic kernels at the time, and the open-source nature of Linux fostering a larger community and faster development.
Some commenters delve into the technical details of Tanenbaum's arguments, discussing the perceived advantages of microkernels in terms of security, reliability, and portability. They acknowledge that these advantages are theoretically sound, but that practical implementation challenges and the performance overhead associated with microkernels hindered their widespread adoption.
Several comments also touch upon the historical context of the debate. They highlight the "Tanenbaum-Torvalds debate," a famous online exchange between Tanenbaum and Linus Torvalds, the creator of Linux, where they argued about the merits of their respective kernel architectures. These comments often provide links or references to the original debate, allowing readers to explore the arguments in more detail.
Some commenters express a degree of sympathy for Tanenbaum's perspective, acknowledging that his arguments were based on the prevailing understanding of operating system design at the time. They suggest that in 1992, given the state of hardware and software, microkernels seemed like a more promising approach, and that Linux's success was not necessarily foreseeable.
Finally, a few comments offer personal anecdotes or reflections on the impact of the Tanenbaum-Torvalds debate. They discuss how the debate shaped their understanding of operating systems and contributed to the development of the open-source movement.
In summary, the Hacker News comments provide a retrospective analysis of Tanenbaum's 1992 critique of Linux, examining the technical arguments, historical context, and ultimate outcome of the debate. They largely agree that Tanenbaum's predictions were incorrect, but acknowledge the validity of his concerns based on the knowledge available at the time. The comments offer valuable insights into the evolution of operating system design and the factors that contributed to Linux's dominance.