MINIX 3: a highly reliable, self-repairing operating system

@article{Herder2006MINIX3A,
  title={MINIX 3: a highly reliable, self-repairing operating system},
  author={Jorrit N. Herder and Herbert Bos and Ben Gras and Philip Homburg and Andrew S. Tanenbaum},
  journal={ACM SIGOPS Oper. Syst. Rev.},
  year={2006},
  volume={40},
  pages={80-89}
}
Different kinds of people use computers now than several decades ago, but operating systems have not fully kept pace with this change. It is true that we have point-and-click GUIs now instead of command line interfaces, but the expectation of the average user is different from what it used to be, because the user is different. Thirty or 40 years ago, when operating systems began to solidify into their current form, almost all computer users were programmers, scientists, engineers, or similar… 

Examining the Viability of MINIX 3 as a Consumer Operating System

This project will examine the viability of MINIX 3 from a performance standpoint to determine whether or not it is relevant to a non-computer scientist, and attempts to measure how a microkernel-based operating system performs against a traditional monolithic kernel-based OS.

Reorganizing UNIX for Reliability

The architecture of a modular UNIX-compatible operating system, MINIX3, that provides reliability beyond that of most other systems, and is designed to survive and automatically recover from failures in critical modules, transparent to applications and without user intervention is discussed.

Device Driver Reliability

Improving reliability is one of the greatest challenges for commodity operating systems, such as Windows and Linux, in environments that require high availability, and this work aims to address this problem.

Dynamic update for operating systems

The experience with this approach shows that dynamic update for operating systems is feasible given a sufficiently-modular system structure, allows maintenance patches and updates to be applied without disruption, and need not constrain system performance.

Improving Operating System Decomposition by Microkernel Design

It is postulate that fine-grained decomposition can be achieved by defining a suitable programming model for servers, designed in a way that minimizes the amount of glue code required, and the key to this approach is the definition of servers as light-weight, universal components, which contain additional information describing their role and interaction.

Deadlock Case in Minix 3 : Considerations about Performance and Reliability

This work tested Minix3 in a operating system course at University of São Paulo University and unfortunately, the system was able to deadlock the system after inserting a bug in a driver.

FlexOS: towards flexible OS isolation

FlexOS is presented, a novel OS allowing users to easily specialize the safety and isolation strategy of an OS at compilation/deployment time instead of design time, and it is shown that, under equivalent configurations, FlexOS performs similarly or better than existing solutions which use fixed safety configurations.

Singularity: rethinking the software stack

This paper describes the efforts of the Singularity project to re-examine these design choices in light of advances in programming languages and verification tools, and sketches the ongoing research in experimental systems that build upon it.

Beastie Meets Raccoon: MINIX 3 as a BSD

A progress report on the ongoing work turning MINIX 3 into a BSD, which will serve to enable the vision of the best of both worlds: isolation and restartability features unique to Minix combined with the well-maintained, real-world-hardened system code, of a modern BSD OS.

Theseus: an Experiment in Operating System Structure and State Management

Theseus is the result of multi-year experimentation to redesign and improve OS modularity by reducing the states one component holds for another, and to leverage a safe programming language, namely Rust, to shift as many OS responsibilities as possible to the compiler.
...

References

SHOWING 1-10 OF 30 REFERENCES

Can we make operating systems reliable and secure?

Singularity, the most radical approach, uses a type-safe language, a single address space, and formal contracts to carefully limit what each module can do in the microkernel.

An empirical study of operating systems errors

A study of operating system errors found by automatic, static, compiler analysis applied to the Linux and OpenBSD kernels found that device drivers have error rates up to three to seven times higher than the rest of the kernel.

The SawMill multiserver approach

The SawMill architecture consists of a set of user-level servers executing on the L4 microkernel and aset of services that enable these servers to obtain and manage resources locally, and the SawMill protocol design guidelines enable system designers to minimize the communication overheads introduced by protection boundaries between servers.

Improving the reliability of commodity operating systems

Nooks, a reliability subsystem that seeks to greatly enhance operating system reliability by isolating the OS from driver failures, represents a substantial step beyond the specialized architectures and type-safe languages required by previous efforts directed at safe extensibility.

Amoeba: a distributed operating system for the 1990s

A description is given of the Amoeba distributed operating system, which appears to users as a centralized system but has the speed, fault tolerance, security safeguards, and flexibility required for

Get more device drivers out of the kernel

This work shall talk about the benefits and drawbacks of device drivers being in user space or kernel space, and show that performance concerns are not really an issue—in fact, on some platforms, the user-mode IDE driver out-performs the in-kernel one.

Unmodified Device Driver Reuse and Improved System Dependability via Virtual Machines

By allowing distinct device drivers to reside in separate virtual machines, this technique isolates faults caused by defective or malicious drivers, thus improving a system's dependability, and enables extensive reuse of existing and unmodified drivers.

The mungi single‐address‐space operating system

Mungi is a very ‘pure’ SASOS, featuring an unintrusive protection model based on sparse capabilities, a fast protected procedure call mechanism, and uses shared memory as the exclusive inter‐process communication mechanism, as well as for I/O.

The performance of μ-kernel-based systems

The ported Linux operating system was ported to run on top of the L4 μ- kernel and the resulting system with both Linux running native, and MkLinux, a Linux version that executes onTop of a first-generation Mach-derived μ-kernel demonstrated both that it is possible to implement a high-performance conventional operating system personality above a μ- Kernel, and that the performance of the μ- kernels is crucial to achieve this.

Xen and the Art of Repeated Research

It is argued that this model of research, which is enabled by open source software, is an important step in transferring the results of computer science research into production environments.