MinWin: Difference between revisions

ported my article, which will be improved HERE
 
No edit summary
 
Line 4: Line 4:


== Structure ==
== Structure ==
Technically, MinWin doesn't differ much from it's predecessors (files stored in <code>base</code>, <code>ds</code>, <code>windows</code> and so on) and simply contains refactored versions of them. In such manner, the NT kernel is stored in <code>minkernel\ntos</code>, instead of <code>base\ntos</code> prior from Windows 2000 to Vista.
Technically, MinWin doesn't differ much from it's predecessors (files stored in <code>base</code>, <code>ds</code>, <code>windows</code> and so on) and simply contains refactored versions of them. In such manner, the NT kernel is stored in <code>minkernel\ntos</code>, instead of <code>base\ntos</code> prior from Windows 2000 to Vista. MinWin is structured in much like the <code>Base</code> project of Windows Server 2003, by also containing internal headers in <code>public\internal</code> folder and having specific libraries, without altering the main kernel project.
 
MinWin can be imagined as a Linux-approached kernel finalized in Windows 8, by creating separate projects based in one kernel like a separate Linux distributive, such as Windows Core OS, Factory OS, Validation OS and much more.


== History ==
== 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.
MinWin was planned from as early as 2002, and was originally described by Mark Myers as building a language-independent Windows foundation encompassing approximately ~95% of the core Windows code, from which full Windows editions can be built off of.<ref name="thurrott_mw_rl">Thurrott, Paul. [https://web.archive.org/web/20101212091313/http://www.winsupersite.com/article/showcase/the-road-to-windows-longhorn-2003.aspx The Road to Windows Longhorn 2003], ''Paul Thurrott's SuperSite for Windows''. 9 May 2003. Retrieved 3 July 2025.</ref> Earliest efforts of building componentized stacks of builds were introduced in Windows Longhorn build 4081, which was later temporarily abandoned due to problems with the Longhorn project itself, including development hell and overloaded features which were buggy and unstable, via then highly unfinished Managed C++ and early .NET Framework. A MinWin test harness was also present late into pre-reset development as the "MinWin Test Platform", itself a standalone Windows edition containing only the absolute core Windows components.
 
The first public 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. 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 ===
=== Windows 7 ===
The earliest available build to start implementing MinWin is Windows 7 build 6469, which adds <code>KernelBase.dll</code>, which fetches a lot of <code>kernel32.dll</code> and <code>advapi32.dll</code> 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 <code>apisetschema.dll</code> library was introduced, defining endpoints to newer virtual DLLs.
The earliest available build to start implementing MinWin is Windows 7 build 6469<ref>https://betawiki.net/wiki/MinWin</ref>, which adds <code>KernelBase.dll</code>, which fetches a lot of <code>kernel32.dll</code> and <code>advapi32.dll</code> 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 <code>apisetschema.dll</code> library was introduced, defining endpoints to newer virtual DLLs. Since Windows 7 build 6946, API sets (virtual libraries that route commonly used Win32 API functions) were implemented to avoid breaking backwards compatibility with applications targeting older Windows versions - usage of these libraries were dictated by an "API set schema" for each major product type like the Windows Phone 8 <code>MobileCore</code> and Windows 10 <code>OneCoreUAP</code> schemas. The Windows console subsystem was also decoupled entirely from the Client/Server Runtime (CSR) and made into a standalone feature as the Windows Console Host (<code>conhost</code>), nowadays a part of the open-source Windows Terminal console emulator.<ref>https://betawiki.net/wiki/Draft:MinWin</ref>


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.<ref>The presentation's video: https://web.archive.org/web/20071025182945/http://endeavour.acm.uiuc.edu/UIUC-ACM-RP07-Traut.wmv</ref> Noticeably, it featured ASCII-based boot screen, which have never been observed or found in early Windows 7 leaked builds yet.
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.<ref>The presentation's video: https://web.archive.org/web/20071025182945/http://endeavour.acm.uiuc.edu/UIUC-ACM-RP07-Traut.wmv</ref> Noticeably, it featured ASCII-based boot screen, which have never been observed or found in early Windows 7 leaked builds yet, however, a text-based version of MinWin's <code>bootvid.dll</code>, referenced as <code>txtbootvid.dll</code>, have been found on Microsoft Symbol Server and even showcased it's launch.


=== Windows 8 ===
=== Windows 8 ===