https://cacm.acm.org/magazines/2016/3/198874-lessons-learned-from-30-years-of-mi
ID: 3828638 • Letter: H
Question
https://cacm.acm.org/magazines/2016/3/198874-lessons-learned-from-30-years-of-minix/fulltext
The main author of our textbook, Andrew Tanenbaum, has been active in Operating Systems research for several decades. He is unique, in that he actually built systems (Minix). The following article appeared in Communications of the ACM about a year ago.
1)Why did the author decide on a "micro-kernel" architecture, early on?
2)What impact did Minix have on the development of Linux?
3)What role did interrupt #15 play in the evolution of Minix (and Linux)?
4)These days, Minix 3 can be downloaded for free. In Minix 3, there is a "reincarnation" server. What purpose does it have?
Explanation / Answer
1. According to the author, microkernel architecture was better suited for portability than monolithic architecture. He said that adopting the microkernel, the kernel isn't closely tied to any system and so is better suited for future hardware. He also said that since, linux kernel was closely tied to the x86 microprocessor, it will be obsolete for the future line of processors.
2. MINIX was not free at that time. Its source code was available but any modification and redistribution was restricted. This is one primary reason for development of Linux by Linus Torvalds. In addition to that, MINIX ahd a 16 bit design which didn't go well with the newest 32 bit Intel architecture.
So, Linux was developed as a hobby project of Linus Torvalds which was free in all sense.
3. When Unix 7 came with restrictions that made it impossible to use it to teach a course, Tanenbaum wrote MINIX and it ran but crashed after some time. He went on to write a simulator for the hardware and run the MINIX on it to see what went wrong. In the simulator, it ran fine. The problem was interrupt 15 which he wasn't catching in MINIX because it wasn't mentioned in the datasheet of the vendor. It was raised when temperature went too high. In turn MINIX evolved and became a full fledged system.
4. The reincarnation server is a component that keeps track of all the other components and if any of them crashes or goes into a bad state, the reincarnation server replaces it with new version. So, it gives self repair capability without needing a complete system reboot or user intervention.
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.