slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Systemy PowerPoint Presentation
Download Presentation
Systemy

Loading in 2 Seconds...

play fullscreen
1 / 35

Systemy - PowerPoint PPT Presentation


  • 182 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Systemy' - jessie


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

Systemy

Operacyjne

Piotr Arłukowicz

piotao@math.univ.gda.pl

rozruch systemu na przyk adzie windows 2000
Rozruch systemu na przykładzie Windows 2000
  • Uruchamianie systemu
  • Tryb awaryjny
  • Zamykanie systemu
uruchamianie systemu
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
uruchamianie systemu c d
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
dysk twardy
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
dysk twardy partycje
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
dysk twardy fdisk
Dysk twardy - fdisk

MS DOS (Windows 98):

dysk twardy fdisk1
Dysk twardy – fdisk 

MS DOS (Windows 98):

posta typowej partycji
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

uruchamianie systemu dok adniej
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
uruchamianie systemu dok adniej1
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
uruchamianie systemu dok adniej2
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
uruchamianie systemu dok adniej3
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
uruchamianie systemu dok adniej4
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
uruchamianie systemu dok adniej5
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
uruchamianie systemu dok adniej6
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
uruchamianie systemu dok adniej7
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
uruchamianie systemu dok adniej8
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
uruchamianie systemu dok adniej9
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:
uruchamianie systemu dok adniej10
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)
uruchamianie systemu dok adniej11
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
uruchamianie systemu dok adniej12
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
uruchamianie systemu dok adniej13
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%
uruchamianie systemu dok adniej14
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.
uruchamianie systemu dok adniej15
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
uruchamianie systemu dok adniej16
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
uruchamianie systemu dok adniej17
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ę”
tryb awaryjny
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
konsola odzyskiwania
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)
konsola odzyskiwania c d
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.
zamykanie systemu
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ń.