Architektura systemu Windows 9x
Seria systemów operacyjnych Windows 9x odnosi się do jądra , które leży w sercu systemu Windows 9x. Jego architektura jest monolityczna .
Podstawowy kod jest podobny w działaniu do MS-DOS . Jako 16-/32-bitowa hybryda wymaga obsługi MS-DOS do działania.
Pliki krytyczne
System Windows 95 uruchamia się przy użyciu następującego zestawu plików:
32-bitowy interpreter powłoki i wiersza poleceń:
- SHELL.DLL i SHELL32.DLL – interfejs API powłoki
- EXPLORER.EXE – powłoka systemu Windows i menedżer plików
- COMMAND.COM – plik wykonywalny powłoki wiersza poleceń
Rdzeń systemu Windows 95:
- KERNEL32.DLL i KRNL386.EXE — Windows API dla zasobów Windows
- ADVAPI32.DLL Funkcjonalność dodatkowa do jądra. Obejmuje funkcje rejestru systemu Windows oraz funkcje zamykania i ponownego uruchamiania
- GDI32.DLL i GDI.EXE — Graficzny interfejs urządzenia
- USER32.DLL i USER.EXE - implementacja GUI
- COMMCTRL.DLL i COMCTL32.DLL — wspólne elementy sterujące (interfejs użytkownika)
- DDEML.DLL Dynamic Data Exchange Management Library (DDEML) zapewnia interfejs, który upraszcza zadanie dodawania funkcji DDE do aplikacji
- MSGSRV32.EXE Działa jako 32-bitowy serwer wiadomości i nigdy nie pojawi się na liście zadań systemu Windows
- WIN.COM - odpowiedzialny za ładowanie GUI i części systemu Windows
Rejestr i inne pliki konfiguracyjne:
- SYSTEM.DAT , USER.DAT - zawiera rejestr systemu Windows
- MSDOS.SYS — zawiera niektóre ustawienia i zasoby rozruchowe niskiego poziomu, takie jak wyłączenie podwójnego buforowania i logo GUI
- WIN.INI i SYSTEM.INI - pliki konfiguracyjne z Windows 3.1, przetwarzane również w Windows 9x
Menedżer maszyny wirtualnej i menedżer konfiguracji:
- VMM32.VXD - Menedżer maszyny wirtualnej i domyślne sterowniki. Przejmuje rolę io.sys jako jądro
Instalowalny menedżer systemu plików:
- IFSHLP.SYS - umożliwia systemowi Windows wykonywanie bezpośrednich wywołań systemu plików z pominięciem metod MS-DOS
- IFSMGR.VXD — 32-bitowy sterownik dla instalowalnego systemu plików
- IOS.VXD I/O Supervisor, który kontroluje i zarządza wszystkimi systemami plików w trybie chronionym oraz sterownikami urządzeń blokowych
- MPREXE.EXE MPRSERV.DLL i MPR.DLL — router wielu dostawców, wymagany do uwierzytelniania sieci i profili użytkowników
- MSPWL32.DLL Biblioteka zarządzania listą haseł
Sterowniki urządzeń:
- IO.SYS - plik wykonywalny obsługujący wszystkie podstawowe funkcje, takie jak procedury wejścia/wyjścia , a także służy jako jądro, dopóki vmm32.vxd nie przejmie kontroli
- HIMEM.SYS - sterownik urządzenia DOS, który umożliwia programom DOS przechowywanie danych w pamięci rozszerzonej za pośrednictwem specyfikacji rozszerzonej pamięci
- SYSTEM.DRV, MMSOUND.DRV, COMM.DRV, VGA.DRV, MOUSE.DRV, BIGMEM.DRV, KEYBOARD.DRV — sterowniki 16-bitowe
- CP 1252.NLS, CP 437.NLS, UNICODE.NLS, LOCALE.NLS - układy klawiatury
- RMM.PDR Real Mode Mapper Urządzenie wirtualne
System może również wykorzystywać CONFIG.SYS , który zawiera ustawienia i polecenia wykonywane przed załadowaniem interpretera poleceń ) oraz AUTOEXEC.BAT , który jest plikiem wsadowym wykonywanym automatycznie po załadowaniu COMMAND.COM. Jednak te dwa pliki nie są krytyczne dla procesu rozruchu, ponieważ IO.SYS zawiera domyślne ustawienie dla obu, na wypadek nieobecności w systemie. W systemie Windows ME pliki CONFIG.SYS i AUTOEXEC.BAT nie są przetwarzane, a LOGO.SYS może służyć jako ekran powitalny.
Sekwencja rozruchowa
Proces uruchamiania systemu Windows 9x składa się z 6 faz. Pierwsze dwa z tych kroków są wspólne dla każdego systemu operacyjnego przy użyciu tradycyjnej kombinacji systemu BIOS i głównego rekordu rozruchowego .
Faza 1 — proces ładowania systemu BIOS ROM
ROM BIOS rozpoczyna wykonywanie pod adresem pamięci fizycznej FFFF0h. Podczas tej fazy system BIOS najpierw przeprowadza autotest podczas włączania , a następnie sprawdza, czy dysk rozruchowy znajduje się na dysku A. Jeśli dysk nie zostanie znaleziony na dysku A, system BIOS sprawdza obecność dysku twardego. Jeśli komputer jest wyposażony w system BIOS typu Plug and Play, system BIOS dodatkowo sprawdza pamięć RAM pod kątem adresów portów we/wy, linii przerwań i kanałów DMA dla urządzeń typu Plug and Play, wyłącza znalezione urządzenia, tworzy mapy używanych i nieużywanych zasobów i ponownie włącza urządzenia.
Faza 2 — główny rekord rozruchowy i sektor rozruchowy
Główny rekord rozruchowy jest ładowany pod adresem 7C00h i ładuje sektor rozruchowy partycji dysku systemu Windows . Sektor rozruchowy zawiera dyskowy program rozruchowy i bloków parametrów systemu BIOS , która wyszukuje lokalizację katalogu głównego i pliku IO.SYS, który następnie ładuje plik IO.SYS do pamięci.
Faza 3 - Inicjalizacja pliku IO.SYS
IO.SYS inicjuje minimalny sterownik tabeli alokacji plików i ładuje MSDOS.SYS do pamięci. Następnie wyświetla komunikat „Uruchamianie systemu Windows” w zależności od linii Boot-Delay w pliku MSDOS.SYS. Następnie ładuje LOGO.SYS i wyświetla obraz startowy na ekranie. Jeśli plik DRVSPACE.INI lub DBLSPACE.INI plik istnieje, ładuje również sterowniki dla skompresowanych dysków. Następnie system Windows próbuje otworzyć plik rejestru SYSTEM.DAT. Jeśli to się nie powiedzie, próbuje otworzyć SYSTEM.DA0. Jeśli skonfigurowano w MSDOS.SYS lub w rejestrze, włączone jest również podwójne buforowanie.
Faza 4 - KONFIG.SYS i konfiguracja trybu rzeczywistego
Windows 95 do Windows 98 analizuje teraz CONFIG.SYS i ładuje sterowniki trybu rzeczywistego MS-DOS . Windows ME to ignoruje. Jeśli plik CONFIG.SYS nie istnieje, plik IO.SYS ładuje sterowniki IFSHLP.SYS , HIMEM.SYS i SETVER.EXE . Windows rezerwuje wszystkie górne bloki pamięci do użytku z systemem operacyjnym Windows 95 lub do rozszerzonej pamięci . Windows 95 do Windows 98 wykonaj COMMAND.COM , aby przetworzyć AUTOEXEC.BAT. Ładuje zakończyć i pozostać rezydentem programy do pamięci. Windows ME ignoruje ten krok, ponieważ obsługa DOS w trybie rzeczywistym jest wyłączona, a ładowanie TSR może zagrozić stabilności systemu.
Faza 5 - zainicjuj sterowniki
IO.SYS uruchamia teraz WIN.COM . WIN.COM ładuje VMM32.VXD do pamięci lub uzyskuje do niego dostęp z dysku twardego. Ten plik zawiera najważniejsze sterowniki i jądro 9x. sterownik urządzeń wirtualnych w trybie rzeczywistym sprawdza duplikaty sterowników urządzeń wirtualnych, które znajdują się zarówno w folderze Windows\System\Vmm32, jak iw pliku VMM32.VXD. W przypadku duplikatów zostanie załadowany sterownik z katalogu Windows\System\Vmm32. Windows 95 do 98 wysyła teraz zapytania do sterowników trybu rzeczywistego, wywołując INT 2Fh i wyszukując sterowniki we wpisie rejestru HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD oznaczonym do załadowania jako plik zewnętrzny. Następnie Vmm32 analizuje sekcję [386 Enh] pliku Windows\System.ini i ładuje wymienione tam sterowniki. Niektóre ważne sterowniki są ładowane, nawet jeśli nie są wymienione w pliku Rejestr systemu Windows , SYSTEM.INI lub w katalogu Windows\System\Vmm32.
Po załadowaniu sterowników urządzeń wirtualnych trybu rzeczywistego następuje inicjalizacja sterownika w systemie Windows 95 do Windows 98. Następnie Vmm32 przełącza procesor z trybu rzeczywistego do trybu chronionego . Następnym krokiem jest inicjalizacja sterowników trybu chronionego, wykonywana w trzech fazach dla każdego urządzenia: krytyczna część inicjalizacji (kiedy przerwania są wyłączone), inicjalizacja urządzenia (kiedy dozwolone są wejścia/wyjścia plików) oraz faza InitComplete. Po zainicjowaniu sterownika ekranu system Windows przełącza się w tryb graficzny.
Faza 6 - Inicjalizacja Win32
Po załadowaniu wszystkich sterowników ładowane są pliki Kernel32.dll , gdi32.dll , Gdi.exe, user32.dll , User.exe, shell32.dll i Explorer.exe . Następnym krokiem w procesie uruchamiania jest załadowanie sieciowego . Użytkownik jest proszony o zalogowanie się do skonfigurowanej sieci. Gdy użytkownik się loguje, jego ustawienia pulpitu są ładowane z rejestru lub konfiguracja pulpitu używa pulpitu domyślnego. Następnie system Windows uruchamia programy zdefiniowane w folderze Autostart, WIN.INI oraz programy zdefiniowane w kluczach rejestru Run, RunOnce, RunServices i RunServicesOnce wewnątrz gałęzi HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion i HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\. Po uruchomieniu każdego programu w kluczu rejestru RunOnce jest on usuwany z klucza.
Jądro
Jądro systemu Windows 9x jest jądrem 32-bitowym z pamięcią wirtualną . Sterowniki są dostarczane przez pliki .VXD lub, od wersji Windows 98, można użyć nowszych sterowników WDM . Jądro systemu MS-DOS pozostaje jednak rezydujące w pamięci. Windows użyje starych 16-bitowych sterowników MS-DOS, jeśli są zainstalowane, z wyjątkiem systemu Windows Me. W systemie Windows Me system DOS nadal działa, ale system Windows zignoruje wszelkie próby załadowania sterowników urządzeń podczas analizowania pliku AUTOEXEC.BAT i przeniesie rozpoznane zmienne środowiskowe z pliku CONFIG.SYS do rejestru systemu Windows.
Zobacz też
Dalsza lektura
- Schulman, Andrew (listopad 1994). Nieautoryzowany system Windows 95 — zestaw zasobów dla programistów (wyd. 1). Foster City, Kalifornia, USA: John Wiley & Sons, Inc. ISBN 1-56884-305-4 . ISBN 978-1-56884-305-6 .
- Schulman, Andrzej; Brown, Ralf D .; Maxey, David; Michels, Raymond J.; Kyle, Jim (1994) [listopad 1993]. Nieudokumentowany DOS: przewodnik programisty po zarezerwowanych funkcjach i strukturach danych MS-DOS - rozszerzony o MS-DOS 6, Novell DOS i Windows 3.1 (wyd. 2). Reading, Massachusetts: Addison Wesley . ISBN 0-201-63287-X . ISBN 978-0-201-63287-3 . (strony xviii+856+vi, dyskietka 3,5 cala) Errata: [1] [2]
-
Paweł, Matthias R. (2002-04-10). „[fd-dev] Dostęp HMA z TSR” . freedos-dev . Zarchiwizowane od oryginału w dniu 09.09.2017 . Źródło 2017-09-09 .
[...] MS-DOS 7.0+ [...] wprowadził [...] w większości nieudokumentowaną strukturę danych RMD zwykle ulokowaną w HMA . Jądro zbiera i zapisuje konfigurację i dane sterownika trybu rzeczywistego podczas rozruchu (typ sterownika, przerwania przechwycone przez sterownik, CONFIG.SYS linii wywołania itp.) i przechowuje te informacje w [...] skomplikowanej [...] rosnącej strukturze danych. Przypuszczalnie [...] przeznaczony do użycia przez rdzeń systemu Windows w celu uzyskania lepszego obrazu załadowanych sterowników trybu rzeczywistego [...] lub nawet próby odłączenia lub rozładowania niektórych z nich, [...] jest używany tylko w bardzo ograniczonym zakresie ([...] niektóre informacje znajdują odzwierciedlenie w plikach dziennika tworzonych podczas [...] uruchamiania, a niektóre części [...] menedżera konfiguracji również z tego korzystają), [. ..] pozostawiając miejsce [...] poza stroną techniczną [...], ponieważ nic ciekawego nie jest udokumentowane [...]
- Paweł, Matthias R. (2002-08-13). „Suche freien Speicherbereich unterhalb von 1 MB, der nicht von OS überschrieben wird” (w języku niemieckim). Grupa dyskusyjna : de.comp.lang.assembler.x86 . Zarchiwizowane od oryginału w dniu 04.09.2017 . Źródło 2017-09-03 . (Uwaga. Również w przypadku korzystania z MS-DOS 7+ HMA i \WINDOWS\IOS.LOG.)
-
Sweger, Kristofer (2007) [2002-07-15]. „ANSIPLUS i Windows” . Zarchiwizowane od oryginału w dniu 2021-11-28 . Źródło 2021-11-28 .
[…] Kod ANSIPLUS nie może zostać załadowany do HMA pod MS-DOS 7 (tylko Windows 9x), ponieważ najwyraźniej nie ma wystarczającej ilości nieużywanej pamięci HMA. […]
-
Paweł, Matthias R. (2004-06-17). „Re: Losowe zawieszanie się w systemie DR-DOS 7.03” . [email protected]; Konferencja FidoNet : ALT_DOS . Zarchiwizowane od oryginału w dniu 2019-04-28 . Źródło 2019-04-28 .
[...] wszystkie wersje MS-DOS przed Windows 95 [...] używały pliku COMMAND.COM w stylu COM, który ma specjalną sygnaturę na początku pliku [...] pytany przez BIOS MS-DOS przed załadowaniem powłoki, ale nie przez BIOS DR-DOS [...] COMMAND.COM [...] sprawdzałby, czy działa w „poprawnej” wersji DOS, więc jeśli załadujesz ich COMMAND.COM pod DR-DOS, otrzymasz komunikat o błędzie „Zła wersja” i ich COMMAND.COM zakończy się, więc DR-DOS [...] wyświetli komunikat o błędzie „Zły lub brakujący interpreter poleceń” (jeśli DR-DOS próbował załadować procesor poleceń SHELL= po zakończeniu przetwarzania CONFIG.SYS). W takim przypadku można było wprowadzić ścieżkę do prawidłowego pliku DR-DOS COMMAND.COM (C:\DRDOS\COMMAND.COM) i wszystko poszło dobrze. Teraz sytuacja się zmieniła od czasu MS-DOS 7.0 [...] COMMAND.COM stał się wewnętrznie plikiem w stylu EXE, więc nie ma magicznego [...] podpisu [...] do sprawdzenia [...], więc nie ma możliwości, aby DR-DOS wykluczył niekompatybilny COMMAND.COM. Co więcej, ich COMMAND.COM nie sprawdza już żadnych wersji, ale [...] nie działa pod DR-DOS [...] po prostu się zawiesza [...] PC DOS COMMAND.COM działa dobrze pod DR-DOS [...]
[3] [4] - Król, Adrian (1994). Wewnątrz systemu Microsoft Windows 95 (wyd. 2). Redmond, Waszyngton, USA: Microsoft Press . ISBN 1-55615-626-X . ISBN 978-1-55615-626-7 .
- Podręcznik programisty systemu Microsoft Windows 95: Kluczowe tematy dotyczące programowania w systemie Windows autorstwa zespołu deweloperów systemu Microsoft Windows . Dokumentacja techniczna (wyd. 1). Redmond, Waszyngton, USA: Microsoft Press . 1995-07-01. ISBN 1-55615-834-3 . ISBN 978-1-55615-834-6 . Źródło 2016-05-26 .
- Oney, Walter (1995). Programowanie systemów dla Windows 95 (wyd. 1). Redmond, Waszyngton, USA: Microsoft Press . ISBN 1-55615-949-8 . ISBN 978-1-55615-949-7 .
- Pietrek, Matt (listopad 1995). Sekrety programowania systemu Windows 95 . Seria Secrets (wyd. 1). John Wiley & Sons, Inc. ISBN 1-56884-318-6 . ISBN 978-156884-318-6 . Źródło 2016-05-26 .
- Hazza, Karen (1997). Pisanie Windows VxD i sterowników urządzeń - tajemnice programowania dla sterowników urządzeń wirtualnych (drugi druk, wyd. 2). Lawrence, Kansas, USA: Miller Freeman, Inc. ISBN 0-87930-438-3 . ISBN 978-0-87930-438-6 .
- Mitchell, Stan (11.05.1997). Schulman, Andrew (red.). Wewnątrz systemu plików Windows 95 . Podręczniki w pigułce (wyd. 1). Sebastopol, Kalifornia, USA: O'Reilly & Associates, Inc. ISBN 1-56592-200-X . ISBN 978-1-56592-200-6 . Źródło 2016-05-26 .
Linki zewnętrzne
- Microsoftu. „Składniki architektury systemu Windows 95” . Microsoftu . Zarchiwizowane od oryginału w dniu 2014-10-17 . Źródło 2016-05-27 .
- Microsoft (2006-11-15). „Opis procesu uruchamiania systemu Windows 95” . 1.1. Microsoftu . Q174018. Zarchiwizowane od oryginału w dniu 2014-02-14 . Źródło 2016-05-27 .
- Microsoft (2013-10-26). „Zrozumienie Win16Mutex” . 5.0. Microsoftu . KB125867. Q125867. Zarchiwizowane od oryginału w dniu 16.01.2014 . Źródło 2016-05-27 .