Skip to content

Further reading

Ixolo inherits more than code from MINIX 3: about fifteen years of published research at the Vrije Universiteit (VU) Amsterdam explain why the system is built the way it is. This page is a curated selection, not a complete list. The upstream publications page lists about 65 entries.

  • Andrew S. Tanenbaum and Albert S. Woodhull, Operating Systems: Design and Implementation, 3rd edition. Prentice Hall, 2006. The textbook for MINIX 3.1.0, with much of the source printed and explained. The concepts still match Ixolo; many details have changed. The Guide for teachers has a table of what changed. Upstream publishes an indexed listing of the book’s source.
  • Andrew S. Tanenbaum and Herbert Bos, Modern Operating Systems, 5th edition. Pearson, 2022. The general operating systems textbook from the same group. It is not about MINIX, but it covers microkernels, virtual memory, file systems and multiprocessors in the same spirit.

Good starting points, short and readable without a research background.

  • Herder, Bos, Gras, Homburg and Tanenbaum, “MINIX 3: A Highly Reliable, Self-Repairing Operating System”. ACM SIGOPS Operating Systems Review 40, July 2006, pp. 80–89. PDF. The design of MINIX 3 in one paper: user-mode drivers, least authority, the reincarnation server.
  • Herder, Bos, Gras, Homburg and Tanenbaum, “Modular System Programming in MINIX 3”. USENIX ;login: 31(2), April 2006, pp. 19–28. PDF.
  • Tanenbaum, Herder and Bos, “Can We Make Operating Systems Reliable and Secure?” IEEE Computer 39(5), May 2006, pp. 44–51. The argument for microkernels and isolation, compared with other approaches.
  • Tanenbaum et al., “MINIX 3: Status Report and Current Research”. USENIX ;login: 35(3), June 2010, pp. 7–13. PDF. A snapshot of the research directions halfway through the ERC project.
  • Andrew S. Tanenbaum, “Lessons Learned from 30 Years of MINIX”. Communications of the ACM 59(3), March 2016. DOI 10.1145/2795228. The history of MINIX and Linux, and what the project learned. See also History.

These are the background for the architecture and the break-a-driver lab.

  • Herder, Bos, Gras, Homburg and Tanenbaum, “Reorganizing UNIX for Reliability”. ACSAC 2006, pp. 81–94. PDF.
  • Herder, Bos, Gras, Homburg and Tanenbaum, “Failure Resilience for Device Drivers”. DSN 2007, Edinburgh, pp. 41–50. PDF. How the reincarnation server detects failed drivers and restarts them.
  • Herder, Bos, Gras, Homburg and Tanenbaum, “Countering IPC Threats in Multiserver Operating Systems”. PRDC 2008, pp. 112–121. PDF. How a faulty or malicious server can misuse IPC, and how to restrict it.
  • Herder, Bos, Gras, Homburg and Tanenbaum, “Fault Isolation for Device Drivers”. DSN 2009, pp. 33–42. PDF.
  • Herder, van Moolenbroek, Appuswamy, Wu, Gras and Tanenbaum, “Dealing with Driver Failures in the Storage Stack”. LADC 2009, pp. 119–126 (Best Paper Award). PDF. Recovering from disk driver crashes without losing data.

Upstream research; not available on Ixolo‘s amd64 port.

  • Giuffrida, Kuijsten and Tanenbaum, “Safe and Automatic Live Update for Operating Systems”. ASPLOS 2013, pp. 279–292. PDF.
  • Giuffrida, Iorgulescu, Kuijsten and Tanenbaum, “Back to the Future: Fault-tolerant Live Update with Time-traveling State Transfer”. LISA 2013, pp. 89–104 (Best Student Paper Award). PDF.
  • Giuffrida, Kuijsten and Tanenbaum, “Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization”. USENIX Security 2012, pp. 40–55. Live rerandomization of OS components.
  • Appuswamy, van Moolenbroek and Tanenbaum, “Loris – A Dependable, Modular File-Based Storage Stack”. PRDC 2010, pp. 165–174. PDF.
  • Hruby, Vogt, Bos and Tanenbaum, “Keep Net Working – On a Dependable and Fast Networking Stack”. DSN 2012. PDF. A network stack split into isolated components on dedicated cores.
  • Hruby, Bos and Tanenbaum, “When Slower Is Faster: On Heterogeneous Multicores for Reliable Systems”. USENIX ATC 2013, pp. 255–266. PDF.

Ixolo‘s own SMP and file system work does not follow these research prototypes; see the design documents below.

  • Jorrit N. Herder, “Building a Dependable Operating System”, PhD thesis, VU Amsterdam, 2010. PDF. The most complete description of the MINIX 3 reliability design.
  • Cristiano Giuffrida, “Safe and Automatic Live Update”, PhD thesis, VU Amsterdam, 2014. PDF.
  • Raja Appuswamy, “Building a File-Based Storage Stack: Modularity and Flexibility in Loris”, PhD thesis, VU Amsterdam, 2014. PDF.
  • Balázs Gerofi, “Design and Implementation of the MINIX Virtual File System”, master’s thesis, VU Amsterdam, 2006. PDF. The origin of VFS.
  • Björn Patrick Swift, “User Mode Scheduling in MINIX 3”, project report, 2010. PDF. The origin of the SCHED server.

Upstream is no longer actively developed, but its material is still online.

ResourceAddress
Websitehttps://www.minix3.org/
Wiki (user and developer guides, for i386 and ARM)https://wiki.minix3.org/
Publications listhttps://wiki.minix3.org/doku.php?id=publications
Manual pageshttps://man.minix3.org/
Google Grouphttps://groups.google.com/g/minix3
Source repositoryhttps://github.com/Stichting-MINIX-Research-Foundation/minix

Wiki pages that are still useful as background: the developer guide (message passing, memory grants, SEF, the kernel API) and the release notes of past versions. Commands, paths and hardware details there describe i386 and ARM, not Ixolo.

These documents live in the source tree and are copied to this site. They describe the work done in the fork.

DocumentSubject
SMPStarting the other CPUs, per-CPU state, the big kernel lock
UEFI bootThe hybrid BIOS + UEFI CD and the GPT disk image
MFS version 4The new on-disk inode format
MFS journalingMetadata write-ahead logging
MFS extended attributesExtended attributes stored by MFS
VM reclaimPage reclaim, compressed memory and swap
WaylandFeasibility study for a Wayland desktop

Some of these were written while the work was in progress, and their status lines can lag behind the code. The pull requests in https://github.com/davmont/minix are the record of what was actually merged.