In my post about Windows 7 back in January ("Windows 7 = Vista Release 2"), I ended with a statement that deserves some follow-up:
Those who are predicting that Windows 7 will include some radically stripped-down kernel (the so-called MinWin project) or a new file system are missing the point completely.
Many of the articles and blog posts I've read about Windows 7 in recent days mention MinWin, usually following up with the observation that it's the new lean kernel that's going to be at the heart of Windows 7. That misinterpretation was widely reported in October, when this story first appeared, and it’s become conventional wisdom since then. Australia’s IDM, for example, included this authoritative-sounding statement in a March 17 report:
Windows 7 … is being based [on] a completely stripped down and re-vamped “MinWin” kernel that will be tightly knit with its Windows Live services.
Or this March 5 report from TechNewsWorld in the U.S.:
Windows 7, the next version of the Windows platform, which will be the successor to Windows Vista, has its own kernel, MinWin.
Even my estimable colleague, Mary Jo Foley, thinks MinWin is in:
Microsoft — last we heard — had managed to create “MinWin” — a stripped-down [version] of the Windows kernel, that it is planning to make the heart of Windows 7 and its successors.
I think this conclusion is wrong. About the last thing Microsoft wants to do in Windows 7 is make radical changes at the kernel level. (You think they want the potential for another round of driver and app-compat issues like the ones that plagued Vista for the first six months after its launch?) I’m willing to bet that the Windows 7 kernel will contain only minor changes from the one found in Windows Server 2008 and Vista SP1.
If you don't believe me, go back and watch the eight-minute video snippet that got this all started last fall.
Long Zheng pulled this excerpt from Microsoft Distinguished Engineer Eric Traut's presentation on virtualization technology last fall. Because the blogosphere has such a short attention span, it’s likely that a lot of people writing about this stuff have never actually watched even this excerpt (the full video of Traut’s talk runs over an hour, and this discussion occurs more than 40 minutes in). I’ve never seen a transcript of these remarks posted anywhere, either. So, in the interest of science, I went back and watched the whole thing again, transcribing the good parts. I’ve bold-faced the key statements here.
Don’t skip the intro, which is pure comedy gold. After you get past the demo of Microsoft Bob running on Windows 3.11 (seriously), Traut calls out the lightning fast boot times of Windows 1 and 2. "Paint. Looks just like PhotoShop, huh?" After that bit of of ancient history (and presumably the irony-impaired will notice the humor), this discussion begins at 3:30:
This is the core of Windows 7. This is a collection of components that we've taken out. A lot of people think of Windows as this really large, bloated operating system, and that may be a fair characterization, I have to admit. It is large. It contains a lot of stuff in it. But at its core, the kernel and the components that make up the very core of the operating system actually is pretty streamlined.
He’s talking about the guts of Windows 7 here, but he could just as easily be referring to any other recent-vintage release of the Windows NT family.
It's still bigger than I'd like it to be, but we've taken a shot recently at really stripping out all of the layers above and making sure that we had a clean architectural layer there, and we created what we call MinWin.
Now, this is an internal only - you won't see us productizing this - but you could imagine this being used as the basis for products in the future. This is the Windows 7 source code base, and it's about 25 megs on disk. Compare that to the four gigs on disk that the full Windows Vista takes up. We don't have a graphics subsystem other than text in this particular build, so you can see that's our Windows flag [referring to an ASCII art splash screen].
It’s a research project, not a product plan. They started with the Windows 7 source code base and fiddled with it to see how small they could make it and still have it run something. It might turn into a product someday, but it’s certainly not going to be in Windows 7.
OK, now skip ahead to about 7:10 or so:
[I]t'll be a while before you can build something directly on top of this really tiny core. … Like I said, we don't have any productization plans for it. We're definitely going to be using this internally to build all the products that are based on Windows.
Traut points out that Windows Server 2008 is “based on this thing called Windows Server Core”:
[I]t basically ships in this minimal state - and when I say minimal, it's about a gig and a half on disk, which is a still a lot bigger than what we're talking about with MinWin - but it has all the stuff necessary to run the different server workloads. … I mentioned a gig and a half on disk; that's still pretty big. In memory it's much smaller. That contains all the drivers, many of which you don't need for any given platform.
And there’s the real take-away from this presentation. The immediate goal isn’t to trim Windows 7 to something that will fit on the head of a pin. Just remove some optional components and make the whole thing smaller and more modular than Vista, just as Server 2008 is smaller and more modular than Server 2003. If Vista’s successor in Windows 7 can trim its core space (and memory) requirements by a third or half, giving you the option to choose which components you want to run on top of that relatively lean base, that will be impressive enough for all but the most vocal Vista critics.
Update: For more on this subject, check out this excellent Channel 9 interview with Mark Russinovich. At about 14:40, he addresses the confusion over MinWin and the kernel: "The word 'kernel' is used loosely to mean a whole bunch of different things. ... The NTOS kernel is the core of Windows that runs in kernel mode, and it's got a lot of support components around it that also run in kernel mode. And then there's layers of system level components that run in user mode but are still a part of the core OS.If I've used the word 'kernel' around MinWin, I'm really talking about the core of the system."