Arkitektur för Windows 9x
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:
- SHELL.DLL och SHELL32.DLL – Shell API
- EXPLORER.EXE – Windows-skal och filhanterare
- COMMAND.COM – körbar kommandoradsskal
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:
- SYSTEM.DAT , USER.DAT - innehåller Windows-registret
- MSDOS.SYS - innehåller vissa startinställningar och resurser på låg nivå, som att inaktivera dubbelbuffring och GUI- logotypen
- WIN.INI och SYSTEM.INI - konfigurationsfiler från Windows 3.1, bearbetade även i Windows 9x
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
- Schulman, Andrew (november 1994). Obehörig Windows 95 - Developer's Resource Kit (1:a upplagan). Foster City, Kalifornien, USA: John Wiley & Sons, Inc. ISBN 1-56884-305-4 . ISBN 978-1-56884-305-6 .
- Schulman, Andrew; Brown, Ralf D. ; Maxey, David; Michels, Raymond J.; Kyle, Jim (1994) [november 1993]. Odokumenterad DOS: En programmerares guide till reserverade MS-DOS-funktioner och datastrukturer - utökad till att omfatta MS-DOS 6, Novell DOS och Windows 3.1 ( 2 uppl.). Reading, Massachusetts: Addison Wesley . ISBN 0-201-63287-X . ISBN 978-0-201-63287-3 . (xviii+856+vi sidor, 3,5"-diskett) Fel: [1] [2]
-
Paul, Matthias R. (2002-04-10). "[fd-dev] HMA-åtkomst från TSR" . freedos-dev . Arkiverad från originalet 2017-09-09 . Hämtad 2017-09-09 .
[...] MS-DOS 7.0 + [...] introducerade en [...] för det mesta odokumenterad RMD-datastruktur som vanligtvis finns i HMA . Kärnan samlar in och registrerar konfigurations- och Real Mode Driver-data under uppstart (typ av drivrutin, avbrott kopplade av drivrutinen, CONFIG.SYS -anropsrad, etc.) och lagrar denna information i en [...] komplicerad [...] växande datastruktur. Förmodligen [...] avsedd att användas av Windows-kärnan för att få en bättre bild av de laddade Real Mode-drivrutinerna [...] eller till och med försöka koppla av eller lossa några av dem, [...] den används bara i mycket begränsad utsträckning ([...] en del av informationen som återspeglas i loggfilerna som skapades vid [...] start, och vissa delar av [...] konfigurationshanteraren använder sig också av den), [. ..] lämnar utrymme [...] bortom den tekniska sidan [...] eftersom ingenting av det intressanta är dokumenterat [...]
- Paul, Matthias R. (2002-08-13). "En sådan freien Speicherbereich unterhalb von 1 MB, der nicht von OS überschrieben wird" ( på tyska). Nyhetsgrupp : de.comp.lang.assembler.x86 . Arkiverad från originalet 2017-09-04 . Hämtad 2017-09-03 . (OBS. Även för MS-DOS 7+ HMA-användning och \WINDOWS\IOS.LOG.)
-
Sweger, Kristofer (2007) [2002-07-15]. "ANSIPLUS och Windows" . Arkiverad från originalet 2021-11-28 . Hämtad 2021-11-28 .
[…] ANSIPLUSs kod kan inte laddas till HMA under MS-DOS 7 (endast Windows 9x) eftersom det uppenbarligen inte finns tillräckligt med oanvänt HMA-minne tillgängligt. […]
-
Paul, Matthias R. (2004-06-17). "Re: Slumpmässiga låsningar med DR-DOS 7.03" . [email protected]; FidoNet- konferens: ALT_DOS . Arkiverad från originalet 2019-04-28 . Hämtad 2019-04-28 .
[...] alla MS-DOS-versioner före Windows 95 [...] använde en COMMAND.COM-fil i COM-stil som har en speciell signatur i början av filen [...] som efterfrågas av MS-DOS BIOS innan den laddar skalet, men inte av DR-DOS BIOS [...] skulle COMMAND.COM kontrollera att den körs på "rätt" DOS-version, så om du skulle ladda deras COMMAND.COM under DR-DOS skulle du få ett "Dålig version"-felmeddelande och deras COMMAND.COM skulle avslutas, så DR-DOS skulle [...] visa ett felmeddelande "Bad or missing command interpreter" (om DR-DOS var försöker ladda SHELL=-kommandoprocessorn efter att ha avslutat CONFIG.SYS-bearbetningen). I det här fallet kan du ange sökvägen till en giltig DR-DOS COMMAND.COM (C:\DRDOS\COMMAND.COM) och allt var bra. Nu har saker och ting förändrats sedan MS-DOS 7.0 [...] COMMAND.COM internt har blivit en EXE-stilfil, så det finns ingen magisk [...] signatur [...] att kontrollera [...] alltså inget sätt för DR-DOS att utesluta en inkompatibel COMMAND.COM. Dessutom gör deras COMMAND.COM inte längre några versionskontroller, men [...] fungerar inte under DR-DOS [...] kraschar bara [...] PC DOS COMMAND.COM fungerar bra under DR-DOS [...]
[3] [4] - King, Adrian (1994). Inuti Microsoft Windows 95 (2:a upplagan). Redmond, Washington, USA: Microsoft Press . ISBN 1-55615-626-X . ISBN 978-1-55615-626-7 .
- Programmerarguide till Microsoft Windows 95: Nyckelämnen om programmering för Windows från Microsoft Windows Development Team . Teknisk referens (1:a upplagan). Redmond, Washington, USA: Microsoft Press . 1995-07-01. ISBN 1-55615-834-3 . ISBN 978-1-55615-834-6 . Hämtad 2016-05-26 .
- Oney, Walter (1995). Systemprogrammering för Windows 95 (1:a upplagan). Redmond, Washington, USA: Microsoft Press . ISBN 1-55615-949-8 . ISBN 978-1-55615-949-7 .
- Pietrek, Matt (november 1995). Windows 95-systemprogrammeringshemligheter . The Secrets Series (1:a upplagan). John Wiley & Sons, Inc. ISBN 1-56884-318-6 . ISBN 978-156884-318-6 . Hämtad 2016-05-26 .
- Hazzah, Karen (1997). Skriva Windows VxDs och enhetsdrivrutiner - Programmeringshemligheter för virtuella enhetsdrivrutiner ( 2:a utskriften, 2:a upplagan). Lawrence, Kansas, USA: Miller Freeman, Inc. ISBN 0-87930-438-3 . ISBN 978-0-87930-438-6 .
- Mitchell, Stan (1997-05-11). Schulman, Andrew (red.). Inuti Windows 95-filsystemet . Nötskalshandböcker (1:a uppl.). Sebastopol, Kalifornien, USA: O'Reilly & Associates, Inc. ISBN 1-56592-200-X . ISBN 978-1-56592-200-6 . Hämtad 2016-05-26 .
externa länkar
- Microsoft. "Windows 95-arkitekturkomponenter" . Microsoft . Arkiverad från originalet 2014-10-17 . Hämtad 2016-05-27 .
- Microsoft (2006-11-15). "Beskrivning av Windows 95-startprocessen" . 1.1. Microsoft . Q174018. Arkiverad från originalet 2014-02-14 . Hämtad 2016-05-27 .
- Microsoft (2013-10-26). "Förstå Win16Mutex" . 5.0. Microsoft . KB125867. Q125867. Arkiverad från originalet 2014-01-16 . Hämtad 2016-05-27 .