MinWin

MinWin  är en term som används av Microsoft för att beskriva kärnan och operativsystemet , vars huvudkomponenter började utvecklas samtidigt som Windows Vista . Detta koncept användes första gången 2003 för att beskriva cirka 95 % av komponenterna i operativsystemet (även om denna andel har minskat med tiden). Detta är den mest populära minimalistiska modulära monteringen av Windows -komponenter och var ursprungligen planerad att vara kärnan i Windows 7 .

Den 4 november 2008 meddelade Mark Russinovich , en medlem av Microsoft Corporation Technical Council, i sin webbsändning på MSDN Channel 9 att MinWin-kärnan fortfarande var implementerad i Windows 7, men principen för dess implementering är baserad på att dela upp kärnan i lager, där baslagret ( KernelBase .dll , etc.) tar upp 30 MB totalt, och resten av funktionaliteten finns kvar i de gamla biblioteken (till exempel kernel32.dll , etc.). Denna förändring är omärklig för driften av applikationer och enhetsdrivrutiner på grund av ett noggrant genomtänkt schema för att separera funktionalitet.


Enhet och arbete

För att få MinWin att sticka ut måste vissa komponenter omarbetas (delas upp eller slås samman). Till exempel, kernel32.dll- biblioteket delas upp i kernel32.dll och kernelbase.dll . Och för att dessa ändringar inte ska påverka program på högre nivå, omdirigeras anrop till alla "fjärrfunktioner" i gamla DLL -filer till bibliotek från MinWin. Till exempel:

För att minska antalet fysiska DLL:er som behöver laddas vid start började många DLL:er i MinWin innehålla uppsättningar funktioner från olika API :er , och detta komplicerade vidareutvecklingen av systemet. För att undvika detta problem har samlingar av funktioner från relaterade API:er slagits samman till så kallade virtuella DLL:er.

Till exempel: api-ms-win-core-errorhandling-l1-1-0.dll , där siffrorna representerar hierarkinivån i systemet, större och mindre versioner. Schemat för att mappa virtuella DLL-filer till fysiska lagras i Apisetschema.dll .

Alla virtuella DLL-filer existerar fysiskt, men innehåller inte funktionsimplementationer:

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

Se även

Länkar