1 / 35

Systemy

Systemy. Operacyjne. Piotr Arłukowicz. piotao@math.univ.gda.pl. Rozruch systemu na przykładzie Windows 2000. Uruchamianie systemu Tryb awaryjny Zamykanie systemu. Uruchamianie systemu. Składniki procesu uruchamiania: Program ładujący

jessie
Download Presentation

Systemy

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Systemy Operacyjne Piotr Arłukowicz piotao@math.univ.gda.pl

  2. Rozruch systemu na przykładzie Windows 2000 • Uruchamianie systemu • Tryb awaryjny • Zamykanie systemu

  3. 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

  4. 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

  5. Dysk twardy • Partycje: logiczne, wydzielone obszary dysku twardego,sformatowane w określonym systemie plików • Cele partycjonowania: • Pokonanie ograniczeń technicznych (stare wersje FAT, ograniczenia BIOSu – problem 1023 cylindra w adresowaniu, itp.) • Izolacja danych – blokada propagacji uszkodzeń • Zabezpieczenie przed przepełnieniem – osobne partycje na ‘zbiorniki’ • Dopasowanie do wymagań: każda partycja może spełniać inne zadania • Historia: • FAT – 1980 dla QDOS (pochodzi od systemu CP/M), pojemność do 2MB • FAT16 – 1983, pojemność dysków do 32MB • FAT32 – 1997, pojemność teoretycznie do 8TB, praktycznie do 127GB (od Win95osr2) • http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q184006& • VFAT – V od Virtual – długie nazwy plików w windows 95

  6. Dysk twardy - partycje • Primary partition – partycje podstawowe • Extended partition – partycje rozszerzone • Programy do tworzenia partycji • fdisk (DOS, Linux, BSD i inne) • cfdisk • sfdisk • Windows: wymagana jedna partycja • Linux: wymagana jedna partycja, wskazane 2 lub więcej

  7. Dysk twardy - fdisk MS DOS (Windows 98):

  8. Dysk twardy – fdisk  MS DOS (Windows 98):

  9. Dysk twardy - fdisk FreeBSD:

  10. Dysk twardy - fdisk GNU/Linux:

  11. Dysk twardy - fdisk GNU/Linux:

  12. Dysk twardy – „fdisk” Windows XP:

  13. Postać typowej partycji • Podział dysku na partycje zależy od przeznaczenia dysku • Uwzględnić należy system operacyjny oraz jego zadania Podział dysku typowego „Kowalskiego” – oczywiście dla windows Windows Linux /boot / /usr /home /var MBR 1 2 3 4

  14. 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

  15. 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

  16. Uruchamianie systemu - dokładniej Program Ntldr – c.d. • Uruchomienie programu ntdetect.comJest 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

  17. 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

  18. 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

  19. 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 0x00000078 (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

  20. 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

  21. 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

  22. 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

  23. 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:

  24. 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)

  25. 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

  26. 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

  27. 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%

  28. 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.

  29. 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

  30. 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

  31. 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ę”

  32. 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

  33. Konsola odzyskiwania • Co to jest? • 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)

  34. 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.

  35. 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ń.

More Related