Microsoft's Other OS

Windows isn't the only operating system in which Microsoft is investing

http://www.microsoft-watch.com/article2/0,1995,1882174,00.asp?kc=MWRSS02129TX1K0000535

Microsoft Research has developed a prototype of a microkernel operating system, code-named 'Singularity.' Its most surprising feature: It has nothing to do with Windows.

Contrary to popular opinion, Windows isn't the only operating system in which Microsoft is investing.

The Microsoft Research team has built from scratch a 300,000-line, microkernel-based operating system (OS) that has no roots in Windows.

That OS, code-named "Singularity," is slowly but steadily gaining visibility. The Microsoft Research team behind the project recently posted to the Web a 44-page technical research report about Singularity. Company officials discussed the project publicly at the June USENIX conference. And earlier this week, Microsoft's Singularity effort got some attention on Slashdot.

"What would a software platform look like if it was designed from scratch with the primary goal of dependability?" reads the opening of the Microsoft research report.

That was the question the Singularity team set out to answer two years ago.

"Singularity is not Windows. Every line of code was written from scratch," said Galen Hunt, a senior researcher with Microsoft Research who is helping to spearhead the Singularity project.

Hunt said Singularity is the largest cross-group project inside of Microsoft Research, involving about 35 researchers across the systems and networking, compiler, testing and other research teams.

Like all Microsoft Research projects, Singularity has no definitive commercialization trajectory. Microsoft could opt to commercialize it as is, embed elements of it in other products or simply rely on the learnings from the project to inform other efforts at the company.

Already, however, the Singularity work is generating ideas for the architectural team inside Microsoft's Core Operating System Division (COSD), and the Microsoft security team, Hunt said. COSD has been doing work to reduce dependencies among the different subsystems that comprise Windows. The security team has been wrestling with federated identity and distributed system challenges.

"We have an idea of how to minimize dependencies when writing an OS from scratch," Hunt said. "That's a technology transfer idea."

Singularity also could, hypothetically, act as the host operating system for something like Microsoft BigTop. BigTop is the code-name for a still-unannounced internal Microsoft distributed-systems infrastructure project.
Ultimately, all or parts of Singularity would most likely find a place in the embedded OS space, the server OS market, or both, Hunt said.

Singularity also is a proof of concept regarding the viability of managed code. Singularity is not the first OS written entirely in managed code, Hunt acknowledged. He bestowed that title on "Cedar," developed by Xerox PARC.

But the OS is currently written entirely in a combination of Microsoft's C# programming language, as well as a derivative of C#, which the team is calling "Sing#." (Sing# is a derivative of Spec#, which is a derivative of C#.) The ultimate goal is to write the OS entirely in Sing#, Hunt said.

While Singularity does rely on Microsoft's C#, it is not making use of Microsoft's Common Language Runtime (CLR) or the Java virtual machine. Instead, the team is relying on "Bartok," a Microsoft-Research-developed compiler and run-time environment.

"We have developed a working kernel, as originally conceived," said Hunt. "Now we can build a lot of components on top of it."

6,375 views 12 replies
Reply #1 Top
Apparently James Larus, the author of SPIM (a MIPS CPU simulator) is part of the team.
Reply #2 Top
I don't know why, but this article intrigues me greatly.

I must know more...

Sembetu
Reply #3 Top
Very interesting indeed, and something to keep an eye out for in the future. It'd be nice if MS were to put out a viable alternative to Windows.
Reply #4 Top
"What would a software platform look like if it was designed from scratch with the primary goal of dependability?" reads the opening of the Microsoft research report.


mac os?

Singularity is not the first OS written entirely in managed code, Hunt acknowledged. He bestowed that title on "Cedar," developed by Xerox PARC.


hmmmmmm. i was kiddin about mac os til i read this part.
Reply #5 Top

It'd be nice if MS were to put out a viable alternative to Windows.


Why?
Reply #6 Top
The thing is, if Singularity truely is a new OS being designed from the ground up, in order to maintain compatability with all Windows programs (because there's NO WAY MS would not have compatability built-in) the new OS would either have to have some really really funky compatability layer built into it, or it would have to run a very fast VM. Sorta like the OS 9 VM running within OS X... only not slow as sand.

I think Singularity is going to be a research project and little more. Two ore more versions after Vista, we may see a retooled Windows that uses the microkernel lessons learned from Singularity.

I for one wouldn't mind a slimmer, skicker Windows. My Windows directory weighs in at 3.04GB right now, and that's right after a clean install to a brand-new drive. All I did was patch up to SP2 and get the security fixes. I'd like a non-bloated Windows again.
Reply #7 Top
I think Singularity is going to be a research project and little more.


I have to agree with you here Zoomba. Besides a two year research, Vista and it's components, I don't see Singularity as taking any higher priority in development. More like a "see we can write something other than Windows..." type project. It'll be shelved for a novelty.
Reply #8 Top


Why?


Why not? If MS wants to dominate the market, which it does, it will release Singularity in one form or another to woo Mac and other users who are none too fond of the Windows OS.

It's often said that MS doesn't listen to its customers, but it seems they're addresssing that with the new Vista, in that there's going to be a bare bones version for those who don't want a bloated OS, right through to the full-blown pack that includes everything but the kitchen sink, for those who want it all. However, whilst Windows fans eagerly await Vista's release, Mac users have already shown an aversion to it, and I see MS eventually releasing a Singularity OS to offer them an alternative to Apple products, thus capturing an even greater share of the market.

As for MS shelving it as a novelty, its unlikely that MS would sink that much into Singularity, and not want some kind of return for its time, efforts and money.

I guess we'll just have to wait and see.
Reply #9 Top

If MS wants to dominate the market, which it does, it will release Singularity in one form or another to woo Mac and other users who are none too fond of the Windows OS.


No, I didn't mean why would it be nice for Microsoft. I meant why would it be nice for us? Those who are not fond of Windows already have many, MANY, other choices.


It's often said that MS doesn't listen to its customers, but it seems they're addresssing that with the new Vista, in that there's going to be a bare bones version for those who don't want a bloated OS, right through to the full-blown pack that includes everything but the kitchen sink, for those who want it all.


I'm afraid the bare bones version of Vista will be as bloated as the other versions, it will just have less functionality.
Reply #10 Top
I have a different spin on this. After watching the video of the developers who worked on this project, and keeping in mind some other technology pushes from Microsoft in the past 5 or so years, I think I have an idea of why this matters.

I too, do not believe that MS would bother to develop this particular project into a commercially viable product. However, I do believe that they will take the knowledge learned from this project to movve into a direction that has as of yet been untapped. Distributed Networked Computing. I am not talking about clusters, or nodes, or any of those things. No, I am talking about harnessing the power of a new generation of networking technologies in an attempt to more efficiently distribute resources across networks and de-centralize computing power.

The real power of this technology is that running a system this tight, light, and potentially safe has the possible ability to offer applications the ability to run across a network on more open systems than we have in our current system of localized hardware architecture. Think about it, the original model of computing, and I am not talking about networked computing even, was a mainframe model. You had to go to the mainframe and access it directly over a dumb terminal with a direct connection to the mainframe. Everything since has been built only to improve upon this model. Systems and processes don't really run independently, and nobody has really expected to see development in that area because then you have security risks involved.

Now, here we see managed code in practice offering the opportunity for us to de-centralize the environment in which the software runs. Systems can run independent of specific hardware. Drivers are only processes which can dynamically adapt to environments. In a networking environment this would significantly reduce the need for a particular software process to run on a specific piece of hardware, thus enabling applications and software to be able to physically run across a network. I don't have to have the OS bloated on my local system, only the framework for it. Applications and software can run heterogeneously and simultaneously in a multi-hardware networked environment.

When you can speed up the processes in this way, and make it more efficient, you can lighten hardware requirements, and run more powerful applications on less powerful hardware... and do it faster. The potential for this is pretty significant when you consider the potential in the areas of portable computing and wirlessly networked architectures.

Additionally, you can eventually build into your systems the ability to have a process dynamically react to the result of running a specific process. Therefore, you can build "smart" systems.

Anyway, I guess my point is that in the immediate view, we can probably look to this type of technology to make the Internet a large supercomputing network. Alternatively, you do have the additional risk of greater transparency, which can be of concern for privacy, because you are no longer running a closed system. You would have to harden your system off of the distributed environment in order to prevent the type of "listening" that could happen in a truly distributed computing environment.

Sembetu
Reply #11 Top

Java's answer to Microsoft Singularity

The Singularity idea seems to be taken from the concept of Java. There is actually a JSR out there where you can read the 'Application Isolation API Specification' for Java. This JSR focuses on support at the JVM or OS level for isolations.
So, I think Java already has the Singularity concept; just the need is to manage it properly to build a more secure OS.

Reply #12 Top

Here is an interesting article I found - 'Unix beats Windows' - says Microsoft! by ZDNet's Paul Murphy -- So why is this interesting? because their test methods reflect Windows internals, not Unix kernel design. There are better, faster, ways of doing these things in Unix, but these guys - among the best and brightest programmers working at Microsoft- either didn't know or didn't care.

Paul Murphy wrote -
Microsoft Research has released part of a report on the "Singularity" kernel they've been working on as part of their planned shift to network computing. The report includes some performance comparisons that show Singularity beating everything else on a 1.8Ghz AMD Athlon-based machine.
What's noteworthy about it is that Microsoft compared Singularity to FreeBSD and Linux as well as Windows/XP - and almost every result shows Windows losing to the two Unix variants.
For example, they show the number of CPU cycles needed to "create and start a process" as 1,032,000 for FreeBSD, 719,000 for Linux, and 5,376,000 for Windows/XP. Similarly they provide four graphs comparing raw disk I/O and show the Unix variants beating Windows/XP in three (and a half) of the four cases.
Oddly, however, it's the cases in which they report Windows/XP as beating Unix that are the most interesting. There are three examples of this: one in which they count the CPU cycles needed for a "thread yield" as 911 for FreeBSD, 906 for Linux, and 753 for Windows XP; one in which they count CPU cycles for a "2 thread wait-set ping pong" as 4,707 for FreeBSD, 4,041 for Linux, and 1,658 for Windows/XP; and, one in which they report that "for the sequential read operations, Windows XP performed significantly better than the other systems for block sizes less than 8 kilobytes."

So how did they get these results?

The sequential tests read or wrote 512MB of data from the same portion of the hard disk. The random read and write tests performed 1000 operations on the same sequences of blocks on the disk. The tests were single threaded and performed synchronous raw I/O. Each test was run seven times and the results averaged.

The Unix thread tests ran on user-space scheduled pthreads. Kernel scheduled threads performed significantly worse. The "wait-set ping pong" test measured the cost of switching between two threads in the same process through a synchronization object. The "2 message ping pong" measured the cost of sending a 1-byte message from one process to another and then back to the original process. On Unix, we used sockets, on Windows, a named pipe, and on Singularity, a channel.

Paul Murphy's conclusion -
If they're the best and brightest, what do you think happens when the average Microsoft programming whiz gets asked to program for Linux?