470 likes | 694 Views
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 operacyjnego.
E N D
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 operacyjnego Interfejs sprzętowy • Sterowniki Interfejs Programisty • API, funkcje systemowe Interfejs użytkownika • Shell • Powłoka • Tekstowy interpreter poleceń • Graficzny interfejs użytkownika (GUI)
Budowa systemu operacyjnego Komponenty nowoczesnego systemu operacyjnego: • Praca w trybie użytkownika • Systemowe procesy pomocnicze • Procesy usługowe • Aplikacje użytkownika • Podsystemy środowiskowe
Budowa systemu operacyjnego Komponenty 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 Procesy usługowe Aplikacje użytkownika Podsystemy środowiskowe Biblioteki podsystemów Tryb użytkownika Tryb jądra Centrum wykonawcze Jądro Sterowniki urządzeń System okien i grafiki Warstwa uniezależnienia od sprzętu
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
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.
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 • 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)
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)
Resource Kits http://www.microsoft.com/technet/itsolutions/reskits/rktmain.mspx Windows 98, Windows NT 4.0,Windows 2000 Professional, Windows XP i inne (j angielski) http://www.microsoft.com/poland/windows2000/win2000prof/default.mspx Windows 2000 Professional (j. polski) Direct X http://www.microsoft.com/windows/directx/