All good things, they say, must come to an end. And so, looking at the guts of Windows 8, and casting the runes and sticking a finger in the wind, it's possible to say that the end of Windows (as we know it) is finally in sight.
Architecture is all when it comes to computer systems, and it's hard to make a fundamental shift in architecture. You can't really do it overnight, when you’re carrying a legacy of nearly 30 years of software history and nearly 90% of the market. It was hard enough for Apple to make the transition from OS 9 to the NextStep-based OS X – and that was with around 5% of the market.
But it's delving into the architectural pinnings and the language of Windows 8 that we get to see the first drafts of a storm that looks set to blow through the Windows ecosystem, pushing away the old in favour of the new. With the good old Win32 APIs starting to be left at the sidelines, and the Desktop turned into just another application, it's Metro and WinRT that provide the pointers to a very different future for Microsoft's operating systems.
Perhaps the most important part of the Metro story at an architectural level is the introduction of Contracts as a tool for inter-application communication. Instead of developers writing their own interfaces, Metro uses OS-level APIs as a subscription system that lets applications communicate through an abstraction layer – without needing any prior knowledge of application requirements and APIs. Subscribing to search exposes data structures to the system and application-level search tools, while a subscription to share lets data flow out of one application into another. Gone are the old COM interfaces, or the .NET IO classes. Instead we've got inviolate API definitions that implement one of the key concepts of a service oriented architecture.
That's an odd approach for a monolithic platform like Windows. SOA is a tool for building distributed systems, taking n-tier and expanding it to Internet scale. So why would we implement SOA features in Windows? There's of course increasing integration with Azure, but that's not the whole story – especially while the AppFabric service bus uses .NET Windows Communication Framework endpoints. So why implement a new approach to SOA in a desktop OS?
What we're getting with Windows 8 and WinRT is the basis of a siloed approach to application deployment, one where applications run in secure partitions and only communicate through a limited number of defined and managed interfaces. Windows 8's Metro applications are the Redmond giant's training wheels for developers, getting them ready for a big shift in how applications run – one that abstracts applications away from the OS, while still letting them run at native speeds. Those silos are the building blocks of a distributed architecture, one that works across the many cores of tomorrow's processors (whether Intel, AMD, or ARM).
It's an approach that lets Microsoft keep backwards compatibility for now, and in the future – while taking advantage of the next generation of multi-core silicon and virtualisation technologies. With Windows 8 only a year or so away, it's not that next generation platform, as it's built for today's (and yesterday's) PCs. So what will tomorrow's Windows be like, if it goes the Metro route? Maybe there are clues elsewhere in Microsoft.
It's always worthwhile keeping an eye on Microsoft Research. It's taken it time to get up to speed, but innovations from MSR are starting to affect the rest of the business. A lot of the features in Live and Bing have come out of research projects, as have the technologies that underpin new hardware like Kinect and the Touch Mouse. So what MSR projects could be influencing the future of Windows?
It's not surprising to find that MSR has an operating systems group, which has two relevant public projects – Drawbridge and Singularity. While Singularity has had a lot of publicity over the last year or so, it’s the less well known Drawbridge that's particularly interesting in the light of WinRT and Metro.
MSR describes "a research prototype of a new form of virtualization for application sandboxing. Drawbridge combines two core technologies: First, a picoprocess, which is a process-based isolation container with a minimal kernel API surface. Second, a library OS, which is a version of Windows enlightened to run efficiently within a picoprocess."
That approach makes a Drawbridge-style OS an ideal platform for running Metro-style WinRT applications. They're already sandboxed, and it’s relatively easy for an operating system to determine the resources required for a host picoprocess based on the WinRT calls in the application manifest. That manifest can be used to construct a library OS for the specific application, with contracts handling inter-picoprocess communications securely. It's not the big bang approach of an OS like Singularity, but it's certainly not the Windows of old. There's the prospect of backward compatibility for Win32 applications running in a single Drawbridge picoprocess, while each next generation application gets its own picoprocess – and more efficient resource management. Applications are isolated, and if one gets out of control or exhibits signs of malware, it can be shut down without affecting or infecting the rest of the OS.
Could this be the future of Windows? It's certainly one conclusion we can draw from WinRT. It's an approach that gives Microsoft a foundation for a new secure operating system that takes advantage of ever more parallel silicon, and at the same time lets older code carry on running (if in a deprecated fashion). New code gets more resources, and increased security – letting the Windows ecosystem build on applications designed for WinRT and Metro on Windows 8.
If Microsoft is taking this route, it's a surprisingly canny approach to changing the underpinnings of Windows, moving it from a monolithic to an adaptive modular operating system. Windows 8 becomes a point of transition, and Windows 9 (if it's still called Windows) becomes something new that can run old and modern code together, securely, on next-generation silicon with it all tied together by a Metro-like launcher. If Windows 8 isn't the last Windows, it's certainly not far from the end.
All speculation of course, but that's half the fun, putting two and two together and guessing what will happen half a decade from now. After all, that's what the folk in the Windows group at Microsoft need to be doing all the time…