Chris Double has been working with Minix 3 and a blog with Minix tips. A new release of Minix, it is more of a true microkernel design. Some interesting papers on the web site describe this evolution of Minix.
I was able to install it in short order. It runs all kinds of Unix/Linux/Posix software, including the X Window System.
Underneath the system calls is a small kernel, drivers and servers that run in user space, side-by-side with user application processes, each in their own protected address space. The system calls are implemented using message passing among the processes and the kernel. The driver processes can come and go due to bugs or intentionally, and there is a "reincarnation server" to help with this.
The Principle of Least Authority is followed, to prevent processes from sending messages they should not. This separation also enables experimenting with drivers and servers written in various programming languages.
Of course this is the same design approach that makes systems built with Erlang so reliable. Although Erlang makes the style explicit, while Minix 3 wraps the Unix API around the message-passing implementation. They are complementary systems and each have another quality: Fun.
No comments:
Post a Comment