MinWin er et udtryk, der bruges af Microsoft til at beskrive kernen og operativsystemet , hvis hovedkomponenter begyndte at blive udviklet samtidig med Windows Vista . Dette koncept blev første gang brugt i 2003 til at beskrive cirka 95 % af komponenterne i operativsystemet (selvom denne procentdel er faldet over tid). Dette er den mest populære minimalistiske modulære samling af Windows -komponenter og var oprindeligt planlagt til at være kernen i Windows 7 .
Den 4. november 2008 annoncerede Mark Russinovich , et medlem af Microsoft Corporation Technical Council, i sin webcast på MSDN Channel 9, at MinWin-kernen stadig var implementeret i Windows 7, men princippet for dens implementering er baseret på opdeling af kernen i lag, hvor basislaget ( KernelBase .dll , osv.) fylder 30 MB i alt, og resten af funktionaliteten forbliver i de gamle biblioteker (f.eks. kernel32.dll , osv.). Denne ændring er umærkelig for driften af applikationer og enhedsdrivere på grund af et nøje gennemtænkt skema til adskillelse af funktionalitet.
For at få MinWin til at skille sig ud, skulle nogle komponenter omarbejdes (opdeles eller flettes). For eksempel opdeles kernel32.dll - biblioteket i kernel32.dll og kernelbase.dll . Og for at disse ændringer ikke skal påvirke programmer på højere niveau, bliver opkald til alle "fjernfunktioner" i gamle DLL'er omdirigeret til biblioteker fra MinWin. For eksempel:
For at reducere antallet af fysiske DLL'er, der skal indlæses ved opstart, begyndte mange DLL'er i MinWin at indeholde sæt funktioner fra forskellige API'er , og dette komplicerede videreudviklingen af systemet. For at undgå dette problem er samlinger af funktioner fra relaterede API'er blevet slået sammen til såkaldte virtuelle DLL'er.
For eksempel: api-ms-win-core-errorhandling-l1-1-0.dll , hvor tallene repræsenterer hierarkiniveauet i systemet, større og mindre versioner. Skemaet til at kortlægge virtuelle DLL'er til fysiske er gemt i Apisetschema.dll .
Alle virtuelle DLL'er eksisterer fysisk, men indeholder ikke funktionsimplementeringer:
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-procesenvironment-l1-1-0.dll api-ms-win-core-procesthreads-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