Microsoft has applied for a patent for an "automated, static safety verifier" that will help verify the type- and memory-safety of an operating system.
And why should anyone care? This isn't the Monkees coming to Zune, after all. But there are some connections to other Microsoft projects (and potentially, products) worth considering.
The patent application in question, noted first by Charon at the Ma-Config.com blog, is for tools and techniques that can "mechanically verify the safety of every assembly language instruction in the OS, run-time system, drivers, and applications, except the boot loader (which can be separately verified)."
What I'm most interested in is the OS that has been verified by these tools. That OS -- which Microsoft is calling "SafeOS" (but which also seems to go by the name "Verve") -- includes a Nucleus for accessing hardware and memory; a kernel for building services on the Nucleus; and applications that run on top of the kernel. The Nucleus, written in "verified assembly language," is what handles garbage collection, interrupt handling, device access, etc.
Garbage collection and type safety? Haven't we heard something about this before?
We have, indeed. A couple of years ago, I blogged about two interrelated projects in development at Microsoft, codenamed "Redhawk" and "MinSafe." Supposedly, these two projects were precursors to Midori, Microsoft's stealth distributed OS project.
Redhawk was the codename for new managed code work being done by the Developer Division, while MinSafe was the codename for the complementary managed code initiative on the Windows side of the house. Both projects were said to be aimed at providing a new managed-code execution environment that will be more lightweight and more appealing to developers who are put off by the perceived overhead of the current Common Language Runtime (CLR) at the heart of the .Net Framework, according to sources. Redhawk deliverables, according to my sources, included a new back-end compiler and new runtime that would still provide type safety and garbage collection, but perhaps not the rest of the functionality that is currently part of the current .Net CLR.
SafeOS should not be confused with ServiceOS -- another operating-system-related research project from the company. ServiceOS is the successor to Microsoft's "Gazelle" and "MashupOS" projects. SafeOS is a derivative of Microsoft's Singularity microkernel research project, but SerivceOS is more about the browser (designed as an operating system). SafeOS also sounds like a more generic, proof-of-concept entity than anything that is likely to morph into a commercial product. ServiceOS has the markings of something that some day could be commercialized (in my opinion).
Speaking of ServiceOS, Ma-Config also found a note on the Microsoft Research site explaining how ServiceOS could impact Microsoft's commercial offerings.
"The ServiceOS project aims to address many challenges faced by our Windows Phone platform, post Windows 8 platform, the browser platform, and Office platform," according to the note. It mentions a demonstration of a ServiceOS prototype that is MinWin-based and "refactors Trident to have a multi-principal OS-based design for the browser platform." (Trident is the rendering engine that is part of Internet Explorer.)