Arkitektur för Windows 9x

Windows 95-arkitekturen. [ förtydligande behövs ]

Windows 9x- serien av operativsystem hänvisar till kärnan som ligger i hjärtat av Windows 9x. Dess arkitektur är monolitisk .

Den grundläggande koden liknar MS-DOS i sin funktion . Som en 16-/32-bitars hybrid kräver den stöd från MS-DOS för att fungera.

Kritiska filer

Windows 95 startar med följande uppsättning filer:

32-bitars skal och kommandoradstolk:

Windows 95 Core:

  • KERNEL32.DLL och KRNL386.EXE – Windows API för Windows-resurser
  • ADVAPI32.DLL Funktionalitet utöver kärnan. Innehåller funktioner för Windows-registret och funktioner för avstängning och omstart
  • GDI32.DLL och GDI.EXE - Grafiskt enhetsgränssnitt
  • USER32.DLL och USER.EXE - GUI-implementering
  • COMMCTRL.DLL och COMCTL32.DLL - Vanliga kontroller (användargränssnitt)
  • DDEML.DLL Dynamic Data Exchange Management Library (DDEML) tillhandahåller ett gränssnitt som förenklar uppgiften att lägga till DDE-kapacitet till en applikation
  • MSGSRV32.EXE Fungerar som en 32-bitars meddelandeserver och kommer aldrig att visas i Windows uppgiftslista
  • WIN.COM - ansvarig för att ladda GUI och Windows-delen av systemet

Register och andra konfigurationsfiler:

Virtual Machine Manager och konfigurationshanterare:

  • VMM32.VXD - Virtuell maskinhanterare och standarddrivrutiner. Den tar över från io.sys som kärna

Installerbar filsystemhanterare:

  • IFSHLP.SYS - gör det möjligt för Windows att göra direkta filsystemanrop som kringgår MS-DOS-metoder
  • IFSMGR.VXD - 32-bitars drivrutin för det installerbara filsystemet
  • IOS.VXD I/O Supervisor som kontrollerar och hanterar alla filsystem i skyddat läge och blockeringsdrivrutiner
  • MPREXE.EXE MPRSERV.DLL och MPR.DLL - Multiple Provider Router, krävs för nätverksautentisering och användarprofiler
  • MSPWL32.DLL Lösenordslisthanteringsbibliotek

Enhetsdrivrutiner:

  • IO.SYS - körbar hantering av alla grundläggande funktioner, såsom I/O- rutiner och fungerar även som kärna tills vmm32.vxd tar över
  • HIMEM.SYS - DOS-enhetsdrivrutin som tillåter DOS-program att lagra data i utökat minne via Extended Memory Specification
  • SYSTEM.DRV, MMSOUND.DRV, COMM.DRV , VGA.DRV, MOUSE.DRV, BIGMEM.DRV, KEYBOARD.DRV - 16-bitars drivrutiner
  • CP 1252.NLS, CP 437.NLS, UNICODE.NLS, LOCALE.NLS - tangentbordslayouter
  • RMM.PDR Real Mode Mapper Virtual Device

Systemet kan också använda CONFIG.SYS , som innehåller inställningar och kommandon som körs innan kommandotolken laddas ) och AUTOEXEC.BAT , som är en batchfil som körs automatiskt efter att COMMAND.COM laddats. Dessa två filer är dock inte kritiska för uppstartsprocessen, eftersom IO.SYS innehåller en standardinställning för båda, i händelse av frånvaro från systemet. I Windows ME bearbetas inte CONFIG.SYS och AUTOEXEC.BAT och LOGO.SYS kan användas som en startskärm.

Startsekvens

Startprocessen för Windows 9x består av 6 faser. De första två av dessa steg är gemensamma för alla operativsystem som startar med den traditionella kombinationen av BIOS och Master Boot Record .

Fas 1 - ROM BIOS-startprocessen

ROM BIOS startar exekveringen på den fysiska minnesadressen FFFF0h. Under den här fasen kör BIOS först självtestet vid start och kontrollerar sedan om det finns en startdiskett på enhet A. Om den inte hittas i enhet A, söker ROM-BIOS efter en hårddisk. Om datorn har ett Plug and Play BIOS kontrollerar BIOS dessutom RAM-minnet för I/O-portadresser, avbrottslinjer och DMA-kanaler för Plug and Play -enheter, inaktiverar hittade enheter, skapar kartor över använda och oanvända resurser och återaktiverar enheter.

Fas 2 - Master boot record och boot sektor

Huvudstartposten laddas på adress 7C00h och laddar startsektorn för Windows diskpartitionen . Startsektorn innehåller diskstartprogrammet och BIOS Parameter Block- tabellen som söker efter platsen för rotkatalogen och IO.SYS-filen, som sedan laddar IO.SYS-filen i minnet.

Fas 3 - IO.SYS- filinitiering

IO.SYS initierar den minimala filallokeringstabelldrivrutinen och laddar MSDOS.SYS i minnet. Den visar sedan "Startar Windows" beroende på Boot-Delay-raden i filen MSDOS.SYS. Den laddar sedan LOGO.SYS- filen och visar en startbild på skärmen. Om DRVSPACE.INI eller DBLSPACE.INI finns, läser den också in drivrutiner för komprimerade diskar. Windows försöker sedan öppna registerfilen SYSTEM.DAT. Om det misslyckas försöker den öppna SYSTEM.DA0. Om den är konfigurerad i MSDOS.SYS eller i registret är dubbelbuffring också aktiverad.

Fas 4 - CONFIG.SYS och real mode-konfiguration

Windows 95 till Windows 98 analyserar nu CONFIG.SYS och laddar MS-DOS real mode- drivrutiner. Windows ME ignorerar detta. Om filen CONFIG.SYS inte finns laddar IO.SYS-filen drivrutinerna IFSHLP.SYS , HIMEM.SYS och SETVER.EXE . Windows reserverar alla övre minnesblock för användning av operativsystemet Windows 95 eller för utökat minne . Windows 95 till Windows 98 kör COMMAND.COM för att bearbeta AUTOEXEC.BAT. Den laddar avsluta och stanna kvarvarande program i minnet. Windows ME ignorerar detta steg, eftersom Real Mode DOS-stöd är inaktiverat och TSR:er som laddas kan äventyra systemstabiliteten.

Fas 5 - initiera drivrutiner

IO.SYS kör nu WIN.COM . WIN.COM laddar VMM32.VXD -filen till minnet eller kommer åt den från hårddisken. Den här filen innehåller de viktigaste drivrutinerna och 9x-kärnan. virtuella drivrutinsläsaren i real-mode söker efter dubbletter av virtuella enhetsdrivrutiner som finns både i mappen Windows\System\Vmm32 och filen VMM32.VXD. I fall av dubbletter kommer drivrutinen i katalogen Windows\System\Vmm32 att laddas. Windows 95 till 98 frågar nu efter drivrutiner i verkligt läge som anropar INT 2Fh och söker efter drivrutiner i registerposten HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD markerade för att laddas som en extern fil. Vmm32 analyserar sedan avsnittet [386 Enh] i filen Windows\System.ini och laddar drivrutiner som listas där. Vissa viktiga drivrutiner laddas även om de inte finns med i Windows-registret , SYSTEM.INI eller i katalogen Windows\System\Vmm32.

När drivrutinerna för virtuella enheter i real-mode har laddats, påbörjas drivrutininitiering på Windows 95 till Windows 98. Vmm32 växlar sedan CPU från verkligt läge till skyddat läge . Nästa steg är initieringen av drivrutiner för skyddat läge, exekveras i tre faser för varje enhet: en kritisk del av initieringen (medan avbrott är inaktiverade), enhetsinitiering (när fil-I/O är tillåten) och InitComplete-fasen. Efter initialisering av bildskärmsdrivrutinen växlar Windows till grafiskt läge.

Fas 6 - Win32-initiering

När alla drivrutiner är inlästa laddas filerna Kernel32.dll , gdi32.dll , Gdi.exe, user32.dll , User.exe, shell32.dll och Explorer.exe . Nästa steg i startprocessen är att ladda nätverksmiljön . Användaren uppmanas att logga in på nätverket som är konfigurerat. När en användare loggar in laddas deras skrivbordsinställningar från registret, eller så använder skrivbordskonfigurationen ett standardskrivbord. Windows startar sedan program definierade i StartUp-mappen, WIN.INI och program definierade i registernycklarna Run, RunOnce, RunServices och RunServicesOnce inuti grenarna HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion och HKEY_CURRENT_USER\Software\Microsoft\Windows\C. Efter att varje program i RunOnce-registernyckeln har startat tas programmet bort från nyckeln.

Kärna

Windows 9x-kärnan är en 32-bitars kärna med virtuellt minne . Drivrutiner tillhandahålls av .VXD-filer eller, sedan Windows 98, de nyare WDM- drivrutinerna kan användas. Däremot förblir MS-DOS- kärnan kvar i minnet. Windows kommer att använda de gamla MS-DOS 16-bitars drivrutinerna om de är installerade, förutom på Windows Me. I Windows Me körs DOS fortfarande, men Windows ignorerar alla försök att ladda sina enhetsdrivrutiner när AUTOEXEC.BAT analyseras och kommer att flytta miljövariablerna som det fortfarande känner igen från CONFIG.SYS till Windows-registret.

Se även

Vidare läsning

externa länkar