Post permalink

I found a nice Singularity paper that actually goes into some performance statistics..

Shows across the board Cycle reductions at the OS level for many systems within the SinguarlityOS.

Not wanting to rain on this kid's parade, but Singularity processes can't be trivially compared to Windows or Free BSD processes.

For one, as Bass points out, Singularity makes no serious attempt to enforce security boundaries between processes; a single memory corruption anywhere in the runtime gives root access to the system.

Similarly because there's no process separation, there's no protection against side-channel attacks in the kernel to leak crypto-secrets, passwords and other private events going on in the kernel or other processes.

There's also no backwards compatability requirement for Singularity, which means that unlike Windows, Singularity gets to basically choose what it defines a process create to mean. It certainly doesn't have to bother with session management in Win32k or set up GDI tables, or initialize the process for TLS slots and create Pebs and Tebs and Nls sections, and it doesn't have to parse prefetch tables or initialize app-compat shims. So claiming that Singularity is more by noting that it does less is a bit of an unfair comparison.

And finally, since there's no actual syscall mechanism, Singularity can't really pretend that it has one and claim a win there.

All in all, I simply can't take Singularity seriously until it addresses the glaring problem: Singularity cannot run backwards-compatible apps, and until it decides to seriously address this issue, it simply isn't an OS that can be compared apples-to-apples with OSes like Windows, Mac and Linux, and instead probably deserves comparisons more akin to the XBox OS or microcontroller OSes.