Scott Finley, a researcher at the University of Wisconsin-Madison has ported the Linux files system Ext2 to Microsoft’s new research operating system Singularity. One of the most striking observations was the author’s comments on Singularity’s robustness. “Perhaps the best testament to Singularity’s dependability was the extremely good system stability during the development of ext2… If the ext2 process terminated as the result of a failure, it only resulted in open channels closing. Other processes could (and did) recover gracefully.” Finley’s report details all his findings quite extensively.
when can we expect a microsoft product based on singularity and that have a win32/vista emulation layer for backwards compatibility?
Never say never, but, well…
my guess is 9 years till a v1, then another 6-7 until it fully replaces windows (if we use NT for an example of an MS OS shift)
Google “Project Midori”
meh, in that time its more likely that we have reached the decade of the linux desktop
My guess based on past experience, is they will take the good kernel design from singularity….
Then bolt the horrendous windows gui and heaps of legacy code not only on top but throughout the kernel, turning it into yet another bloated over complicated mess saddled with heaps of crap legacy code and bad design decisions.
No only MS is doing research in managed operating systems: Links to 2 open source managed operating systems – for those interested in managed OS:
JNode (JVM Based):
http://www.jnode.org/
SharpOS (.NET Based):
http://www.sharpos.org
…
Symobi by Miray Software:
http://www.symobi.com
tbc…
Ok, similar aims but as far as I see on their site it’s not a managed operating system. Its processes seem to be isolated by the hardware (instead by software), it has no code verifier, no garbage collection, no platform independent intermediate code, …
I don’t think the fact the Singularity is mostly managed code makes it interesting. The managed code allows the features that seperate it from other OS’s and as far as I am aware none of the other managed OS’s are as radical as Singularity. Singularity has: –
1. Software isolated processes (SIP)
2. Contract based channels
3. Manifest based programming
SIP allows a single address space so there are no task switching penalties.
See http://research.microsoft.com/os/singularity/publications/osr2007_r…
Are you sure about SharpOS uses CPU-based process/memory isolation? I think that would be stupid since code is verified before/while execution (the same for JNode OS).
I think you are right and I am wrong about SIPs. I have done a little reading and it seems that singularity has inspired a few design decision in other managed OS’s. It also seems that manifest based programming is being implemented in differing forms in other managed OS’s.
http://lab.obsethryl.eu/content/sharpos-stream-c-sharp-c-kernels was in interesting read for me.
From the interview
Bruce Markham: There has been a bit of debate as to how we should approach this. There is no doubt that we want the performance and security gains of SIPs, (with the exception, from the original Singularity implementation, of still having code sharing.) But we also expressed a desire to be able to virtualize other OS’s application binary interfaces (ABIs) down the road, so that basically we will be able to run, say, a Windows program, without recompiling the way WINE and ReactOS already allow. This would require hardware isolation, and reduce performance for any processes involved.
William Lahti: The SIP functionality that Singularity integrates is really one of the exciting parts of a managed operating system. Although we do not have code for processes yet (as we are still flushing out the AOT compiler, runtime, and corlib), we intend to use SIP (software isolated processes) as the first-class citizen process in SharpOS.
With that said, we realize pragmatically that hardware isolation will be required for unsafe/unmanaged code, and we want to account for that. Our SIPs will run in the same address space/ring as the kernel, allowing us to reduce context switching time considerably, as well as the overhead of communication between the kernel core, drivers, and the individual processes. For those who are unfamiliar with SIPs, the idea is that verification of IL code replaces the need for barriers between separate software entities.
also survives killing a filesystem AFAIK…
And there is version 3 out now, and it’s old.
…in layman’s terms the difference twixt Plan 9 and Singularity. AFAIR Plan 9 ran everything as seperate independent workspaces, didnt it? Is this similar or different to singularity’s independent processes?
I cant seem to find, after a quick google, a decent succinct comparison/contrast between the two
(if not, maybe the question will stimulate some discussion!?!)
Edited 2008-07-22 15:28 UTC
I’m not a Plan9 expert but I think that those workspace you’re talking about used the hardware memory manager to enforce separation whereas Singularity’s distinct point is to use software to enforce the separation which has the advantage of faster communication (no need to change the TLB configuration) and the disadvantage that the software which can be used are limited: no C, no assembly language.
Also if I understood well in Singularity the communication channel between processes having some kind of FSM which manage the states, which prevent for example one process flooding the other.
Of course there are drawbacks: the paper showed that the worst-case latency for reading was severely impacted by the GC (orders of magnitude bigger), so this wouldn’t be a good choice for real time system (though usage of HDD is usually limited in many real-time system).
This “…if the ext2 process terminated as the result of a failure, it only resulted in open channels closing. Other processes could (and did) recover gracefully…” feature of Singularity has nothing to do with a managed or unmanaged OS. It is just the microkernel way of writing services and drivers. Most microkernels use channels for IPC (QNX RTOS, Miray Symobi, …). Sure, they are written in C or C++, but they inherently share these cool features. These microkernel OSes use the MMU to seperate processes, not the type safety and runtime verification that allows SIPs in Singularity to run in one address space.
But yeah, Singularity is a really interesting microkernel OS with the best software component model I ever saw!
Edited 2008-07-22 16:00 UTC
There was an article posted with the last two weeks (from a rumor site, so take it for what you will) that talked about Microsoft’s post-“Windows 7” release. That article speculates that the next OS from Microsoft will not be based on Windows, and it won’t be Singularity-based. However, the project is somehow related and will likely use many concepts from Singularity.
I think Singularity is going to become the new Plan9. 🙂
Its been a while Microsoft said that it was willing to drop win32api and backward compatibility. It was supposed to be realized for the post-longhorn era, but trouble with Vista caused Windows 7 to be a simple Vista refresh. The .Net framework is also part of this. Since the .Net applications are JIT compiled, there nothing stopping the Microsoft from developing a version of this kernel for other architecture than x86 (a new CPU architecture by Intel maybe? or simply the same architecture but without the x86 decoder so the compiler would output straight microcode)…
Here is a nice podcast with Galen Hunt on Singularity: http://www.se-radio.net/podcast/2008-03/episode-88-singularity-rese… .
Edited 2008-07-22 22:15 UTC
Awesome, thanks for the link; I’m about 1/3 way through it. It appears that they’ve really fixed alot of the problems/limitations in Windows – shatter attack, for example, is now impossible due to the contract based messaging employed.
I’d love to see this become an ‘operating system’ – even if it means that for the first couple of years, end users will have to run their applications in a virtual machine.
Software-level process protection has been done before, in BRiX OS.
http://brix-os.sourceforge.net/