SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
description
Transcript of SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Systemy Operacyjne
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Architektura Windows
Podstawowe elementy systemu Windows XP – w skrócie
• Pamięć chroniona• Pamięć wirtualna• Wielozadaniowość• Wieloprocesorowość równoległa• Warstwa uniezależnienia od sprzętu (HAL)• Technologia DirectX
Interfejsy systemu operacyjnegoInterfejs sprzętowy• SterownikiInterfejs Programisty• API, funkcje systemoweInterfejs użytkownika• Shell• Powłoka• Tekstowy interpreter poleceń• Graficzny interfejs użytkownika (GUI)
Budowa systemu operacyjnegoKomponenty nowoczesnego systemu
operacyjnego:
• Praca w trybie użytkownika– Systemowe procesy pomocnicze– Procesy usługowe– Aplikacje użytkownika– Podsystemy środowiskowe
Budowa systemu operacyjnegoKomponenty nowoczesnego systemu
operacyjnego:
• Praca w trybie jądra– Centrum wykonawcze– Jądro systemu– Sterowniki urządzeń– Warstwa uniezależnienia od sprzętu– System okien i grafiki
Budowa systemu operacyjnego
• Systemowe procesy pomocnicze(procesy usług dodatkowych lub dedykowanych)
– Proces logowania użytkownika– Menedżer sesji– Pozostałe procesy, które nie są uruchamiane przez
menedżera kontroli usług
Budowa systemu operacyjnego
• Procesy usługowe(zapewniają usługi dla podsystemu win32)
– Mechanizm szeregowania zadań (ang. task manager)– Spooler (ang. simultaneous peripheral operations on-
line)– Dla Microsoft SQL Server lub Microsoft Exchange
Server – dodatkowe komponenty
Budowa systemu operacyjnego
• Aplikacje użytkownika(pięć „rodzajów” ze względu na zgodność)
– Win32– Windows 3.1– MS-DOS– POSIX– OS/2 1.2
Budowa systemu operacyjnego
• Podsystemy środowiskowe(umożliwiają aplikacjom użytkownika dostęp do wewnętrznych usług systemu)
– Win32– POSIX– OS/2
Budowa systemu operacyjnego
• Centrum wykonawcze(podstawowe usługi systemu)
– Zarządzanie pamięcią– Zarządzanie procesami– Zarządzanie wątkami– Obsługa bezpieczeństwa– Procedury i przetwarzanie I/O– Komunikacja międzyprocesowa IPC
Budowa systemu operacyjnego
• Jądro systemu(kernel – niskopoziomowe funkcje systemu)
– Szeregowanie wątków– Obsługa przerwań– Obsługa wyjątków – Synchronizacja międzyprocesowa
Budowa systemu operacyjnego
• Sterowniki urządzeń(device drivers)
– Obsługa urządzeń różnego typu– Tłumaczenie wywołań funkcji I/O na konkretne
operacje I/O– Obsługa systemów plików– Obsługa sterowników sieciowych
Budowa systemu operacyjnego
• Warstwa uniezależnienia od sprzętu(hardware abstraction layer - HAL)
– Obsługa urządzeń– Obsługa systemów plików– Obsługa sterowników sieciowych– Tłumaczenie wywołań funkcji I/O na konkretne
operacje I/O
Budowa systemu operacyjnego
• System okien i grafiki(obsługa graficznego interfejsu użytkownika, GDI oraz USER)
– Obsługa okien– Obsługa kontrolek interfejsu użytkownika– Rysowanie
Budowa systemu operacyjnego
• Architektura uproszczona
Systemowe procesy
pomocnicze
Tryb użytkownika
Aplikacje użytkownika
Podsystemy środowiskowe
Biblioteki podsystemów
Centrum wykonawcze
Jądro Sterowniki urządzeń
Warstwa uniezależnienia od sprzętu
System okien i grafiki
Tryb jądra
Procesy usługowe
Budowa systemu operacyjnego• Podsystem Win32
– Proces podsystemu (csrss.exe) zapewnia: Windows nie może bez niego działać (OS2, POSIX mogą zostać
wyłączone)
Obsługa okien konsoli tekstowych Tworzenie i niszczenie procesów i wątków Częściowa obsługa procedur 16-bitowej maszyny wirtualnej
DOSa Kilka funkcji związanych z obsługą języków narodowych Kilka funkcji różnych (np. GetTempFileName,
DefineDOSDevice)
Budowa systemu operacyjnego• Podsystem Win32
– Sterownik urządzeń trybu jądra (win32k.sys) zapewnia: Menedżera okien (kontrola wyświetlania okien, zarządzanie
ekranem, obsługa I/O klawiatury, myszy itp, przekazywanie komunikatów do aplikacji)
Interfejs urządzeń graficznych GDI (funkcje do rysowania ogólnie)
– Biblioteki systemowe (kernel32.dll, advapi32.dll, user32.dll, gdi32.dll) Tłumaczenie udokumentowanych funkcji Win32 API na
odpowiednie wywołania nieudokumentowanych usług systemowych jądra z plików ntoskrnl.exe oraz win32k.sys
Budowa systemu operacyjnego
• Podsystem POSIX(Portable Operating System Interface)
Obecność funkcji rozwidlania procesów (ang. fork)– Obsługa „twardych” dowiązań (ang. hardlinks)– Obsługa sygnałów, błędów urządzeń, wyjątków itp.– Obsługa przetwarzania strumieniowego– Obsługa czasu– Obsługa plików i katalogów– Operacje wejścia-wyjścia– Wsparcie dla API udostępnianego przez biblioteki
ANSI C– Zarządzanie procesami
Budowa systemu operacyjnego
• Podsystem POSIX(Portable Operating System Interface)
– Windows 2000 implementuje tylko standard POSIX.1 w ograniczonym zakresie
– Żaden program uruchomiony w trybie POSIX nie może korzystać z innego podsystemu (np. win32)
– Skutek: niemożność przeniesienia na system Windows programów napisanych pod system Unix
– Microsoft wydał rozszerzenie podsystemu POSIX o nazwie Interix (ponad 2000 funkcji unixowych oraz ponad 300 unixopodobnych narzędzi i programów)
– MKS NuTRACKER firmy Mortice Kern Systems Inc (www.mks.com)
Budowa systemu operacyjnego
• Podsystem OS/2(obsługa jedynie interfejsu OS/2 1.2)
– Obsługuje jedynie 16-bitowe aplikacje tekstowe– Obsługuje programy korzystające z mechanizmu
video I/O.– Microsoft rozprowadzał zastępczy podsystem powłoki
OS/2 1.2 Presentation Manager dla Windows NT– Pakiet ten nie obsługiwał aplikacji wymagających OS/2
2.x
Budowa systemu operacyjnego
• Podsystemy w XP
Budowa systemu operacyjnego• Centrum Wykonawcze - funkcje
(górna warstwa ntoskrnl.exe – części pracującej w trybie jądra)
– Funkcje opublikowane i dostępne z trybu użytkownika. Nazywane są one usługami systemowymi i znajdują się w ntdll. Większość jest dostępna przez win32 API lub interfejsy innych podsystemów
– Funkcje dostępne jedynie z trybu jądra, opublikowane i udokumentowane w pakietach Windows 2000 DDK i Windows 2000 Installable File System (IFS) Kit.
– Funkcje udostępniane i dostępne z trybu jądra, ale nie udokumentowane w DDK lub IFS (np. funkcje sterownika video w trakcie rozruchu systemu).
– Funkcje zdefiniowane jako symbole globalne, ale nie udostępniane; są to wewnętrzne funkcje pomocnicze, wołane z poziomu ntoskrnl (np. zarządzanie IO lub pamięcią).
– Funkcje określone jako wewnętrzne dla modułu, które nie są symbolami globalnymi.
Budowa systemu operacyjnego• Centrum Wykonawcze - komponenty
(górna warstwa ntoskrnl.exe – części pracującej w trybie jądra)
– Menedżer konfiguracji – odpowiada za implementację i zarządzanie rejestrem systemowym
– Menedżer procesów i wątków – tworzenie i niszczenie procesów i wątków, funkcje zaimplementowane są niskopoziomowo w jądrze a na tym poziomie jest dodana semantyka i funkcjonalność
– Monitor bezpieczeństwa odwołań – wymuszanie polityki bezpieczeństwa na komputerze lokalnym, prowadzi na bieżąco kontrolę obiektów i zasobów
Budowa systemu operacyjnego• Centrum Wykonawcze - komponenty
(górna warstwa ntoskrnl.exe – części pracującej w trybie jądra)
– Menedżer I/O – implementacja niezależnych od sprzętu operacji IO oraz przekierowanie ich do odpowiednich sterowników urządzeń
– Menedżer Plug and Play – określa, które sterowniki są potrzebne do konkretnego działania i ładuje je, przyznaje zasoby (IRQ, DMA, itp.), dodatkowo wysyła komunikaty o zmianie stanu urządzeń
Budowa systemu operacyjnego• Centrum Wykonawcze - komponenty
(górna warstwa ntoskrnl.exe – części pracującej w trybie jądra)
– Menedżer energii – koordynuje zdarzenia związane z poborem mocy przez system i generuje komunikaty dotyczące zarządzania energią
– Procedury instrumentacji zarządzania Windows WDM (ang. WDM Windows Management Instrumentation) – pozwalają sterownikom na publikację informacji na temat wydajności i konfiguracji a także na odbieranie poleceń usług od WMI w trybie użytkownika
Budowa systemu operacyjnego• Centrum Wykonawcze - komponenty
(górna warstwa ntoskrnl.exe – części pracującej w trybie jądra)
– Menedżer pamięci podręcznej – zwiększanie wydajności dyskowych operacji IO poprzez składowanie danych w pamięci do których dostęp odbywał się niedawno
– Menedżer pamięci wirtualnej – implementuje pamięć która wirtualnie może być większa niż pamięć systemu komputerowego i udostępnia ją aplikacjom jak gdyby nigdy nic
Budowa systemu operacyjnego• Centrum Wykonawcze – funkcje pomocnicze
(górna warstwa ntoskrnl.exe – części pracującej w trybie jądra)
– Menedżer obiektów – tworzenie, niszczenie i zarządzanie obiektami Windows oraz udostępnianie abstrakcyjnych typów danych wykorzystywanych do reprezentacji zasobów systemu, takich jak procesy, wątki, obiekty synchronizacyjne itp.
– Mechanizm LPC – przekazywanie komunikatów pomiędzy procesem klienta a procesem serwera na tym samym komputerze. Jest to zoptymalizowana wersja RPC – przemysłowego standardu komunikacji procesów klientów i serwerów przez sieć
Budowa systemu operacyjnego• Centrum Wykonawcze – funkcje pomocnicze
(górna warstwa ntoskrnl.exe – części pracującej w trybie jądra)
– Funkcje biblioteczne – cała gałkologia, np. przetwarzanie łańcuchów znakowych, konwersje typów danych, itp.
– Procedury pomocnicze – przydział i dostęp do pamięci, obiekty synchronizacyjne – zasoby i szybkie muteksy
Budowa systemu operacyjnego• Jądro
(dolna warstwa procesów pracujących w trybie jądra)
– Zestaw funkcji ntoskrnl.exe zapewniających podstawowe mechanizmy
– Szeregowanie wątków, usługi synchronizacyjne– Obsługa przerwań i wyjątków– Niskopoziomowe fundamenty dla podstawowych
mechanizmów– Izolowanie Centrum Wykonawczego od sterowników
urządzeń
Budowa systemu operacyjnego• Jądro
(dolna warstwa procesów pracujących w trybie jądra)
– Niektóre funkcje są udokumentowane, aby można było pisać sterowniki
– Kod jądra jest napisany w C ze wstawkami asemblerowymi
– Nikt tego kodu nigdy nie widział – Dokładny opis pomijam (zbyt szczegółowo: obiekty kontrolne,
opóźnione wywołanie procedur, obiekty dyspozycyjne, wątki, zdarzenia, semafory, muteksy, stopery, APC)
Budowa systemu operacyjnego• Warstwa
uniezależnienia od sprzętu(hardware abstracition layer – moduł pracujący w trybie jądra: hal.dll)
– Ukrywa wszystko, co jest zależne od sprzętu
– Zapewnia niskopoziomowy interfejs do platformy sprzętowej
Nazwa pliku HAL Obsługa
Hal.dll Standardowy komputer PC
Halacpi.dll PC z ACPI
Halapic.dll PC z APIC
Halaacpi.dll PC z ACPI i APIC
Halmps.dll wieloprocesorowe
Halmacpi.dll j.w. tylko z ACPI
Halbork.dll Stacje Silicon Graphics
Halsp.dll Compaq SystemPro
Budowa systemu operacyjnego• Warstwa
uniezależnienia od sprzętu(hardware abstracition layer – moduł pracujący w trybie jądra: hal.dll)
– Instalowana jest tylko jedna wersja HAL w systemie (jako hal.dll), chociaż instalator ma ich kilka.Po zmianie sprzętu może się okazać, że wymagany jest inny HAL i dlatego system nie zadziała.
Nazwa pliku HAL Obsługa
Hal.dll Standardowy komputer PC
Halacpi.dll PC z ACPI
Halapic.dll PC z APIC
Halaacpi.dll PC z ACPI i APIC
Halmps.dll wieloprocesorowe
Halmacpi.dll j.w. tylko z ACPI
Halbork.dll Stacje Silicon Graphics
Halsp.dll Compaq SystemPro
Budowa systemu operacyjnego• Sterowniki urządzeń
(zewnętrzne moduły jądra, *.sys, praca w trybie jądra)
– Sterowniki urządzeń fizycznych (operacje na sprzęcie za pomocą HAL)
– Sterowniki systemów plików (odbierają żądania IO i tłumaczą je na żądania dla konkretnych urządzeń)
– Filtrujące sterowniki systemów plików (szyfrowanie dysków, kopie lustrzane, przechwytują IO i wykonują dodatkowe operacje przez przekazaniem wywołań dalej)
Budowa systemu operacyjnego• Sterowniki urządzeń
(zewnętrzne moduły jądra, *.sys, praca w trybie jądra)
– Sterowniki przekierowania sieciowego oraz serwery (transmisja żądań IO związanych z systemem plików w sieci)
– Sterowniki protokołów (obsługa TCP/IP, NetBEUI, IPX/SPX)
– Strumieniowe filtrujące sterowniki jądra (połączony zestaw sterowników dokonujący przetwarzania sygnału zawartego w danych, np. przy obróbce dźwięku lub obrazu
Budowa systemu operacyjnego
• Rozszerzenia sterowników urządzeń(plug and play, power options, WDM – Windows Device Model)
– Sterownik magistrali – obsługa kontrolera, mostka lub innych urządzeń posiadających podległe magistrale, wykorzystywane przy PCI, PCMCIA lub USB
– Sterownik funkcji – główny sterownik, który zapewnia interfejs operacyjny dla swojego urządzenia, często jest jedynym, który wie najwięcej o urządzeniu i jego rejestrach, niskopoziomowy dostęp do sprzętu
Budowa systemu operacyjnego
• Rozszerzenia sterowników urządzeń(plug and play, power options, WDM – Windows Device Model)
– Sterownik filtrujący – jest stosowany dla nadania urządzeniu dodatkowej funkcjonalności lub w celu modyfikacji żądań i odpowiedzi IO pochodzących od innych sterowników (bywa to używane do maskowania błędów sprzętowych)
Budowa systemu operacyjnego
Budowa systemu operacyjnego
• Procesy systemowe
– Proces jałowy (sprawdzanie, czy jest coś do zrobienia)
– Proces systemowy (wątki systemowe w trybie jądra)
– Menedżer sesji (smss.exe) (pierwszy proces trybu użytkownika, uruchamianie podsystemów win32 i winlogon; jeżeli któryś z nich zginie, smss wywołuje załamanie systemu, przełącza i monitoruje aplikacje)
– Podsystem win32 (csrss.exe)
Budowa systemu operacyjnego
• Procesy systemowe
– Proces logowania (winlogon.exe) (obsługa procesu logowania: reakcja na klawisze Ctrl+Alt+Del, pobiera z rejestru klucz Winlogon i tworzy procesy wykonujące programy na jego podstawie; (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion); domyślnie uruchamia userinit.exe)
– Menedżer kontroli usług (services.exe) (start/stop usług trybu użytkownika wg klucza services w rejestrze, w rzeczywistości usługa = specyficzny program dla win32)
– Lokalny serwer bezpieczeństwa (lsass.exe) (uwierzytelnianie winlogon)
Budowa systemu operacyjnego
Usługi rezydentne(Executive Services)
Wykonują operacje niedozwolone dla aplikacji użytkowych
• Menedżer pamięci wirtualnej (Virtual Memory Manager)
• Narzędzie uruchamiania procedur lokalnych(Local Procedure Call Facility)
• Menedżer procesów(Process Manager)
• Menedżer obiektów(Object Manager)
• Menedżer zabezpieczeń(Security Reference Monitor)
Chronionaoperacja
wywołanie systemowe n
funkcja systemowa n
Program użytkownika
Jądro systemu
Direct X
Architektura Windows NT 4.0
Pytania
Resource Kitshttp://www.microsoft.com/technet/itsolutions/reskits/rktmain.mspxWindows 98, Windows NT 4.0,Windows 2000
Professional, Windows XP i inne (j angielski)http://www.microsoft.com/poland/windows2000/win2000prof/default.mspxWindows 2000 Professional (j. polski)
Direct Xhttp://www.microsoft.com/windows/directx/