SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Post on 05-Jan-2016

54 views 0 download

description

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. - PowerPoint PPT Presentation

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/