MinWin
MinWin, or Minimal Windows, is a term used by Microsoft to describe the NT kernel and other fundamental components, which form the base for the current family of Windows NT operating systems. MinWin is intended for making the NT kernel and its dependent components more portable and liberated from higher-level dependencies and DLLs, resulting into complete rewrite of existing core functionality and move into new separate DLLs, which provide higher level functionality, similar in approach to Linux kernel organizational architecture.
The original goal of the project is to return to the original layering interface, which Dave Cutler actually projected: a low-level microkernel similar to VMS, which includes a set of base services, various subsystems and additional functionality, which can be expanded easily.
Structure
Technically, MinWin doesn't differ much from it's predecessors (files stored in base
, ds
, windows
and so on) and simply contains refactored versions of them. In such manner, the NT kernel is stored in minkernel\ntos
, instead of base\ntos
prior from Windows 2000 to Vista.
History
The first mention of MinWin was in April 2003, when the vice-president of the Windows Core Technology group, Rob Short, used that meaning to describe ~95% of Windows components. After the release of Windows Server 2003, Rob Short started to create a new team of kernel architects to document and describe the undocumented functionality of the NT kernel, and due to the struggles of mass understanding, they decided to layer every component of Windows to differentiate it between each other and sort them to understand the closest to kernel components. Meanwhile, Windows Vista development led to building fundamentals of MinWin, by refactoring kernel functionality itself, despite still remaining similarities with Windows Server 2003 kernel, such as Bugcheck interface, loading and text-mode screen modes.
Windows 7
The earliest available build to start implementing MinWin is Windows 7 build 6469, which adds KernelBase.dll
, which fetches a lot of kernel32.dll
and advapi32.dll
libraries functionality consequently, bringing the kernel to have minimal dependencies. By the release of Windows 7, virtual DLLs were brought as part of MinWin, intended to lower a bunch of DLLs in the boot phase. For these redirections, a newer apisetschema.dll
library was introduced, defining endpoints to newer virtual DLLs.
9 days later after 6469 compilation, on October 13, 2007 at Microsoft's Channel9 network, a video of Eric Traut's presentation at University of Illinois have been published, where he demonstrated MinWin capabilities, by running unidentified early Windows 7 build at Virtual PC machine, demonstrating simple web server, running entirely on MinWin.[1] Noticeably, it featured ASCII-based boot screen, which have never been observed or found in early Windows 7 leaked builds yet.
Windows 8
Windows 8 has extended kernel capabilities and made the project more finalized, with the introduction of command-line booting support and boot loader enhancements in order to work with MinWin. The Xbox One operating system was based on Windows 8's MinWin foundation.
Windows 10 and later
Windows 10 uses MinWin as the foundation for the OneCore project, intended to make Windows bootable on any device, including smartphones, tablets and Internet of Things (IoT) devices. Eventually, MinWin started to replace legacy Windows NT foundation to unify development base: thus, the Windows 10 build 14250 is the earliest available build to merge Windows Mobile source base. Azure Host OS is a lightweight operating system using MinWin as it's core, to engine Azure infrastructure servers. Also, Windows Core OS, among with it's derivatives, such as Windows 10X have been released but later abandoned due to unknown reasons.
References
- ↑ The presentation's video: https://web.archive.org/web/20071025182945/http://endeavour.acm.uiuc.edu/UIUC-ACM-RP07-Traut.wmv