Wednesday, December 12, 2007

Core of "Windows 7" taking shape: meet the "MinWin" kernel

Eric Traut, one of Microsoft's chief operating system design engineers, gave a fascinating demo (WMV) recently at the University of Illinois, where he talked about where the Windows core is going and ended with a sneak peek at the kernel of the next version of Windows, known by the exciting codename of "Windows 7." The demo showed what Windows would look like if it was literally stripped down to the core, showing the kind of work that is going on to optimize the aging NT kernel.



Traut runs a team of about 200 software engineers at Microsoft that is responsible for the core kernel scheduling, memory management, boot sequence, and virtualization technology such as Virtual PC and Virtual Server. The latter technologies are becoming more and more important as servers get more powerful and gain more and more CPU cores, and it was clear from the demonstration that Microsoft is placing significant effort into integrating virtual machine technology into everything that they do. The release of Virtual PC as a free download last year was just the beginning: Windows Server 2008 will ship with significant VM enhancements, and Windows 7 will only carry on from there.


Windows 7




Why "Windows 7"? The number is based on Microsoft's internal operating system numbers: the first version of Windows NT, 3.1, was given the same number as the "Classic" Windows when it was released in 1992. Since then there has been NT 4, Windows 2000 (NT 5), Windows XP (NT 5.1), and Windows Vista (NT 6). You can check these numbers by typing "ver" at a command prompt on any of these operating systems.





Windows 7 core running in a VM. Note the snazzy ASCII startup screen.


Traut ran a stripped-down version of Windows 7 called "MinWin" that included only the core kernel: for the first time Windows NT has been seen running naked, without even a GUI to dress itself. It ran only a miniature web server that would display simple HTML pages, including some dynamically-generated pages that showed the task list and other properties of MinWin itself. Thirteen tasks were running, most of which would be familiar to anyone who has opened Task Manager: smss.exe, csrss.exe, and svchost.exe were all there, plus the mini web server httpsrv.exe. The OS ran under Virtual PC, and this allowed Traut to show the audience exactly how many resources it was consuming: about 25MB on disk (compare with 14GB for a full Vista install) and 40MB of RAM. The OS booted up in about 20 seconds inside Virtual PC. Still not quite as lightweight as, say, AmigaOS or QNX, but remarkably small for Windows. Traut admitted that he would "still like to see it get smaller."


A virtual future



Traut, like most good engineers, is honest about the pros and cons of code that he works on. "I fully admit that there are some major problems in the Windows OS that are driving some of these [improvements in the core and virtual machine technology]" he said, in full self-deprecating mode. He reviewed some of the reasons one might want to run older operating systems in a VM, such as backwards compatibility and resource management. The idea, of course, has been around for a long time—Windows NT 3.1 ran older 16-bit programs in a VM called "Windows on Windows" or "WOW" for short. The technology has improved since then, however. Windows Server Virtualization, like VMWare ESX and Xen on Linux, will run in what is called "Hypervisor" mode, where a host OS is not needed. This greatly improves performance and can take full advantage of new on-chip VM hardware from companies like Intel. Parts of this technology will appear as "Viridian" as an add-on for Windows Server 2008.



Traut doesn't believe virtual machines are a panacea, however; he said that sometimes they could be used as a "crutch" to solve a problem that could be better addressed by improving the core of the operating system itself. However, in server applications, VMs are clearly an idea whose time has come. Powerful servers that can run multiple OSes at once can blur the line between traditional PC hardware and big-iron mainframes and increase the power of an existing datacenter.



Compatibility is another big advantage of VMs. Traut showed, just for fun, Windows versions 1.03, 2.11, "Classic" 3.1, and NT 4.0, running under Virtual PC. Few people need to run applications that are designed for these ancient operating environments, but the point was to demonstrate how VMs can solve even the trickiest of compatibility problems by simply running the entire OS that the application was written for.



If you don't want to sit through the entire one-hour presentation, istartedsomething.com has a handy nine-minute excerpt with the MinWin demo. 

0 comments: