Sign in to follow this  

[.net] Microsoft releases the source code to Singularity

This topic is 3566 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Singularity is basically a microkernel-based operating system which is written (mostly) in managed code. Even the device drivers are managed.

It's just a research project right now, but maybe some of the technology behind it will eventually find its way into future Windows versions.

Share this post


Link to post
Share on other sites
Quote:
Original post by speciesUnknown
But there is unlikely to be any commercial use for it since its an "experimental: operating system. I'm not too impressed, but if this technology becomes "Teh Future", it will be a boost to OS security.

I doubt we will see significant influences from it any time in the next 10 years. The NT Kernel still has a lot of life left to it, and even if MS decided to drop it today, they probably already have the next two releases of Windows in-the-works. We might see additions to Vista in service packs that can be traced back to Singularity, i.e. some kind of super secure .NET runtime, but I doubt really big things won't start until whatever the next-next-Windows will be.

Ultimately, there is no reason to pursue research unless you think it's going to have some sort of influence on the field in some way. I know a lot of academic research goes on that *is* precisely useless (it seems especially in the fields of economics and sociology, mostly just excuses for people to pass their doctoral reviews), but in the corporate world research must always first be justified in some way. MS gives their research division a lot of leeway because they expect creativity to reap more benefits than liabilities, but they still expect something to come of it. If Singularity weren't a project that MS as an organization weren't interested in, I doubt it would have gone this far, and instead would have just been some kind of pipe-dream that died on the vine. Instead, it seems it's getting a significant level of support. This is bleeding-edge tech development, such stuff doesn't make its way into consumer products for decades.

Language INtegrated Query (LINQ), the big new feature of C# 3.0, grew out of Cw (C-omega), a research language specifically designed to test features before putting them in C#. LINQ, lambda expression, etc., had been in Cw for years before C# 3.0 was finalized and released. The research project never sees the light of day, it's just a test bed to learn lessons, to perfect processes before putting them into production systems. (yes, I know these concepts were present for much longer in other languages. I'm specifically talking about the direct ancestry of this feature in regards to C#.)

Put in another way, they have enough leeway to build an OS that runs on Cheesy Poofs, but even if someone were crazy enough to build a proof-of-concept, he wouldn't be able to get enough backing to continue to push the project. He'll be told, "yeah, that's nice, please move on." Nobody has told the Singularity team, "please find something else to do."

10 years is a long time. 10 years ago was when I first started learning all this junk about computers. Back then, if you weren't coding in C, you weren't a serious programmer. C++ was treated much the same way Java and C# are treated today. Heavy use of active content on Webpages was considered evil, even if you could get around the bandwidth issues of ubiquitous dial-up connections. A project's popularity could sour *overnight* if it was ever mentioned that a GUI designer or RAD language had been used. Never mention you used VB6 back then.

Now, almost everyone uses at least a GUI designer, no matter the language. Webpages without active content are considered deficient. The original systems on which these concepts were created aren't around (remember VML? What about Headspace and Beatnik?), but the lessons learned from them made their way into other systems. We will never see Singularity as a commercial operating system, but years from now we will see all commercial operating systems using lessons that were learned from Singularity, as well as other research operating systems. That's the entire point.

[Edited by - capn_midnight on March 7, 2008 12:24:05 PM]

Share this post


Link to post
Share on other sites
Quote:
Original post by capn_midnight
Quote:
Original post by speciesUnknown
But there is unlikely to be any commercial use for it since its an "experimental: operating system. I'm not too impressed, but if this technology becomes "Teh Future", it will be a boost to OS security.

I doubt we will see significant influences from it any time in the next 10 years. The NT Kernel still has a lot of life left to it, and even if MS decided to drop it today, they probably already have the next two releases of Windows in-the-works. We might see additions to Vista in service packs that can be traced back to Singularity, i.e. some kind of super secure .NET runtime, but I doubt really big things won't start until whatever the next-next-Windows will be.

Ultimately, there is no reason to pursue research unless you think it's going to have some sort of influence on the field in some way. I know a lot of academic research goes on that *is* precisely useless (it seems especially in the fields of economics and sociology, mostly just excuses for people to pass their doctoral reviews), but in the corporate world research must always first be justified in some way. MS gives their research division a lot of leeway because they expect creativity to reap more benefits than liabilities, but they still expect something to come of it. If Singularity weren't a project that MS as an organization weren't interested in, I doubt it would have gone this far, and instead would have just been some kind of pipe-dream that died on the vine. Instead, it seems it's getting a significant level of support. This is bleeding-edge tech development, such stuff doesn't make its way into consumer products for decades.

Language INtegrated Query (LINQ), the big new feature of C# 3.0, grew out of Cw (C-omega), a research language specifically designed to test features before putting them in C#. LINQ, lambda expression, etc., had been in Cw for years before C# 3.0 was finalized and released. The research project never sees the light of day, it's just a test bed to learn lessons, to perfect processes before putting them into production systems. (yes, I know these concepts were present for much longer in other languages. I'm specifically talking about the direct ancestry of this feature in regards to C#.)

Put in another way, they have enough leeway to build an OS that runs on Cheesy Poofs, but even if someone were crazy enough to build a proof-of-concept, he wouldn't be able to get enough backing to continue to push the project. He'll be told, "yeah, that's nice, please move on." Nobody has told the Singularity team, "please find something else to do."

10 years is a long time. 10 years ago was when I first started learning all this junk about computers. Back then, if you weren't coding in C, you weren't a serious programmer. C++ was treated much the same way Java and C# are treated today. Heavy use of active content on Webpages was considered evil, even if you could get around the bandwidth issues of ubiquitous dial-up connections. A project's popularity could sour *overnight* if it was ever mentioned that a GUI designer or RAD language had been used. Never mention you used VB6 back then.

Now, almost everyone uses at least a GUI designer, no matter the language. Webpages without active content are considered deficient. The original systems on which these concepts were created aren't around (remember VML? What about Headspace and Beatnik?), but the lessons learned from them made their way into other systems. We will never see Singularity as a commercial operating system, but years from now we will see all commercial operating systems using lessons that were learned from Singularity, as well as other research operating systems. That's the entire point.


Thank you for that most insightful post!

Share this post


Link to post
Share on other sites
Quote:
Original post by Martee
Singularity is basically a microkernel-based operating system which is written (mostly) in managed code. Even the device drivers are managed.


So basically they are trying to recreate mach in a performance friendly manner?

The single address space made possible by invariants is a really cool approach to the performance problem, zero context switches would be a large savings over current OS multi-tasking. I am not sure they are quite set at this point though, as the permissions checks (which seem similar to these invariants) were mach's performance downfall.

Share this post


Link to post
Share on other sites
Seems so, however it all being managed i can see the kernel being able to "reboot" itself from scratch, without actually rebooting the system...

This also solves the problem of "injected" hacks in games, simply because of the separation of processes. Etc.

Basically, it is a good stand for someone (or microsoft) to build an operating system kernel off of.

Seems pretty fast too :D

Share this post


Link to post
Share on other sites
Quote:
Original post by swiftcoder
Quote:
Original post by Martee
Singularity is basically a microkernel-based operating system which is written (mostly) in managed code. Even the device drivers are managed.


So basically they are trying to recreate mach in a performance friendly manner?

A little simplistic (well, more than a little), but basically yes. The crux of the matter is "performance friendly manner", no simple task.

I think modern computers are up to the task. Mach is still alive today in some form in OSX. Essentially, Mach stalled, got picked up by another group as "Darwin", got everything sunk into the kernel (though still organized as a microkernel, a typical compromise for microkernels), and then a bunch of other stuff added on top. Windows NT kernel is similarly a "sunk microkernel," and has been that way a lot longer than OSX was even a twinkle in some nerd's eye.

Share this post


Link to post
Share on other sites
Quote:
Original post by swiftcoder
Quote:
Original post by Martee
Singularity is basically a microkernel-based operating system which is written (mostly) in managed code. Even the device drivers are managed.


So basically they are trying to recreate mach in a performance friendly manner?

The single address space made possible by invariants is a really cool approach to the performance problem, zero context switches would be a large savings over current OS multi-tasking. I am not sure they are quite set at this point though, as the permissions checks (which seem similar to these invariants) were mach's performance downfall.


All of the invariants are enforced at install-time, so there are no performance costs at runtime. It just makes sure that your code never does unsafe things, and then is done with it.

Share this post


Link to post
Share on other sites

This topic is 3566 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this