Windows internals · History

What Was MinWin, and What Did It Become?

By , Editor · · Windows internals
The short answer

MinWin was not a new kernel, a microkernel, or a stripped-down Windows edition, whatever the 2007 headlines said. It was an internal engineering effort to untangle the dependencies between Windows components so that a minimal, self-contained core could be built and booted on its own — roughly 25 MB and around 150 binaries. Microsoft does not use the name today, but the work shipped: it is why Server Core exists in its current form, and why Windows has API sets.

MinWin is one of the most consistently misreported things in modern Windows history. If you remember it at all, you probably remember "Microsoft built a tiny new Windows kernel" — and that is not what happened.

What MinWin actually was

A Microsoft employee post archived on Microsoft Learn describes MinWin as being about removing dependencies between Windows components. It consisted of the "bottom parts" of Windows components and APIs, came to about 25 MB, and — the important part — could be built, booted and tested on its own.

The engineering payoff was mundane and enormous: a change inside MinWin no longer required rebuilding the whole of Windows to test it.

Mark Russinovich, presenting at PDC 2009, described the contents as the kernel, file system driver, device drivers, services and TCP/IP stack — around 150 binaries, 25 MB of disk and 40 MB of RAM, as reported at the time. But the figures were never the point. The purpose was to introduce architectural layering into a system that had grown without it.

The problem it was solving

Russinovich was candid about why this was hard. In remarks reported from his talk, he described Microsoft's earlier approach to making smaller Windows editions as subtractive: take the full product and pull pieces off. The trouble is that the pieces left behind sometimes still have dependencies reaching out to the pieces you removed.

Hence the layering work — and the mechanism that came with it. Russinovich described separating the logical DLLs on disk from the API sets they implement, so callers bind to a virtual name rather than to a particular file. That idea shipped.

Where the microkernel story came from

The confusion traces to October 2007, when Eric Traut demonstrated MinWin during a talk at the University of Illinois that was mostly about virtualisation. Coverage described it as a microkernel around which Windows would be built; other outlets framed it as a project to build a new kernel. Neither framing came from Microsoft.

That is what Russinovich was still correcting years later — and it is why windows-now.com ran a piece titled "once and for all". Nearly twenty years on, the microkernel version of the story is still repeated.

What shipped: Server Core

Server Core actually predates MinWin's public reveal as a shipping feature, arriving with Windows Server 2008. Microsoft's documentation makes the same correction about it that applies to MinWin: Server Core is not a different version of Windows and runs the same kernel as a full installation.

It is still current, and it is now the recommended default over Server with Desktop Experience — smaller disk footprint, smaller attack surface. Note that you cannot convert between the two after installation.

There is a neat coda to the componentisation story: since Windows Server 2019 the Server Core App Compatibility Feature on Demand lets you add back a subset of the graphical components on demand. The layering that made things separable also made them re-addable.

What changed direction: Nano Server

Nano Server was the most aggressive expression of the idea, and its story is a useful corrective to any assumption that smaller is always better. Support for the Nano Server installation option ended on 9 October 2018, and it became a container base OS image only.

The container form lost real capability: PowerShell Core, .NET Core and WMI are no longer included by default, and it is optimised for .NET Core rather than general-purpose use. It is not dead, though — Microsoft still publishes current Nano Server container tags, including for the Windows Server 2025 LTSC.

Today there are four Windows container base images: Server Core, Nano Server, Windows and Windows Server. Microsoft frames the practical difference between the two most-used ones in API-surface terms — Nano Server has a much smaller surface, without PowerShell, WMI and the Windows servicing stack.

What survived in every copy of Windows: API sets

The most durable descendant of MinWin is something you will never see in a Settings screen. API sets separate the API contract from the DLL that implements it. An API set name is a virtual alias rather than a file on disk, and Microsoft states plainly why it works that way: so modules can be split, consolidated or renamed across Windows versions and editions without breaking callers.

That is exactly the dependency-untangling problem MinWin was created to solve, shipped as a permanent part of the platform. Microsoft's name for the shared componentised base today is core OS, or OneCore. The word MinWin has quietly retired — but the work it stood for is in every copy of Windows running right now.

Frequently asked

Was MinWin a new Windows kernel?

No. That was a misreading of the 2007 coverage of Eric Traut's demo, some of which described MinWin as a microkernel around which Windows would be built. A Microsoft employee post archived on Microsoft Learn describes it instead as removing dependencies between Windows components, and Mark Russinovich framed it as introducing architectural layering. The kernel underneath was, and is, the NT kernel.

How big was MinWin?

The figures usually quoted come from reporting on Mark Russinovich's PDC 2009 session: roughly 150 binaries, about 25 MB of disk and about 40 MB of RAM. A Microsoft employee post gives the same rough 25 MB figure. Numbers reported from the earlier 2007 demo differ between outlets, so treat any single figure from that event with caution.

Does Microsoft still use the term MinWin?

Not in current documentation. Microsoft's present-day terminology for the shared componentised base is core OS or OneCore, and the Windows API sets documentation describes the mechanism without ever using the word MinWin. The name belongs to the Windows 7 era.

Is Server Core the same thing as MinWin?

No, and Microsoft treated them as separate topics at the time. Server Core is a shipping Windows Server installation option, introduced with Windows Server 2008, which runs the same kernel as a full installation. MinWin was the internal layering work. The connection is that Russinovich tied the two together explicitly: the goal of the layering was a Server Core that depends only on itself.

Is Nano Server still available?

Not as a Windows Server installation option — that ended on 9 October 2018, and Microsoft's current list of removed features still records it. Nano Server continues as a container base image, and Microsoft still publishes current tags for it including ltsc2025. In container form it dropped things the installation option had, and it is optimised for .NET Core.

Where this came from

In 2008 Mark Russinovich sat down to explain MinWin because the press had got it wrong, and windows-now.com covered it: Mark Russinovich Explains MinWin Once and For All, restored here from the archive. The misconception it was written to correct is still repeated today, which is why this page exists.