Redmond (WA) – As much as Microsoft hyped its Vista operating system, its success is rather underwhelming so far. But the company is developing a new operating from scratch – a software that takes a new approach in the battle against viruses and will be able to run on many-core processors and take advantage of GPGPUs. A first version of the code was made available today .
Singularity was first announced more than two years ago as a project to rethink the way operating systems should work. Now almost five years in development, tech-savvy users can take a first look at Singularity and Microsoft’s ideas how a Windows of the future could look like.
The operating system isn’t ready to run on mainstream PCs by any stretch. It is provided as a basic framework and research project to developers. Microsoft said that it hopes to collect feedback and ideas from developers to shape this operating system, which at least at this time is not intended to replace Windows on client PCs in the foreseeable future. As bare as the software is (61.0 MB for the code) at the moment, the ideas behind Singularity is revolutionary and if the company can translate this concept into a mass-market product, there is suddenly an exciting operating system in our future again.
According to Microsoft, the basic idea behind Singularity is to create a more dependable OS and, in doing so, leave traditional operating system strategies behind and create a completely new architecture. The key developers of Singularity, Galen Hunt and Jim Larus, said that all current operating systems such as Windows, Linux and MacOS can be traced back to an operating system called Multics, which has its origins in the 1960s. In effect, current operating systems are still based, in part, on thoughts and criteria from 40 years ago, Hunt claims.
Of course, the challenges the of computing environment are very different today, which led to the idea to build Singularity from scratch, with modern technologies based on current challenges. “Our goal was to make Singularity small enough, simple enough, and well-designed enough that you can try out radical new ideas quickly,” Hunt says. “Our thinking is that a researcher with a great new idea for improving operating systems could get from idea to published paper in under a year using Singularity.”
So, while Windows Vista is an operating system that has evolved over decades, Singularity is entirely new. It is based on a so-called micro-kernel, which performs the crucial role of dividing systems resources among competing programs and abstracting the complexities of system hardware. According to Microsoft, more than 90% of the OS kernel is written in Sing#, an extension of the C# high-level programming language. The developers claim that this fact alone hands Singularity security advantages over operating systems written in lower-level languages such as C or C++. For example, by using C#, the researchers say they can prevent a class of errors known as buffer overruns, thereby eliminating a key area of vulnerability typically exploited by worms and viruses.
Microsoft said it uses “sound verification tools” that ensure that “entire classes of programmer errors are removed from the system early in the development cycle” of software, which should enable a clean development environment.
Three ideas to carry the development of Singularity
The kernel is the core technology supporting new ideas and technologies introduced by Singularity: It provides the base abstractions of the software-isolated processes (SIPs), contract-based channels, and manifest-based programs. So called SIPs have been created to break down programs into components that are isolated from other software components running on the same device. This enables pieces of the operating system to fail without the whole system to crash. You may know this concept from virtualization, where one operating system could face trouble, but leaves every other software on a system completely intact.
“In the past, creating many processes in an operating system was impractical from a cost perspective, largely because they required special support from the hardware,” Hunt says. “Rather than use hardware to build boundaries between processes, we figured out a way to build processes using a software technology called static analysis.” This analysis inspects a program’s source code in advance to make sure a process obeys certain rules that guarantee it’s isolated from the rest of the system.
The second architectural feature of Singularity are “contract-based channels” which enables SIPs to communicate with eachother and share information to achieve a stated goal. Microsoft believes that this approach will allow Singularity to avoid errors and “breakdowns” that are occurring today. “We figured out how to describe the form in which communications should take place between two processes, and using static analysis, we can check the codes of the processes at compile time,” Hunt explains. “So before the code ever runs, we can confirm that the processes communicate correctly.”
Third, there are “manifest-based programs” which has the goal to inform the operating system with basic parameters of the applications it runs. “We basically say, if you want to install a program to run on a Singularity system, you have to provide some information about it so we can preserve certain properties that make the system more reliable,” Larus explained. “You have to provide a manifest of the program pieces and how they fit together, and we’re going to check it. More important, we reserve the right to say ‘no.’ If a certain program doesn’t follow the rules set down for the system, you can’t install or run it.”
Read on the next page: Singularity's huge performance potential