A MinWin kifejezés a Microsoft által a kernel és az operációs rendszer leírására szolgál, amelynek fő összetevőit a Windows Vista -val egy időben kezdték fejleszteni . Ezt a fogalmat először 2003-ban használták az operációs rendszer összetevőinek körülbelül 95%-ának leírására (bár ez az arány idővel csökkent). Ez a Windows -összetevők legnépszerűbb minimalista moduláris összeállítása , és eredetileg a Windows 7 magjaként tervezték .
2008. november 4-én Mark Russinovich , a Microsoft Corporation Műszaki Tanácsának tagja az MSDN Channel 9-en sugárzott webcastjában bejelentette, hogy a MinWin kernelt még Windows 7-ben implementálták, de megvalósításának elve a kernel felosztásán alapul. rétegek, ahol az alapréteg ( KernelBase .dll , stb.) összesen 30 MB-ot foglal el, a többi funkció pedig a régi könyvtárakban marad (például kernel32.dll , stb.). Ez a változás észrevehetetlen az alkalmazások és az eszközmeghajtók működésében, a funkcionalitás szétválasztásának gondosan átgondolt sémája miatt.
Ahhoz, hogy a MinWin kiemelkedjen, néhány komponenst át kellett dolgozni (felosztani vagy egyesíteni). Például a kernel32.dll könyvtár felvált a kernel32.dll és a kernelbase.dll részekre . És hogy ezek a változtatások ne érintsék a magasabb szintű programokat, a régi DLL -ekben lévő összes "távoli" funkció hívása a MinWin könyvtáraiba kerül átirányításra. Például:
Az indításkor betöltendő fizikai DLL-ek számának csökkentése érdekében a MinWin számos DLL-je különböző API -kból származó függvénykészleteket kezdett tartalmazni , és ez megnehezítette a rendszer továbbfejlesztését. A probléma elkerülése érdekében a kapcsolódó API-k függvénygyűjteményeit úgynevezett virtuális DLL-ekbe egyesítették.
Például: api-ms-win-core-errorhandling-l1-1-0.dll , ahol a számok a hierarchia szintjét jelentik a rendszerben, fő- és mellékverziókban. A virtuális DLL-ek fizikai DLL-ekre leképezésének sémája az Apisetschema.dll fájlban található .
Minden virtuális DLL létezik fizikailag, de nem tartalmaznak függvénymegvalósításokat:
C:\Windows\System32>dir /api* /B api-ms-win-core-console-l1-1-0.dll api-ms-win-core-datetime-l1-1-0.dll api-ms-win-core-debug-l1-1-0.dll api-ms-win-core-delayload-l1-1-0.dll api-ms-win-core-errorhandling-l1-1-0.dll api-ms-win-core-fibers-l1-1-0.dll api-ms-win-core-file-l1-1-0.dll api-ms-win-core-handle-l1-1-0.dll api-ms-win-core-heap-l1-1-0.dll api-ms-win-core-interlocked-l1-1-0.dll api-ms-win-core-io-l1-1-0.dll api-ms-win-core-libraryloader-l1-1-0.dll api-ms-win-core-localization-l1-1-0.dll api-ms-win-core-localregistry-l1-1-0.dll api-ms-win-core-memory-l1-1-0.dll api-ms-win-core-misc-l1-1-0.dll api-ms-win-core-namedpipe-l1-1-0.dll api-ms-win-core-processenvironment-l1-1-0.dll api-ms-win-core-processthreads-l1-1-0.dll api-ms-win-core-profile-l1-1-0.dll api-ms-win-core-rtlsupport-l1-1-0.dll api-ms-win-core-string-l1-1-0.dll api-ms-win-core-synch-l1-1-0.dll api-ms-win-core-sysinfo-l1-1-0.dll api-ms-win-core-threadpool-l1-1-0.dll api-ms-win-core-ums-l1-1-0.dll api-ms-win-core-util-l1-1-0.dll api-ms-win-core-xstate-l1-1-0.dll api-ms-win-security-base-l1-1-0.dll api-ms-win-security-lsalookup-l1-1-0.dll api-ms-win-security-sddl-l1-1-0.dll api-ms-win-service-core-l1-1-0.dll api-ms-win-service-management-l1-1-0.dll api-ms-win-service-management-l2-1-0.dll api-ms-win-service-winsvc-l1-1-0.dll