Singularity – An Open Source Operating System By Microsoft Research

t was 28th Of September, 2008 and there was again crowd at the Microsoft India Office, Bangalore. This time I was able to attend a hands-on session about “Singularity”, an open-source Operating System, being developed by Microsoft Research (relevant links at end of the post). I attended the 2nd batch of around 35 people in a lab in the building. I was excited because of the two words Open Source and Microsoft were coming at once.
 
 
Hands On Lab
 
Sattvik shared lots of knowledge with us and it was really amazing to learn new concepts about Operating Systems. I always thought that working of OSes is I will never understand, but the way he explained it all, and answered our doubts, I was feeling so confident that I felt I can make an OS myself (obviously, it was effect of enthusiasm i gathered during the time).
We discussed about how Singularity was different from current operating systems, how it can avoid potential problems faced in current technologies in OSes. The key differences I noted down are- Unlike other OSes, its built on managed code, mostly in C# and Sing# (a variant of C# specially developed for development of Singularity) which executes through a Common Language Runtime (similar to the CLR in .NET framework).

  • Running processes are isolated from each other, and are called Software Isolated Processes (SIPs), so that there can be no unsafe transaction between two or more processes (so, pointers are also not supported, the functions are instead provided by the OS, hence it can keep check on the SIPs). Again, for this Singularity features Inter Process Communication (IPC) so that processes can perform safe transaction.
  • Writable Memory that is currently allocated for a SIP is NOT shared with other SIPs.
  • Code ambiguities like infinite loops, are handled by manifests, which execute the programs.
  • An Exchange Heap so that processes can send/receive messages (or, events).
  • A new data structure Linked Stacks are used, a combination of Linked Lists And Stacks, as the name suggests.
  • Garbage Collection is more efficient, using almost same technologies as the .NET framework.
  • After compiling the OS, and analyzing the file system, i found many similarities to the UNIX OS, in terms of commands, and the devices being considered as files.

On the whole, there were a lot of improvements, mostly focussed on performance and security. Lets see if it becomes the Operating System of the future. Relevant Links-

  • Singularity Operating System-
  1. http://research.microsoft.com/os/Singularity/
  2. http://en.wikipedia.org/wiki/Singularity_(operating_system)
  3. http://www.codeplex.com/singularity

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s