Microsoft’s Professional Developers Conference might be over, but that doesn’t mean news about Windows 7 suddenly stops coming in. We have news for you on the elusive MinWin kernel, which created a sort of crazy hype a year ago, and Rafael Rivera found a way to enable the new taskbar on the pre-beta build handed out to PDC attendees. This build, carrying number 6801, didn’t have the latest taskbar revamp – you needed a newer build for that, build 6933, which hasn’t been released to the public.
Let’s start with MinWin. According to a presentation by Microsoft’s Eric Traut, it was a stripped down, bare metal version of Windows NT, upon which future versions of Windows would be built. People were all excited about this one, but anyone with a bit of knowledge on various kernels knows that Windows NT is a pretty decent kernel, and it should not have been a major effort for Microsoft to strip Windows NT to its core. The NT kernel is what some call a hybrid kernel – it’s not a microkernel, but it is laid out as one. It’s componetised, and you can move these components in and out kernel land if you want to, with relatively minimal effort. Microsoft showed this agility with Windows Vista, where certain subsystems were moved out of kernel land into user land. In fact, Microsoft promotes driver writers to write user land drivers, to prevent stability issues.
You’d think that the MinWin hype would die down, that it would lose its appeal. However, it still seems to appeal to a lot of people as if it’s some sort of gift from God. In a talk on Channel 9, NT kernel guru Mark Russinovich confirmed what Eric Traut had already said a year ago: MinWin is part of Windows 7. He also explained what MinWin is: a stripped down, bare metal NT kernel. Microsoft looked at calls made by the kernel towards higher items on the dependency stack, and re-arranged parts of the kernel to eliminate these calls, and make sure the small kernel could run on its own.
Look at it this way. On top of the inverted pyramid is Windows-proper. It has everything – all the bells and whistles. Then comes Server Core. This is what’s left after Windows-proper had all the stuff cut out that was not needed for the various server roles that ship with Windows Server. The problem with Server Core, however, is that the cutting isn’t exactly a very pretty process – it leaves all sorts of dependencies unanswered. If you were to take a regular Windows application, and tried to run in on Sever Core, and it would make a call to something that has been cut out, it would fail.
So, somewhere between Windows-proper and Server Core, there’s a cutting line. In order to prevent this cutting line from moving around between Windows releases (due to APIs coming and going, for instance), Microsoft created MinWin. MinWin is the result of a project within Microsoft that mapped the dependencies in Windows in a layer graph. The goal is to make sure that calls happen only from layer x to layer x-1 – not from layer x to x+1. They achieved this by moving APIs around. Now, MinWin is the place where no calls are made upwards. It’s an isolated, bootable kernel that can be used for testing purposes, and it can be built separately from the rest of Windows.
Russinovich calls it “Cutler’s NT”, referencing Dave Cutler, the man behind the NT kernel. It contains the NT kernel, the executive subsystems, the memory manager, networking, and optional file system drivers. MinWin allows Microsoft to make changes within the very core of Windows without affecting the rest of the Windows tree (Russinovich emphasises, though, that the changes made do not affect (driver) compatibility – all Vista drivers will work on Windows 7). What MinWin isn’t, is some sort of enhanced NT kernel. It is the NT kernel.
The work on eliminating upward calls is still in full swing, according to Russinovich. The talk also details a lot of other very interesting low-level, core improvements, such as increased processor support (256 processors) and lots of other things. Definitely recommended.
The new taskbar
The new taskbar, demonstrated during PDC, was not part of the build handed out during PDC. However, as it turns out, a slightly botched variant is part of the PDC build – you just need to activate it.
Although a newer-looking Taskbar is present, it’s not exactly what you saw at PDC ’08. For example, the Quicklaunch toolbar still exists, Aero Peek doesn’t work properly, and Jumplists are stale. This is likely why it wasn’t enabled, out of the box, so set your expectations accordingly.
Just so you know.
This version of windows 7 is very fast when compared to vista; plus it was less annoying; scaling to bigger dpi now works fine and makes your screen readable without glitches; refused to install Symantec Endpoint protection 11 x86; It has accepted nvidia latest drivers for GF9800GTS and I was able to play FarCry african action game with fantastic graphics on DX10.
Network access speed needs to be more faster.
73 active processes arerunning when you log on with nothing loaded and alot of services are running too; but despite this things seem to be on steroids. RAM usage is high around 500MB but RAM now is cheap.
Hardware: Asus P5e WS + E4700 CPU + 8GB RAM + GF9800GTS
Nested windows still not fixed and you will never find quickly whatever you want unless you search for it.
Network daemon is a very very good tool now.
I will be further testing it and check on its stability.
In my book, refusing to install any Symantec products is a most welcome consumer protection feature.
Edited 2008-11-04 03:31 UTC
“Nested windows still not fixed and you will never find quickly whatever you want unless you search for it.”
I’ve been using Visa for a while now, but am unfamiliar with the “nested windows” problem. Can you tell me problem you’re referring to?
I also don’t know what “you will never find quickly whatever you want unless you search for it” means, so can you explain that too?
Edited 2008-11-04 06:12 UTC
I think I am going to spend some time this weekend building a vm to test out this W7 build. Thanks for the informative post!
Just to set some specific matters straight: MinWin so far involves absolutely no changes to the NT Kernel itself. It mainly contains changes to the way the low-level usermode parts of Windows (like kernel32.dll, advapi32.dll and others) relate to each other and to higher level dlls. The NT subsystems have long been well-componentized and do not need modification.
Edited 2008-11-03 20:43 UTC
So basically they
– made their big kernel lock a little less lame
– support more than 64 CPUs
– cut windows down to Servercore without really knowing what cut
– build a minimal system with just the kernel + a few bits
– haven’t improved most of the kernel parts at all
– added some VM stuff
I see. The windows kernel world is innovating in at amazing speed
As it has been said before the core of windows is actually very well written, as is a lot of their components. I have seen in many forums people asking for a newer File system or Microsoft to move Windows to ZFS, and the question is why. NTFS as a lot of Windows systems is very reliable, mature and very modern, it has been evolved over many years.
I think the main problem with vista on Release was the userland the UI. In many ways it was hurried, placing a large botchy stack of code on top of a solid foundation. However a year and a Service Pack we have a windows which should have always been. Vista is now reliable and fast enough for anyone to use. Memory alone has changed from using approx 1GB idle to 600MB idle.
The old adage of Microsoft is still very much true (perhaps it’s true of a great many companies). That when left the company releases any old crap (i always though Windows XP fell into this catagory, as it offered nothing really over Windows 2000). However when microsoft has competition they work hard and produce some excellent products, for this i have always held up Windows Server as an example. As windows has always been seen as the runt of the NOS, Microsoft had to work hard to get into the server market and get itself seen as a serious contender. Windows 2008 Server is an excellent product that offers features, speed and reliability galore.
Which now leaves Windows 7, which i have great hopes for. I have always prided myself as software/hardware argonostic, in that i will use whatever fits the purpose. I am a massive fan of Apple Mac’s for home and iLife uses such as photography and video. Windows ive always found to be a better client for day to day working such as office documents etc.. Where as although i do like Linux a lot i still mainly use as a server OS.
Roll on 2009/10 the OS scene is getting more interesting every year.
600 mb for just the OS. “Not bad.”
But Vista is _NOT_ for everybody. You always have to check your application compatibility. It is crazy.
For example: I “upgraded” a architect friend of mine to Vista. She got XP and Vista with her 1GB RAM Core Duo Laptop. So I upgraded the RAM to 2GB and installed Vista SP1.
I just assumed Apps would work… Well most of the stuff she had was not Vista ready. AutoCad 9 and other stuff with Dongle copy protection _WILL NOT_ fly with Vista. No Chance. You have to buy new versions or better solution:
Go back to XP.
Conclusion: Proprietary vendors mostly suck.
Actually, no need to criticize Vista when you in this case did it the wrong way.
As for all upgrades, for all different OS:es or applications, it is up to you to check the compatibility before doing the upgrade.
If something doesn´t work after upgrading and you find out that the app is not compatible, then you didn´t make your homework.
Considering how old Autocad 9 is, that’s not exactly unexpected. A little research would have saved you a lot of headaches.
or 68000…
Is it just me or half of the articles are about windows 7 ? :p
It struck me, listening to Russinovich, the degree to which the kernel term had to resort to what is effectively OS archaeology – uncovering and documenting the structures that are present, rather taking a top down design approach. To create things like MinWin, the kernel team has had to do a deep dependency analysis, revealing a massive hairball of dependencies that don’t easily decompose into neatly separable layers, and then nudge system calls around to retroactively impose structure. The Windows kernel does not appear to be an onion, it’s more like an omelet.
Perhaps this is just something that happens when a project gets this complex, but one wonders if perhaps things got a little out of hand in Redmond. There appears to have been no overarching design process in the kernel, at least in the last decade. Hopefully they will do a little better job in the future.
I got that impression too, however someone earlier pointed out that MinWin is actually a componentization of the higher level subsystems in Windows.
Either way, you make a very good point.
MinWin isn’t about the kernel (i.e. what runs in ring0) at all. It’s mostly about ring3 components that have had lots of contributors and development by a large and diverse set of people (a number of different teams within Microsoft).
Few/no actual syscalls are affected by this.