The idea behind MiXen is merging some of the concepts of Minix. and Xen

To that extent, MiXen currently uses an unmodified Xen kernel. However, it tries to isolate the device drivers from the Dom0 kernel and run them in separate domains.

While this has been done before with so-called driver domains, which being full fledged OSs only used for the device driver support, with MiXen the driver domain only has enough stuff to execute one driver. That is, all of a MiXen driver domain runs in one virtual address space with next to no change in its layout. The only time any mapping changes is when mapping foreign pages into the MiXen domain.

The goal is for the application domains using such a driver to be able to detect a crash of a driver domain and recover from it, as Xen restarts the crashed domain. The Dom0 kernel will only have a small ramdisk with the utilities to set up the other domains, that is, it will not provide driver service to the other domains.

In the long run, more parts will be extracted from the OS and be put in their own domains, like e.g. the network stack or the filesystems.

Current state

MiXen is currently at version 0.3.

It implements a ramdisk, which can initially be either empty or preloaded with some image file (e.g. an installation CD image).