Singularity Operating System – another use for virtualisation?


I’ve always had an interest in Operating System internals, and have just finished reading the in-progress research document on a new operating system called “Singularity”. The research work is being done by Microsoft Research, and the aim of this OS is to examine what a new operating system would look like if it took a fundamental design change to focus on reliability – if one process fails, it has no effect on other processes. To achieve that, they introduce the concept of SIPs or Software Isolated Processes with well-defined interfaces or channels between processes, including those of the core OS such as drivers for example.

One major effect on the isolation and trust between processes means that, on an x86 architecture, it is no longer necessary to run kernel mode in Ring 0 and user mode in Ring 3 – everything can run in Ring 0 without fear of bringing down the kernel from a user mode process. Think about the toll taken by context switching and the number of CPU cycles involved between Ring 0 and 3 – it is not insignificant. If this overhead is no longer there, although message passing across channels introduces another overhead, the net performance figures were surprising good, and that wasn’t even with a finely tuned build. (Almost) all of the operating system is written in managed code (Sing#).

Anyway, made interesting reading – worth taking some time to take a look, even if it’s highly unlikely to ever become a production released operating system. The home page of singularity is here. The research paper and the Channel 9 video are the links to follow.

Now why am I blogging this – when reading through, see if you can spot the references to where I think they used Microsoft Virtual Machine technology (ie Virtual Server or Virtual PC) to develop the OS. Drop me a comment if you spot it – two specific points around half way through the research paper made me think 🙂

Comments (0)