Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Systemy Operacyjne
2
Uruchamianie systemu Składniki procesu uruchamiania: Program ładujący
Tryb 16-bitowy, czyta i ładuje sektory startowe partycji Sektor startowy 16-bitowy, czyta główny katalog żeby załadować Ntldr Ntldr 16-bitowy tryb rzeczywisty, 32-bitowy tryb chroniony, uruchamia stronicowanie, czyta boot.ini, wyświetla menu startowe i ładuje ntoskrnl.exe, bootvid.dll, hal.dll oraz sterowniki urządzeń potrzebne do startu Ntoskrnl.exe 32-bitowy tryb chroniony ze stronicowaniem – inicjalizuje podsystem wykonawczy i uruchamia sterowniki urządzeń, przygotowuje system do uruchamiania programów i uruchania smss.exe Smss Aplikacja 32-bitowa, ładuje podsystem win32 (który zawiera win32k.sys oraz csrss.exe), uruchamia proces winlogon
3
Uruchamianie systemu c.d.
Winlogon Aplikacja 32-bitowa, uruchamia zarządcę kontroli usług (SCM) i podsystem zabezpieczeń lokalnych, następnie wyświetla okno logowania Service control manager (SCM) Aplikacja 32-bitowa, ładuje i inicjalizuje sterowniki urządzeń uruchamianych automatycznie oraz usługi win32
4
Uruchamianie systemu - dokładniej
Program ładujący Jest wczytywany przez BIOS z Master Boot Record Jest zależny od systemu plików (FAT32/NTFS) Dostęp do plików na dysku w trybie tylko do odczytu Zadanie1 – udostępnienie informacji o dyskach logicznych Zadanie2 – załadowanie do pamięci programu Ntldr Zadanie3 – przekazanie sterowania do programu Ntldr
5
Uruchamianie systemu - dokładniej
Program Ntldr Rozpoczyna działanie w trybie rzeczywistym Widzi tylko podstawową pamięć – poniżej 1MB Przełącza procesor w tryb chroniony (adresowanie 32 bitowe) Uruchamia stronicowanie pamięci do 16MB Dostęp do dysków odbywa się w trybie rzeczywistym (BIOS) Możliwy jest dostęp do podkatalogów i partycji Odczytanie pliku boot.ini Jeżeli w boot.ini jest parę opcji startowych, pojawia się menu Jeżeli w boot.ini zadeklarowano ładowanie systemu MSDOS to odbywa się ładowanie bootsect.dos, przełączenie do trybu 16-bitowego i wywołanie ponownie programu ładującego z MBR dla bootsect.dos
6
Uruchamianie systemu - dokładniej
Program Ntldr – c.d. Uruchomienie programu ntdetect.com Jest to 16-bitowy program do pobierania informacji z BIOSU. Pobiera on następujące informacje: Informację o dacie i czasie Dane o rodzajach magistral (ISA, PCI, EISA, MCA, itp.) Dane o liczbie, rozmiarze i typie napędów dyskowych Informacje o rodzaju urządzeń wskazujących (mysz, itp.) Informacje o liczbie i typie portów równoległych Program zapisuje te informacje w rejestrze w kluczu: HKLM\HARDWARE\DESCRIPTION Czyszczenie ekranu i wyświetlenie informacji o ładowaniu Naciśnięcie F8 uruchamia zaawansowane menu startowe
7
Uruchamianie systemu - dokładniej
Program Ntldr – c.d. Rozpoczęcie ładowania systemu z partycji startowej: Pliki binarne jądra i warstwy HAL (ntoskrnl.exe, hal.dll) Odczytuje rejestr aby dowiedzieć się jakie sterowniki załadować Lokalizuje sterowniki wg. ich opisu Ładuje sterownik obsługi danego typu partycji (tej ze sterownikami) Ładuje sterowniki startowe (tylko ładuje) Przygotowuje rejestry procesora do uruchomienia ntoskrnl.exe
8
Uruchamianie systemu - dokładniej
Program Ntldr – opcje pliku boot.ini [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /NoExecute=OptIn /BASEVIDEO Wyświetlanie GUI odbywa się w trybie karty standardowego VGA /BOOTLOG Rejestracja przebiegu uruchomienia w pliku %SystemRoot%\ntbtlog.txt
9
Uruchamianie systemu - dokładniej
Program Ntldr – opcje pliku boot.ini /BREAK Zatrzymanie uruchomienia w momencie załadowania warstwy HAL i oczekiwanie na połączenie z programem uruchomieniowym jądra. Uruchomienie bez opcji /DEBUG powoduje pojawienie się niebieskiego ekranu z kodem zatrzymania 0x (PHASE0_EXCEPTION) /BURNMEMORY= Określenie ilości pamięci, której system nie wykorzysta – NIE jest to określenie ilości pamięci, którą system MOŻE wykorzystać /DEBUG Włącza tryb umiejscawiania błędów jądra systemu
10
Uruchamianie systemu - dokładniej
Program Ntldr – opcje pliku boot.ini /FASTDETECT Opcja domyślna – pominięcie wyszukiwania urządzeń szeregowych i równoległych (bez tego działa jakby podano /NTDETECT i będzie wyszukiwać urządzenia KERNEL= /HAL= Pozwala podać nazwę binarnego pliku jądra (domyślnie ntoskrnl.exe) oraz warstwy HAL (domyślnie hal.dll). Dzięki temu można wybrać pomiędzy wersją testową a handlową /MAXMEM= Praca w trybie ograniczenia pamięci, np. do 128 MB. System nie użyje więcej pamięci, niż zostanie podane w tej opcji
11
Uruchamianie systemu - dokładniej
Program Ntldr – opcje pliku boot.ini /NODEBUG Wyłączenie wszystkich opcji dotyczących lokalizacji błędów (/DEBUG, /DEBUGPORT i /BAUDRATE) /NOGUIBOOT Wyłącza wyświetlanie i pracę sterownika graficznego działającego podczas uruchamiania systemu /NUMPROC= Określa maksymalną liczbę procesorów, które mogą zostać użyte w systemie wieloprocesorowym /ONECPU Korzystanie tylko z jednego procesora na maszynie wieloprocesorowej
12
Uruchamianie systemu - dokładniej
Program Ntldr – opcje pliku boot.ini /PCILOCK Wyłączenie dynamicznego przydzielania przerwań i zasobów IO dla urządzeń PCI i korzystanie tylko z tego, co ustalił BIOS /SAFEBOOT: Opcja bezpiecznego rozruchu systemu: do wyboru są opcje MINIMAL, NETWORK i DSREPAIR. Opcje te są zdefiniowane w kluczu rejestru HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot
13
Uruchamianie systemu - dokładniej
Program Ntldr – opcje pliku boot.ini /SOS Włączenie wyświetlania nazw sterowników urządzeń, wersji systemu, wersję kompilacji, liczbę dostępnej pamięci i liczbę procesorów /TIMERS= Ustawia rozdzielczość zegara systemowego dla Hal w wersji wieloprocesorowej (domyślna: 7.8ms). Rozdzielczości ustawia się wg. tabeli: Setki nanosekund Milisekundy 9766 0.98 19532 2.00 39063 3.90 78125 7.80
14
Uruchamianie systemu - dokładniej
Program Ntldr – opcje pliku boot.ini /USE8254 Nakazanie warstwie HAL użycia układu czasowego 8254 w systemach ze starszym BIOSEM /YEAR= Ustawienie arbitralne roku (rok z zegara jest ignorowany)
15
Uruchamianie systemu - dokładniej
Uruchomienie kernela ntoskrnl.exe Faza 0: Uruchomienie i inicjalizacja menedżera pamięci Inicjalizacja zarządcy obiektów Uruchomienie monitora bezpieczeństwa odwołań Uruchomienie menedżera procesów Uruchomienie „procesu”, który nazywa się „Idle” – proces „bezczynności” Inicjalizacja menedżera Plug and Play Faza 1: przygotowanie systemu do obsługi przerwań zgłaszanych przez urządzenia Wywołanie startowego sterownika karty graficznej (..\system32\bootvid.dll) Inicjalizacja modułu menedżera energii
16
Uruchamianie systemu - dokładniej
Uruchomienie kernela ntoskrnl.exe – c.d., faza 1 Inicjalizacja czasu systemowego (zapisywanego jako czas rozruchu systemu) Inicjalizacja i rozpoczęcie pracy pozostałych procesorów w systemach wieloprocesorowych Pasek postępu ustawiany jest na 5% …. Wczytanie obsługi języków narodowych … Uruchamia się zarządca pamięci podręcznej (schowek) Inicjalizacja rejestru Inicjalizacja urządzeń typu Plug and Play przez PnP BIOSu
17
Uruchamianie systemu - dokładniej
Uruchomienie kernela ntoskrnl.exe – c.d., faza 1 Uruchomienie podsystemu Lokalnego Wywoływania Procedur (LPC) Utworzenie pliku z logiem (jeżeli było to wymagane) – bootlog.txt … Pasek postępu ustawiany jest na 25% Inicjalizacja menedżera podsystemów IO – zajmuje kolejne 50%, uruchomienie wszystkich sterowników oraz systemu Windows Media Instrumentation (WMI) poprzez Windows Driver Model (WDM) 85% Wywołanie monitora bezpieczeństwa odwołań (lsass.exe) Wywołanie podsystemu menedżera sesji – smss.exe 100%
18
Uruchamianie systemu - dokładniej
Uruchomienie smss Pierwszy proces pracujący w trybie użytkownika Odpowiedzialny za tworzenie środowiska Jest to proces ‘zaufany’, mogący wywoływać bezpośrednio funkcje API jądra (zamiast funkcji API win32 – który jeszcze nie działa) Uruchomienie podsystemu win32 Uruchomienie podsystemu Centrum Wykonawczego Finalizowanie inicjalizacji rejestru, dopisywanie brakujących kluczy itp.
19
Uruchamianie systemu - dokładniej
Uruchomienie smss – szczegóły działania głównego wątku Utworzenie obiektu portu LPC i wątków oczekujących na zlecenia użytkownika (np. załadowanie podsystemu lub utworzenie sesji) Zdefiniowanie symbolicznych odnośników dla urządzeń MSDOS (takich jak LPT1 lub COM1) Uruchomienie wszystkich programów przeznaczonych do wykonania w czasie startu systemu Wykonuje opóźnione zmiany nazw plików i ich usuwanie Otwiera znane biblioteki DLL Tworzy dodatkowe pliki stronicowania (swap także) Inicjalizuje rejestr a menedżer konfiguracji dopisuje brakujące klucze Tworzy systemowe zmienne środowiskowe
20
Uruchamianie systemu - dokładniej
Uruchomienie smss – szczegóły działania głównego wątku Ładuje część podsystemu Win32 trybu jądra (win32k.sys) Określa położenie tego pliku na podstawie danych z rejestru Kod win32k korzysta ze sterownika karty graficznej w celu przełączenia się na rozdzielczość zdefiniowaną w profilu domyślnym. W tym momencie następuje przełączenie się z trybu VGA uruchomieniowego do trybu określonego dla systemu Uruchomienie podsystemu procesów, włącznie z csrss.exe (podsystemy POSIX oraz OS/2 uruchamiane są na żądanie i nie następuje to w tym momencie) Uruchomienie procesu logowania użytkownika (winlogon) Wejście w nieskończoną pętlę na uchwytach procesów csrss oraz winlogon. Zakończenie jednego z tych procesów powoduje załamanie systemu i wymuszone zakończenie pracy
21
Uruchamianie systemu - dokładniej
Uruchomienie winlogon Utworzenie początkowego okna i elementów pulpitu Załadowanie bibliotek DLL Utworzenie procesu menedżera kontroli usług (\system32\services.exe) Services ładuje wszystkie usługi i sterowniki urządzeń, zaznaczone jako uruchamiane automatycznie Ładuje także podsystem lokalnego bezpieczeństwa i uwierzytelniania (\system32\lsass.exe) Aktualizuje rejestr, zapisując w nim „ostatnią znaną dobrą konfigurację”
22
Tryb awaryjny Co to jest tryb awaryjny?
jest to minimalistyczna konfiguracja sterowników i usług, umożliwiająca prawidłowe załadowanie systemu Tryb zapożyczony z windows 98/me Wejście do menu wyboru tego trybu – po wciśnięciu F8 Tryby awaryjne do wyboru: Tryb awaryjny Tryb awaryjny z obsługą sieci Tryb awaryjny z wierszem poleceń (tutaj zamiast Eksploratora ładowany jest program cmd.exe) Sterowniki ładowane z listy „SafeBoot” Pierwszy program użytkownika: smss.exe Uruchamia on następnie chkdsk sprawdzający dyski
23
Konsola odzyskiwania Co to jest? Kiedy może się przydać?
Jest to narzędzie pozwalające uratować system w przypadkach, gdy nastąpiło jego uszkodzenie nieusuwalne z poziomu trybu awaryjnego Kiedy może się przydać? Gdy przestanie działać jakiś sterownik startowy (który ładuje się zawsze niezależnie od trybu) Gdy uszkodzony zostanie jakiś krytyczny komponent systemu Gdy uszkodzony zostanie twardy dysk uniemożliwiając załadowanie systemu Gdy zamazany zostanie rekord ładujący MBR Wejście do konsoli: poprzez płytę instalacyjną i wybór naprawy systemu Określenie systemu przeznaczonego do naprawy (w przypadku gdy jest ich więcej)
24
Konsola odzyskiwania – c.d.
Należy podać hasło administratora (mimo to dostępne będą jedynie katalogi zawierające kluczowe komponenty systemu) Uruchomione jest jądro systemu, które zawiera wszystkie możliwe sterowniki i obsługę systemów plików FAT32, NTFS, dysków SCSI itp. Przebieg uruchamiania jest określony w pliku txtsetup.sif w katalogu i386 Jako pierwszy uruchamia się menedżer sesji (i386\system32\smss.exe) Menedżer ten wyświetla menu z opcjami naprawy lub instalacji W trakcie instalacji to on odpowiada za obsługę wyboru partycji instalacyjnej raz za kopiowanie plików Konsola ratownicza działa dzięki dwóm sterownikom załadowanym przez smss: spcmdcon.sys oraz setupdd.sys.
25
Zamykanie systemu Zamykanie systemu jest wykonywane przez podsystem win32 Za obsługę zamknięcia odpowiada proces csrss Csrss przekazuje żądanie do ukrytego okna procesu winlogon Winlogon woła jeszcze funkcję zamykającą system ze specjalnymi znacznikami Csrss przechwytuje to wywołanie i wysyła żądanie zakończenia do wszystkich procesów użytkownika interaktywnego (5 sekund czekania max na zakończenie każdego z nich lub okno dialogowe) Zakończone zostają wszystkie procesy konsolowe Zakończona zostaje praca usług systemowych Przekazane jest wszystkim podsystemom sterowników, IO oraz pamięci i rejestru, że system jest zamykany, aby mogły one opróżnić bufory IO, i zapisać wszelkie zmiany na dysk (zmiany w rejestrze, stany pamięci, itp.) Wyłączane są usługi PnP, centrum wykonawczego, menedżera IO, konfiguracji, pamięci, a na końcu menedżera energii, który ostatecznie wyłącza system, zależnie od ustawień.
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.