当前位置: 首页 > news >正文

MINIX 3 值得仔细研究 from Tanenbaum A., Bos H. Modern Operating Systems 5ed 2023

 

10.1.6 MINIX

One property that all modern UNIX systems have is that they are large and complicated, in a sense the antithesis of the original idea behind UNIX. Even if the source code were freely available, which it is not in most cases, it is out of the question that a single person could understand it all anymore. This situation led one of the authors of this book (AST) to write a new UNIX-like system that was small enough to understand, was available with all the source code, and could be used for educational purposes. That system consisted of 11,800 lines of C and 800 lines of assembly code. Released in 1987, it was functionally almost equivalent to Version 7 UNIX, the mainstay of most computer science departments during the PDP-11 era.

MINIX was one of the first UNIX-like systems based on a microkernel design. The idea behind a microkernel is to provide minimal functionality in the kernel to make it reliable and efficient. Consequently, memory management and the file system were pushed out into user processes. The kernel handled message passing between the processes and little else. The kernel was 1600 lines of C and 800 lines of assembler. For technical reasons relating to the 8088 architecture, the I/O device drivers (2900 additional lines of C) were also in the kernel. The file system (5100 lines of C) and memory manager (2200 lines of C) ran as two separate user processes.

Microkernels have the advantage over monolithic systems that they are easy to understand and maintain due to their highly modular structure. Also, moving code from the kernel to user mode makes them highly reliable because the crash of a user-mode process does less damage than the crash of a kernel-mode component. Their main disadvantage is a slightly lower performance due to the extra switches between user mode and kernel mode. However, performance is not everything: all modern UNIX systems run X Windows in user mode and simply accept the performance hit to get the greater modularity (in contrast to Windows, where even the GUI (Graphical User Interface) is in the kernel). Other microkernels of this era were Mach (Accetta et al., 1986) and Chorus (Rozier et al., 1988).

Within a few months of its appearance, MINIX became a bit of a cult item, with its own USENET (now Google) newsgroup, comp.os.minix, and over 40,000 users. Numerous users contributed commands and other user programs, so MINIX quickly became a collective undertaking by large numbers of users over the Internet. It was a prototype of other collaborative efforts that came later. In 1997, Version 2.0 of MINIX was released and the base system, now including networking, had grown to 62,200 lines of code.

Around 2004, the direction of MINIX development changed sharply. The focus shifted to building an extremely reliable and dependable system that could automatically repair its own faults and become self-healing, continuing to function correctly even in the face of repeated software bugs being triggered. Consequently, the modularization idea present in Version 1 was greatly expanded in MINIX 3.0. Nearly all the device drivers were moved to user space, with each driver running as a separate process. The size of the entire kernel abruptly dropped to under 4000 lines of code, something a single programmer could easily understand. Internal mechanisms were changed to enhance fault tolerance in numerous ways.

In addition, over 650 popular UNIX programs were ported to MINIX 3.0, including the X Window System (sometimes just called X), various compilers (including gcc), text-processing software, networking software, Web browsers, and much more. Unlike previous versions, which were primarily educational in nature, starting with MINIX 3.0, the system was quite usable, with the focus moving toward high dependability. The ultimate goal is: No more reset buttons.

A third edition of the book Operating Systems: Design and Implementation appeared, describing the new system, giving its source code in an appendix, and describing it in detail (Tanenbaum and Woodhull, 2006). The system continues to evolve and has an active user community. It has since been ported to the ARM processor, making it available for embedded systems. For more details and to get the current version for free, you can visit www.minix3.org.

 

 

下载minix ISO:https://wiki.minix3.org/doku.php?id=www:download:start

 

old versions of Minix: https://wiki.minix3.org/doku.php?id=www:download:previousversions

这个系统值得仔细研究研究

 

http://www.rkmt.cn/news/19855.html

相关文章:

  • 实验1 现代c++初体验
  • presto配置
  • Hadoop--MapReduce
  • 20232308 2025-2026-1 《网络与系统攻防技术》实验一实验报告
  • 一致性哈希原理
  • 上下文与this指向
  • [数据库] Microsoft SQL Server 数据库
  • 01 | UE5.3+Airsim+VS2022+Windows10(无人机仿真环境)
  • 对于使用ant design组件库的疑问
  • 阅读《构建之法》提出的5个问题
  • DshanPI-A1 RK3576 gstreamer播放16路视频与硬件加速
  • 2025羊城杯初赛Misc-writeup
  • 我的个人空间
  • Windows 文件管理器中重复的 OneDrive 图标原因与解决方案
  • 使用Sender和io_uring改造Webserver
  • 如何在Renpy尝试中调整人物和背景图像大小
  • 如何安装claude code以及ccr code
  • 代码托管平台
  • 机器人视觉系统在复杂环境中的自主决策与学习
  • 正睿25noip十连测day5
  • 2025年10月武汉防水公司TOP5权威推荐榜:专业施工与优质服务的行业
  • 用户交互scanner方法学习及使用示例
  • 完整教程:STM32H743-ARM例程11-PWM
  • 20231427田泽航实验一-4
  • 信息安全设计/密码系统设计 实验1-1
  • 2025年10月拉伸器厂家最新权威推荐榜:高效稳定与卓越品质的行业首
  • 2025数粒机厂家最新权威推荐榜:精准高效与智能控制的行业首
  • 企业自动化立体库WMS解决方案(42页PPT) - 教程
  • 2025-10-12
  • P6005 [USACO20JAN] Time is Mooney G 题解