MinWin is nothing new, and the road to ‘7’
Tgdaily has a follow up on the leaked Windows 7 video I previously blogged about. It turns out, as I and others predicted, Windows 7 milestone 1 (which is what the video shows) is essentially a patch to Vista SP1. What is surprising is that Milestone 1 acts more like an upgrade installation than a standalone install like the Longhorn Milestones.
After jumping through hoops using the Vista Standard installation, the tester was presented with a very Vista-esque interface which consumed a roughly similar amount of RAM to ‘vanilla’ Vista. The reviewer noted that it was difficult to discern any difference between Vista’s Kernel and the leaner MinWin kernel we know Microsoft are experimenting with. Of course this is simply Milestone 1, a very early build which will be greatly worked on in the coming months.
I did a bit of digging into the MinWin kernel and found a fantastic article on Paul Thurrott’s supersite. Despite the recent interest in MinWin (no doubt fuelled by public perception of Vista,) it is not a technology that Microsoft has been testing recently. In fact, the idea of a compartmentalised kernel has existed in one form or another for many years. Back in 2003 Microsoft talked a lot about separating the key components of their upcoming operating system to allow for a ‘core’ system which could then be added to in a building block like fashion. People in the industry rejoiced assuming that this would allow for extensive componentisation as can be found in Linux, however in practice, Microsoft used this to create the 5/6 different versions of Vista and had the absolute say in what was included. Recent programs like vLite allow some flexibility however this does not take advantage of componentisation as nLite existed for Windows XP long before. Windows Server 2008 was the first product to really offer componentisation in the most accurate sense and is called Server Core.
Server Core is a command line tool that operates with no GUI (explorer) running (or even needing to be installed,) and allows for a machine to be customised to fit a specific role (or roles.) Such roles could be DHCP, File/print server, Virtualisation, IIS 7.0, Terminal Server, Domain Controller etc and it allows for the server to customise exactly what is installed and run. This in turn simplifies the update procedure as only components that are used (or needed for dependency reasons) are updated as and when appropriate.
“…Server Foundation (MinWin) was a core server OS component that would provide minimal server OS functionality and be used as the basic building block for job-specific server implementation…” (source)
Windows ‘Longhorn’ Server has been in development a number of years, and although Server Core is different in terms of its scope, from a semantic point of view, it is identical in concept to MinWin. Even before this, Windows 2000 (and XP and even NT 4.0) were built in a way so as to increase separation between user space code that had to be run at a kernel level (e.g. drivers) and native system code to improve stability and security. Although for different reasons, this is still a massive step away from the ‘everything in the kernel’ approach of 9x and for good reason.
Interestingly there appears to be a little conflict between Microsoft’s recent announcement saying they would wait at least three years before releasing a new operating system (which would put the release date at around 2010/11) and the documentation obtained along with M1 which suggests a latter quarter 2009 release as I previously predicted. Still, Microsoft have shown their deadlines are flexible of late so any speculation at such an early stage is premature.