Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Programowanie systemowe. Architektura systemu Windows

Podobne prezentacje


Prezentacja na temat: "Programowanie systemowe. Architektura systemu Windows"— Zapis prezentacji:

1 Programowanie systemowe. Architektura systemu Windows

2 System Windows 2000 system operacyjny wielozadaniowy z wywłaszczaniem i wielowątkowy usługi bezpieczeństwa i sieciowe są usługami podstawowymi podsystemy środowiskowe umożliwiają uruchamianie (w trybie znakowym) starszych aplikacji napisanych dla systemów DOS, Windows 3.x i OS/2 zastosowanie abstrakcyjnej warstwy sprzętowej (Hardware Abstraction Layer, HAL), pozwala na przygotowanie systemu na platformę Intel i inne platformy bazujące na procesorach RISC

3 Architektura Windows

4

5 Moduły systemu Windows 2000 Warstwa abstrakcji sprzętu (Hardware Abstraction Layer, HAL)
Ma bezpośredni dostęp do sprzętu i zapewnia warstwie jądra interfejs niezależny od maszyny Umożliwia pisanie programowania jądra w sposób w sposób niezależny od maszyny, sprzyja przenośności systemu operacyjnego na różne platformy sprzętowe Procedury HAL mogą być wywoływane z bazowego systemu operacyjnego (jądro), lub przez sterowniki urządzeń (moduł Menadżer I/O)

6 Moduły systemu Windows 2000 Warstwa abstrakcji sprzętu (Hardware Abstraction Layer, HAL)

7 Windows Moduł jądra: Odpowiada za szeregowanie zadań, harmonogram realizacji wątków, obsługę sytuacji wyjątkowych i synchronizację pracy wieloprocesorowej Jądro kieruje wątki do wykonania na dostępnym procesorze Każdy wątek ma przydzielany priorytet, wątki o wyższych priorytetach mogą wywłaszczać wątki o niższych priorytetach moduł jądra nie jest stronicowany (nonpageable), strony (rozmiar: 4KB) nie są usuwane z pamięci (zapisywane w pliku tymczasowym PAGEFILE.SYS) kod modułu nie jest wywłaszczalny, natomiast pozostałe oprogramowanie np. stosowane w modułach wykonawczych Windows 2000 jest wywłaszczalne (preemptive) moduł jądra zarządza dwoma klasami obiektów: obiektami dyspozytora obiektami sterującymi

8 Windows Moduł jądra (2) Funkcje jądra dostarczają podstawowe mechanizmy (takie jak szeregowanie wątków lub usługi synchonizacji) używane przez komponenty modułu wykonawczego oraz niskopoziomowe wsparcie sprzętowe, zależne od architektury (przerwania i dysponowanie wyjątkami) systemu (procesora). Kod jądra napisany jest przede wszystkim w języku C. Wykorzystywany jest także asembler w przypadku zadań wymagających dostępu do specjalnych instrukcji i rejestrów procesora. Moduł jądra jest odpowiedzialny za szeregowanie zadań, jeżeli komputer ma konfigurację wieloprocesorową, to w celu synchronizacji pracy procesorów moduł ten korzysta z interfejsu procesora wirtualnego, realizowanego przez HAL.

9 Windows Moduł jądra (3) Moduł jądra nie jest stronicowany (nonpageable) – co oznacza, że strony (ustalone jednostki pamięci o wielkości 4kB) należące do tego modułu, nie są usuwane z pamięci (nie są tymczasowo zapisywane w dyskowym pliku wymiany Pagfile.sys). Kod tego modułu nie jest wywłaszczalny (jego wykonywanie nie może być przerwane), chociaż pozostałe oprogramowanie, np. stosowane w modułach wykonawczych Windows 2000, jest wywłaszczane. Moduł jądra może być wykonywany równocześnie na wszystkich procesorach komputerów wieloprocesorowych i sam synchronizuje dostęp do swoich krytycznych miejsc w pamięci. Procedury realizujące strategie wykorzystywania zasobów usunięto z tego modułu i zaimplementowano w modułach wykonawczych Windows Stwarza to możliwość zachowania modułu w prostej i niezmienionej postaci, gdyby w przyszłych wersjach Windows 2000 strategie jego funkcjonowania uległy zmianie. W module jądra podejmowane są niektóre decyzje o wyborze momentu usunięcia procesu z pamięci.

10 Windows 2000. Obiekty jądra. Obiekty dyspozytora

11 Windows 2000. Obiekty jądra. Obiekty sterujące

12 Windows 2000. Obiekty jądra (1)
Obiekt jądra – blok pamięci zaalokowany i używany bezpośrednio przez jądro, blok jest strukturą danych, której składowe przechowują informacje o obiekcie. różne rodzaje obiektów, pewne składowe (jak deskryptor bezpieczeństwa lub licznik dostępów) występują we wszystkich rodzajach obiektów jądra, ale większość jest specyficzna dla konkretnych rodzajów obiektów Obiekty powstają i są udostępniane w wyniku wywołania odpowiednich funkcji (struktury danych są dostępne tylko dla jądra)

13 Windows 2000. Obiekty jądra (2)
Zliczanie użyć Obiekty jądra są własnością jądra, a nie procesu. Obiekt jądra może żyć dłużej niż proces, który go stworzył - gdy proces tworzący obiekt jądra kończy działanie, obiekt jądra może pozostać (inny proces może go używać) Każdy obiekt jądra jest wyposażony w licznik użyć informujący ile procesów używa konkretnego obiektu jądra, gdy licznik użyć osiąga 0, jądro niszczy obiekt

14 Windows 2000. Obiekty jądra (3). Bezpieczeństwo.
Obiekty jądra mogą być chronione za pomocą deskryptora bezpieczeństwa, który opisuje, kto utworzył obiekt i kto może mieć do niego dostęp (deskryptory bezpieczeństwa są wykorzystywane zwykle przy tworzeniu aplikacji serwerowych) Niemal wszystkie funkcje tworzące obiekty jądra mają wśród argumentów wskaźnik do struktury SECURITY_ATTRIBUTES Przykład (CreateMapping) HANDLE CreateFileMapping( HANDLE hFile, PSECURITY_ATTRIBUTES psa,//deskryptor bezpieczeństwa DWORD flProtect, DWORD dwMaximusSizeHigh, DWORD dwMaximumSizeLow, PCTSTR pszName)

15 Windows 2000. Obiekty jądra (4). Bezpieczeństwo.
PSECURITY_ATTRIBUTES psa = NULL Utworzenie obiektu jądra ze standardowym zabezpieczeniem, czyli: Twórca obiektu i członkowie grupy administratorów mają pełny dostęp do obiektu, pozostali nie mają żadnego dostępu Struktura SECURITY_ATTRIBUTES ma postać: typedef struct _SECURITY_ATTRIBUTES {DWORD nLength; LPVOID lpSecurityDescriptor; BOOL bInheritHandle; } SECURITY_ATTRIBUTES

16 Windows 2000. Obiekty jądra (5). Tablica procesu.
Podczas inicjalizacji procesu system alokuje tablicę uchwytów dla tego procesu – tablica jest przeznaczona wyłącznie na obiekty jądra Element tablicy procesu zawiera (m.in ?): Wskaźnik do bloku pamięci obiektu jądra Maska dostępu (wartość DWORD z bitami flag) Flagi (Wartość DWORD z bitami flag)

17 Windows 2000. Obiekty jądra (6). Tworzenie i zamykanie obiektu jądra
Tworzenie obiektu jądra Po utworzeniu procesu – jego tablica uchwytów jest pusta Wszystkie funkcje tworzące obiekty jądra zwracają uchwyty (HANDLE), które mogą być używane przez dowolny wątek działający w ramach tego samego procesu, wartość uchwytu jest odpowiednim indeksem w tablicy z uchwytami (np. w Windows 2000 zwracana wartość jest numerem bajtów od początku tablicy uchwytów, a nie indeksem) Ponieważ wartość uchwytu jest „indeksem” w tablicy uchwytów danego procesu, nie może być ona używana przez inne procesy. Funkcje tworzące obiekty jądra np. CreateThread, CreateFile, CreateFileMapping, CreateSemaphore Zamykanie obiektu jądra stosuje się funkcję BOOL CloseHandle(HANDLE hobj) Jeśli uchwyt jest prawidłowy, to licznik użyć danego obiektu jądra jest zmniejszany o 1 (jeśli staje się równy 0 – obiekt jest usuwany)

18 Metody współużytkowania obiektów jądra:
Windows Obiekty jądra. (7) Współużytkowanie obiektów jądra przez różne procesy Metody współużytkowania obiektów jądra: Dziedziczenie uchwytów Zmiana flag uchwytu Obiekty nazwane Duplikowanie uchwytów obiektów

19 Windows 2000. Obiekty jądra (8). Dziedziczenie uchwytów obiektu
Możliwe, gdy jeden proces jest procesem potomnym drugiego Rodzic/przodek może umożliwić potomkowi dostęp do swoich obiektów jądra Czynności: (1)Tworząc obiekt należy poinformować, że dostęp do niego będzie dziedziczny: SECURITY_ATTRIBUTES sa; sa.nLength = sizeof(sa); sa.lpSecurityDescriptor = NULL; Sa.bInheritHandle = TRUE; // zmianan uchwytu na dziedziczony HANDLE hMutex = CreateMutex(&sa, FALSE, NULL); (2) Utworzenie procesu potomnego o określenie, że będzie on dziedziczył uchwyty (tzn. bInhertitHandles powinno być równe TRUE (zazwyczaj: równe FALSE) BOOL CreateProcess(..., BOOL bInheritHandles, ...) Odziedziczone zostaną wszystkie uchwyty, które mają ustawione dziedziczenia, liczniki użyć tych obiektów zostaną zwiększone o 1. Uwaga: (1) Odziedziczone uchwyty w potomku znajdują się w tych samych miejscach tablicy, co w przodku, a zatem ich wartości są takie same (2) Dziedziczenie odbywa się tylko w momencie utworzenia procesu potomnego (jeśli proces przodka utworzy potem nowy obiekt z dziedzicznym uchwytem, to potomek go nie otrzymuje)

20 Windows 2000. Obiekty jądra (9). Zmiana flag uchwytu
Sytuacja: rodzic chce, by tylko niektóre procesu potomne dziedziczyły jego obiekt(y) z dziedzicznym uchwytem Zmiana ustawienia flagi dziedziczenia uchwytu może być osiągnięta dzięki funkcji: BOOL SetHandleInformation( HANDLE hObject, //uchwyt DWORD dwMask, //maska określająca, //która flaga ma zostać zmieniona, sa flagi: // HANDLE_FLAG_INHERIT – dziedziczenie uchwytu //HANDLE_FLAG_PROTECT_FROM_CLOSE //- ochrona uchwytu przed zamknięciem DWORD dwFlags //informuje, jakie wartości powinno przyjąć ustawienie FLAG ) Przykład: Włączenie flagi dziedziczenia: SetHandleInformation(hobj, HANDLE_FLAG_INHERIT, HANDLE_FLAG_INHERIT); Przykład: Wyłączenie flagi dziedziczenia: SetHandleInformation(hobj, HANDLE_FLAG_INHERIT, 0);

21 Windows 2000. Obiekty jądra (10) Obiekty nazwane
Wielu obiektom można nadać nazwy ostatni parametr w funkcjach tworzących obiekty pszName (wartość NULL – obiekt anonimowy, wartość <> NULL – obiekt nazwany) Aby obiekt nazwany mógł być dziedziczony przez różne procesy, trzeba użyć metod dziedziczenia albo funkcji DuplicateHandle Dostęp do obiektu – w oparciu o nazwę np. wywołanie operacji tworzenia obiektu z nazwą już istniejącą (jeśli prawa dostępu zezwalają na użycie obiektu i nazwa dotyczy tego samego typu obiektu, to proces uzyskuje dostęp). Można stosowac funkcje typu: Create* - udostępnia lub tworzy obiekt Open* - próbuje udostępnić już istniejący obiekt

22 Windows 2000. Obiekty jądra (11). Duplikowanie nazw
Kopiowanie uchwytu o odpowiedniej wartości procesu źródłowego, do tablicy uchwytów procesu docelowego BOOL DuplicateHandle(HANDLE hSourceProcessHandle, HANDLE hSourceHandle, HANDLE hTargetProcessHandle, PHANDLE phTargetHandle, DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwOption) hSourceProcessHandle, hTargetProcessHandle – uchwyty obiektów jądra typu Proces (względem procesu wywołującego funkcję DuplicateHandle) hSourceHandle – uchwyt obiektu jądra dowolnego typu (podana dla procesu hSourceProcessHandle) phTargetHandle – adres zmiennej HANDLE, do której trafi indeks pozycji z kopią informacji o uchwycie źródłowym (podana dla procesu hTargetProcessHandle) Ostatnie 3 parametry określają wartość maski dostępu i flagi dziedziczenia dwOption może przyjmować wartość 0 lub być kombinacją następujących flag: DUPLICATE_SAME_ACCESS (uchwyt docelowy ma tę samą maskę dostępu, co uchwyt procesu źródłowego, parametr dwDeskredAccess jest ignorowany) i DUPLICATE_CLOSE_SOURCE (zamknięcie uchwytu w procesie źródłowym, licznik użyć obiektu nie ulega zmianie)

23 Moduł wykonawczy Windows 2000
Górna warstwa aplikacji Ntoskrnl.exe (dolną warstwę stanowi jądro). Na moduł wykonawczy składają się następujące typy funkcji: Funkcje eksportowane – to znaczy takie, które mogą być wołane z warstwy użytkownika. Funkcje te nazywane są usługami systemowymi. Ich eksport wykonywany jest poprzez bibliotekę Ntdll. Większość z tych usług jest dostępna poprzez API Win32 lub poprzez API innego podsystemu środowiskowego. Istnieje jednak kilka usług niedostępnych poprzez udokumentowane funkcje podsystemu. Funkcje, które mogą być wołane tylko z trybu jądra. Zostały one wyeksportowane i udokumentowanie w Windows 2000 DDK. Funkcje wyeksportowane, które można wołać z trybu uprzywilejowanego, lecz nieudokumentowanie w Windows 2000 DDK. Funkcje zdefiniowane jako symbole globalne, nieeksportowane. Grupa ta to funkcje wołane wewnątrz Ntoskrnl, czyli na przykład funkcje wspierające wewnętrznego menadżera I/O lub funkcje wspierające wewnętrznego menadżera pamięci.

24 Podstawowe komponenty modułu wykonawczego(1)
Menadżer konfiguracji – komponent odpowiedzialny za implementacje i zarządzanie rejestrem systemowym Menadżer procesu i wątku – komponent odpowiedzialny za tworzenie i usuwanie (przerywanie działania) procesów i wątków. Komponent ten wykorzystuje wsparcie dla tego typu działań zaimplementowane w jądrze Windows Moduł wykonawczy uzupełnia niskopoziomowe obiekty jądra dodatkową semantyką i funkcjami. Monitor bezpieczeństwa – egzekwuje politykę bezpieczeństwa na lokalnym komputerze. Chroni on zasoby systemu operacyjnego poprzez ochronę i audytowanie działających obiektów. Menadżer I/O – komponent implementuje niezależne od sprzętu wejście/wyjście oraz jest odpowiedzialny za dyspozycję sterownikami urządzeń. Menadżer Plug and Play (PnP) – określa wymagany sterownik dla konkretnego urządzenia po czym ładuje ten sterownik. Menadżer zasilania – koordynuje zdarzenia związane z zasilaniem oraz generuje notyfikacje zarządzania zasilaniem I/O przeznaczone dla sterowników urządzeń. Kiedy system jest w stanie idle, odpowiednio skonfigurowany menadżer zasilania może zredukować pobór mocy poprzez uśpienie CPU. Nad zmianami zasilania urządzeń zewnętrznych czuwają sterowniki tych urządzeń. Są one jednak koordynowane przez menadżera zasilania.

25 Podstawowe komponenty modułu wykonawczego(2)
Funkcje Windows Management Instrumentation – umożliwiają sterownikom urządzeń publikowanie informacji wydajnościowych oraz konfiguracyjnych oraz otrzymywanie poleceń z usługi WMI – trybu użytkownika. Konsumentem informacji WMI może rezydować na maszynie lokalnej lub poprzez sieć na maszynie zdalnej. Menadżer pamięci podręcznej (cache) – poprawia wydajności wejścia/wyjścia plikowego, poprzez przechowywanie danych dopiero co odczytanych w pamięci głównej dla szybkiego dostępu do nich oraz poprzez opóźnianie zapisu – gromadzenie danych w pamięci przeznaczonych do zapisu na dysku. Menadżer pamięci wirtualnej – komponent implementujący pamięć wirtualną, czyli schematu zarządzania pamięcią dostarczającego dużej, prywatnej przestrzeni adresowej dla każdego procesu. Przestrzeń ta może być rozszerzana poza pamięć fizyczną, jaka jest aktualnie dostępna. Menedżer Obiektów (Object Manager) Wywołanie Procedury Lokalnej (Local Procedure Call)

26 Windows 2000. Moduły wykonawcze. Menedżer obiektów (Object Manager)
zasoby systemu operacyjnego są implementowane jako obiekty obiekt to abstrakcyjna reprezentacja zasobu obiekt opisuje stany wewnętrzne i parametry zasoby, oraz zbiór metod (działań lub procedur), jakie mogą być zastosowane do uzyskania dostępu do zasobu i sterowania zasobem menedżer obiektów udostępnia hierarchicznym system nazewnictwa wszystkich obiektów w systemie Traktując wszystkie zasoby jak obiekty, Windows 2000 może stosować jednolite metody realizacji następujących zadań: tworzenie obiektu ochrona obiektu monitorowanie, kto użytkuje dany zasób (klienci obiektów) monitorowanie zasobów wykorzystywanych przez dany obiekt

27 sekcja i segment (opisują pamięć) port semafor i zdarzenie
Windows Moduły wykonawcze. Menedżer obiektów. Przykłady typów Windows 2000 katalog plik typ obiektu proces wątek sekcja i segment (opisują pamięć) port semafor i zdarzenie powiązanie symboliczne

28 Windows 2000. Moduły wykonawcze. Menedżer obiektów (2) (Object Manager)

29 Menedżer obiektów (Object Manager) (3)
Obiekty systemu Windows 2000 możemy podzielić na dwie: obiekty wykonawcze. Obiekty wykonawcze są obiektami implementowanymi przez różne komponenty modułu wykonawczego (menadżer procesów, menadżer pamięcie, podsystem I/O, itd). obiekty jądra. Obiekty jądra to zbiór prostych obiektów zaimplementowanych w jądrze Windows Obiekty te nie są widoczne z kodu trybu użytkownika. Może z nich natomiast korzystać moduł wykonawczy. Obiekty jądra dostarczają podstawowych możliwości, takich jak np. synchronizacja, o które opiera się budowa obiektów wykonawczych. Wiele obiektów wykonawczych zawiera (kapsułkuje) jeden lub więcej obiektów jądra.

30 Obiekty wykonawcze zawierające obiekty jądra

31 Windows 2000. Moduły wykonawcze
Windows 2000.Moduły wykonawcze. Monitor Systemu Bezpieczeństwa (Security Reference Monitor) zastosowany do zaimplementowania systemu bezpieczeństwa w systemie Windows 2000 przechodzą przez niego żądania utworzenia lub dostępu do obiektu i określa on, czy dostęp do zasobu jest dozwolony współpracuje z podsystemem bezpieczeństwa trybu użytkownika, stosowanym do weryfikacji identyfikatorów użytkowników przy logowaniu do Windows 2000 obiekt Windows 2000 jest zaopatrzony w deskryptor bezpieczeństwa, listę kontroli dostępu ACL (Access Control List) lista składa się z elementów zwanych wpisami kontroli dostępu ACE (Access Control Entries) ACE zawiera SID (Security Identyfier) użytkownika lub grupy, jest to wewnętrzny numer opisujący użytkownika i grupę jednoznacznie dla komputerów pracujących w systemie Windows 2000 Gdy użytkownik zaloguje się w komputerze, jest tworzony dla niego znacznik bezpieczeństwa dostępu SAT (Security Access Token), zawierający SID użytkownika i SIDy wszystkich grup, do których należy użytkownik SAT – przepustka na okres danej sesji użytkownika, służy do weryfikacji wszystkich działań użytkownika

32 Windows 2000. Moduły wykonawcze. Menedżer procesów.
zarządza obiektami procesów i wątków tworzy i usuwa obiekty procesu implementuje API tworzenia wątków w ramach procesu strategie i zasady funkcjonowania wątków i procesów zaimplementowano w podsystemach środowiskowych, a nie poprzez Menedżera procesów proces składa się z: wirtualnej przestrzeni adresowej, zestawu zasobów własnych procesu zestawu wątków własnych procesu wątek jest szeregowalną jednostką z własnym zestawem rejestrów, stosem w module jądra i blokiem środowiska

33 Moduły wykonawcze. Menedżer pamięci wirtualnej.
obsługuje mechanizm pamięci wirtualnej w systemie odwzorowuje wirtualną przestrzeń adresową na strony pamięci fizycznej komputera każdemu procesowi jest przydzielana wirtualna przestrzeń adresowa i wielkości 4 GB (pierwsze 2 GB – rezerwowane dla programu użytkownika, pozostałe 2 GB – jako pamięć systemowa

34 Moduły wykonawcze. Wykonanie procedury lokalnej.
Podsystemy śodowiskowe: serwery, aplikacje z niego korzystające: klienci Moduł wykonawczy Wywołanie procedury lokalnej zapewnia komunikacje klienta i serwera poprzez wymianę komunikatów

35 Windows 2000. Moduły wykonawcze. Menedżer I/O.
zarządza wszystkimi funkcjami we/wy w Windows 2000 komunikuje się ze sterownikami różnych urządzeń stosowana jest warstwowa architektura sterowników każdy moduł sterownika w warstwie realizuje określoną funkcję podejście warstwowe umożliwia łatwą wymianę modułu sterownika bez oddziaływania na pozostałe moduły sterowników Menadżer I/0 Menedżer Pamięci Cache System Plików Sterowniki Sieciowe Sterowniki Urządzeń

36 Podsystemy środowiskowe
procesy działające w trybie użytkownika zadanie: umożliwienie systemowi NT wykonywania programów opracowanych dla innych systemów operacyjnych: 16 bitowy Windows MS DOS POSIX znakowe aplikacje 16-bitowego systemu OS/2 każdy podsystem środowiskowy zawiera interfejs programowania aplikacji (API) lub przeznaczone dla aplikacji środowisko System NT korzysta z podsystemu Win32 jako głównego środowiska operacyjnego, który jest używany do rozpoczynania wszystkich procesów gdy ma nastąpić wykonanie aplikacji: podsystem WIn32 wywołuje zarządcę pamięci wirtualnej, aby załadował kod aplikacji zarządca pamięci zwraca podsystemowi Win 32 informacje o rodzaju kodu wykonywalnego jeśli to nie jest rdzenny kod wykonywalny Win32, to sprawdzane jest, czy działa odpowiedni podsystem środowiskowy i – jeśli podsystem nie jest wykonywany – następuje jego uruchomienie w trybie użytkownika podsystem Win 32 tworzy proces do wykonania aplikacji i przekazuje sterowanie właściwemu podsystemowi środowiskowemu

37 Podsystemy środowiskowe. Środowisko Win 32
główny podsystem systemu -- Win32 wykonuje aplikacje Win32 i zarządza wszystkimi funkcjami klawiatury, myszki i ekranu każdy proces systemu Win32 ma własną kolejkę wejściową zarządca okien przydziela wszystkie operacje wejścia do kolejek wejściowych odpowiednich procesów stosowana jest wielozadaniowość z wywłaszczaniem sprawdza ważność obiektów przed użyciem – zapobiega wykorzystywaniu nieważnych lub błędnych uchwytów

38 Podsystemy środowiskowe. Środowisko Win 32 (2)

39 Podsystemy środowiskowe. Środowisko systemu MS DOS
realizowany przez maszynę wirtualną systemu DOS (ang. virtual DOS machine, VDM), która działa na podstawie kodu źródłowego systemu MS-DOS 5.0 i pozostawia programom użytkowym co najmniej 620KB wolnej pamięci maszyna VDM jest procesem użytkowym, który podlega stronicowaniu i planowaniu przydziału procesora wg. reguł dotyczących wszystkich wątków systemu NT VDM jest wyposażona w : jednostkę wykonywania rozkazów, która wykonuje lub emuluje rozkazy procesora Intel 486 procedury emulowania funkcji ROM BIOS systemu MS-DOS, oraz usług osiąganych przez programowe przerwanie „int 21” moduły sterujące wirtualnych urządzeń ekranu, klawiatury i portów komunikacyjnych powłoka poleceń systemu NT – tworzy okno wyglądające jak środowisko systemu MS-DOS powłoka może wykonywać programy 16-bitowe i 32-bitowe w celu wykonania aplikacji systemu MS-DOS, powłoka uruchamia proces VDM, który ma wykonać program aplikacji DOSowej aplikacje systemu MS-DOS, które bezpośrednio odwołują się do sprzętu, nie nadają się do wykonywania pod systemem Windows NT ekspedytor systemu NT wykrywa pętle opóźniające i przerwy, występujące w programach DOSowych i automatycznie optymalizuje zużycie czasu, co powoduje, że tak napisane aplikacje działają nieprawidłowo

40 Podsystemy środowiskowe. Środowisko 16-bitowego systemu Windows
WDM zawiera środowisko wykonawcze Win16, nazywane „okna w oknach” (ang. Windows on Windows, WOW) Win16 dostarcza: procedur jądra systemu Windows 3.1 namiastek procedur (ang. stubs) zarządcy okien i funkcji interfejsu GDI namiastki wywołują odpowiednie podprogramy systemu Wi32, które zamieniają adresy 16-bitowe na 32-bitowe aplikacje, które zależą od 16-bitowego zarządcy okien lub interfejsu GDI mogą nie działać – WOW nie realizują naprawdę 16-bitowego interfejsu API w danej chwili może działać tylko jedna aplikacja Win16, wszystkie aplikacje Win16 są jednowątkowe, pozostają w tej samej przestrzeni adresowej i dzielą tę samą kolejkę wejściową --> aplikacja, która przestanie pobierać dane z kolejki zablokuje wszystkie inne aplikacje Win16 (jak w Windows 3.x) --> aplikacja Win16 może uszkodzić przestrzeń adresową innych aplikacji Win16

41 Podsystem POSIX ma wykonywać aplikacje normy POSIX, które spełniają standard POSIX.1, mający za podstawę system Unix aplikacje POSIX mogą być rozpoczynane przez podsystem Win32, lub inną aplikację POSIX elementy wykorzystywane przez aplikacje POSIX serwer realizujący podsystem POSIX (PSXSS.EXE) dołączana dynamicznie biblioteka (PSXDLL.DLL) zarządca sesji operatorskiej (POSIX.EXE) środowisko POSIX narzuca podobne do unixowych prawa dostępu do drzew katalogów pewne elementy podsystemu Win32 nie zrealizowane w podsystemie POSIX (pliki odwzorowywane w pamięci, operacje sieciowe, graficzne)

42 Podsystemy środowiskowe. Podsystem OS/2
ograniczone wsparcie aplikacje znakowe systemu OS.2 1.x można wykonywać tylko w wersji NT na procesory Intel x86 aplikacje pracując w systemie OS/2 w trybie rzeczywistym mogą działać na wszystkich platformach, wykorzystując środowisko MS-DOS

43 Podsystemy rejestracji i bezpieczeństwa
uwierzytelnienie tożsamości poprzez rejestrację w systemie pakiet uwierzytelniania (ang. authentication package) sprawdza tożsamość za pomocą informacji pobranych od podsystemu rejestracji lub z serwera sieciowego (sprawdza poprawność hasła) następnie podsystem bezpieczeństwa generuje odpowiadający użytkownikowi żeton dostępu, który zawiera prawa dostępu, ograniczenia ilościowe i identyfikatory grup żetony dostępu – służą do reprezentowania uczestników w systemie. podczas odwołania do obiektu w systemie (np. próby uzyskania odpowiedniego uchwytu) żeton dostępu jest przekazywany monitorowi bezpieczeństwa odwołań, który dokonuje kontroli praw dostępu i limitów

44 Rejestr Rejestr jest wewnętrzną bazą danych, zawierającą informacje na temat konfiguracji systemu. Jeśli podczas instalacji aplikacji, czy uruchamiania programów systemowych, wymagane są jakieś zmiany konfiguracyjne, następuje modyfikacja zapisów w Rejestrze. Rejestr systemu Windows 2000 ma postać strukturalnej bazy danych, zorganizowanej w formie hierarchicznie ułożonych drzew. Struktura taka ułatwia przeglądanie informacji i zarządzanie nimi. Rejestr wykorzystuje się do: Podawania informacji konfiguracyjnych podczas uruchamiania komputera Przechowywania ogólnych danych konfiguracyjnych systemu Zarządzania parametrami konfiguracyjnymi sterowników urządzeń Przechowywania nowych informacji konfiguracyjnych, związanych z instalowanymi aplikacjami, czy narzędziami Pomocy administratorom przy modyfikacji konfiguracji systemu Windows 2000 Budowa rejestru: klucze pełniące funkcje kontenerów dla parametrów opisujących system. Klucze mogą zawierać podrzędne podklucze, podobnie jak to ma miejsce w przypadku katalogów i podkatalogów. W celu zachowania wstecznej kompatybilności z 16-bitowymi aplikacjami Windows i ich programami instalacyjnymi, w Windows 2000 zachowano również obsługę plików INI. Na poniższym rysunku został przedstawiony bardziej szczegółowy schemat, zawierający komponenty systemu Windows 2000, które korzystają z jego Rejestru.

45 Rejestr (2)

46 Rejestr (3) Element Setup z powyższego rysunku to program instalacyjny Windows 2000 (Instalator), którego zadaniem jest posadowienie na komputerze systemu lub programów instalacyjnych innych aplikacji. Programy instalacyjne dodają od Rejestru informacje dotyczące ładowania różnych modułów programowych. . Program detekcyjny Ntdetect.com (Recognizer) uruchamiany jest podczas startu systemu operacyjnego. Sprawdza on konfigurację sprzętową komputera i rozpoznaje dołączone do niego urządzenia peryferyjne (np. klawiaturę, kartę grafiki, urządzenie wskaźnikowe, czy karty sieciowe) i zapisuje te informacje w Rejestrze. Są one wykorzystywane w następnych fazach uruchamiania systemu dla zainicjowania pracy sterowników rozpoznanych wcześniej urządzeń. Jeśli w systemie opartym na architekturze firmy Intel jakieś urządzenie nie zostanie przez program detekcyjny rozpoznane, jego sterownik nie będzie uruchomiony, W takim przypadku związane z nim protokoły sieciowe, czy usługi nie będą dostępne. Jądro systemu Windows 2000 pobiera ono z Rejestru informacje na temat kolejności ładowania sterowników urządzeń. W drugą zaś stronę przekazuje dane dotyczące wersji i nazwy systemu operacyjnego. Sterowniki urządzeń wymieniają z Rejestrem informacje konfiguracyjne, jak na przykład parametry niezbędne do ich załadowania. Sterowniki zapisują tam dane na temat używanych przez siebie zasobów systemowych, jak przerwania, kanały DMA, porty I/O, czy adresy pamięci. Umieszczenie tych informacji w jednej bazie Rejestru pozwala uniknąć konfliktów sprzętowych w systemie. Narzędzia administracyjne to różne programy, jak na przykład Active Directory Users and Computers, która zapisują w Rejestrze informacje dotyczące kont użytkowników oraz ich ustawień. System Windows 2000 zawiera program Winmsd.exe, za pomocą którego można przeglądać zapisy Rejestru w celach diagnostycznych.

47 Wybrane zmiany w XP Zmiany wprowadzone w jądrze systemu Windows XP są małe w stosunku do zmian, jakie miały miejsce w przypadku systemów Windows NT 4.0, a Windows 2000 (wewnętrzny numer wersji systemów jest tego potwierdzeniem – Windows 2000 to NT 5.0; Windows XP to NT 5.1, a nie 6.0) Cele zmian: uczynienie Windows XP systemem bardziej: niezawodnym, skalowalnym i lepiej dostosowanym do istniejących potrzeb. Przystosowanie do potrzeb nadchodzącej rodziny systemów Windows .NET Server, ponieważ systemy te będą korzystać z jądra XP (z odpowiednimi, dodatkowymi funkcjami).

48 Wybrane zmiany w XP (2) Skalowalność i osiągi
Zmiany w jądrze, zapewniające lepszą skalowalność w systemach wieloprocesorowych, wsparcie dla pracy wielu użytkowników, większych aplikacji, większych plików i większego zapotrzebowania na pamięć. Poprawki te mają większe znaczenie dla środowiska serwerowego i dlatego będą one pełnić większą funkcję w systemach Windows .NET Server. Większy rozmiar mapowanych plików Większe sterowniki urządzeń oraz przestrzeń systemu Windows 2000 ograniczało rozmiar sterowników urządzeń do 220 MB (w Windows NT 4.0 było to 100 MB). W XP sterowniki mogą mieć rozmiar aż do 960 MB Podniesiony limit dla rejestru Efektywniejsze oczyszczanie aktywnego zbioru stron Windows XP wprowadza nowy mechanizm ochrony sekcji krytycznych zwany push lock. Szybsze wywoływania systemowe Do wywołań systemowych, Windows XP używa w tym celu pary instrukcji SYSENTER/SYSEXIT, których zadaniem jest przejście do i z trybu jądra dla wywołań systemowych, o ile system działa na procesorze Pentium II lub wyższym. Instrukcje te wymagają mniej taktów zegara do wykonania w związku z czym podnoszą prędkość działania kody korzystającego z wywołań systemowych.

49 Na czym polega przyspieszyć działanie?
Prefetch Prefetching jest procesem pobierania stron danych i kodu do pamięci z dysku zanim będą one potrzebne, przechowywane są w katalogu C:\Windows\ Prefetch Na czym polega przyspieszyć działanie? Podczas typowego startu aplikacji porządek czytania jest taki, że niektóre strony pobierane są z jednej części pliku, następne z innej, inne jeszcze mogą pochodzić z zupełnie innego pliku czy z katalogu. Skakanie powoduje ruch głowicy dysku, a co za tym idzie opóźnienia. Poprzez pobranie danych z pliku lub katalogu naraz zanim nastąpi dostęp do innego pliku oszczędza się lub eliminuje czas traconych na ruchach głowicy. Aby zminimalizować czas szukania, co trzy dni lub inny zadany okres, podczas bezczynności systemu Task Scheduler organizuje listę plików i katalogów znajdujących się w katalogu Prefech. Uruchamia także defragmentatora dysku ww. katalogu. W ten sposób następne operacje pobrania będą jeszcze bardziej efektywniejsze ponieważ wszystkie dane jakie trzeba będzie czytać znajdują się na dysku w porządku w jakim będą czytane.

50 Win XP. Wsparcie dla architektury 64-bitowej
Edycja 64-bitowa Windows XP jest pierwszym naprawdę 64-bitowym systemem z serii Windows NT. Działa np. na procesorze Intel Itanium. Przeniesienie kodu do architektury 64-bitowej wymagało przepisania prawie całego kodu jądra, HAL’a, menadżera pamięci, modułu przełączania kontekstu itd. W wyniku otrzymano system, który zewnętrznie niemal nie różni się od swojego 32-bitowego odpowiednika. Najbardziej znaczącą różnicą pomiędzy systemami 32- i 64- bitowymi jest rozmiar przestrzeni adresowej. 32 bity dostarczają 4GB przestrzeni adresowej, natomiast 64 bity 17 miliardów GB( 16 exabajtów). Sposób w jaki ta przestrzeń jest podzielona i zaprojektowana jest całkiem różny. 32-bitwe Windows dzielą przestrzeń adresową na połowę – 2GB dla procesów użytkownika i 2 GB dla przestrzeni systemowej, Windows 64-bitowy zapewnia 7152 GB dla każdego procesu użytkownika ( % całości), resztę przeznacza na tablice stron, kod systemu operacyjnego dane itd. Aplikacje mogą przetwarzać większą ilość danych w płaskiej przestrzeni adresowej bez rozwiązań typu AWE (address windowing extensions) wprowadzone do Windows 2000, żeby umożliwić aplikacją korzystanie z więcej niż 2 GB pamięci. Możliwe staje się uruchamianie większych programów, pula systemowa jest większa, możliwe staje się cache’owanie większej ilości danych. Wprowadzono także nowy schemat partycjonowania dysków zwany GUID Partition Table (GPT), który posiada wiele zalet w stosunku do znanego wcześniej MBR.

51 Win XP. Wsparcie dla architektury 64-bitowej (2)

52 Win XP:Ochrona przed awariami
Przywracanie Systemu - pojawiło się w Windows Me i służy przywracania systemu to ostatnio znanej stabilnej konfiguracji. Serwis robi domyślnie co 24h backup (punkt przywracanie) newralgicznych plików systemu takich jak rejestr, rejestr użytkownika, ustawienia IIS oraz rejestr obiektów COM. Wszystkie dane umieszcza w katalogu \System_Volume_Information\_restore{XXX-XXX-XXX}, gdzie X reprezentuje systemowy identyfikator. Wewnątrz katalogu znajdują się zapisane zmiany wprowadzone np. do rejestru. Gdy wystąpią jakiekolwiek problemy z nowo zainstalowaną aplikacją możma skorzystać z Kreatora Przywracania i powrócić do stanu sprzed instalacji danego programu. Przywracanie sterowników, ochrona i ostatni dobry. Podczas instalacji nowych driverów Hardware Installation Wizard (HIW) zachowuje kopie zastępowanych sterowników, tak więc jeśli wystąpią jakiekolwiek problemy ze sprzętem po instalacji można w prosty sposób przywrócić poprzedni sterownik.

53 W Windows XP wprowadzono także kilka zmian dotyczących systemu plików:
Win XP. System plików W Windows XP wprowadzono także kilka zmian dotyczących systemu plików: XP wspiera DVD-RAM tak jak inne urządzenia CD czy DVD. DVD-RAM może być formatowany z wykorzystaniem systemu plików FAT-32. EFS (Encrypting File System) nie jest już oddzielnym driver’em ale został zintegrowany z NTFS. Umożliwia dostęp do zaszyfrowanych plików wielu użytkownikom, czyniąc możliwym współdzielenie zaszyfrowanych plików. Wprowadzone nowy moduł defragmentacji dysków. NTFS może podmontowywać nośniki tylko do odczytu i ma lepsze zabezbieczenia.

54 Win XP. Bootowanie i wykonywanie z ROM
Windows XP wspiera booting i wykonywanie kodu aplikacji z pamięci ROM. Podczas gdy system operacyjny i sterowniki urządzeń są kopiowane z ROM do RAM i tak wykonywane, to aplikacje użytkownika mogą być wykonywane bezpośrednio z ROM. Ta funkcjonalność została dodana z powodu nadchodzących osadzonych wersji Windows NT (dla urządzeń przenośnych) opartych na jądrze XP.

55 Win XP. Nowe API autoryzacji
Windows XP nie wprowadza żadnych istotnych zmian to podsystemu bezpieczeństwa działającego w trybie jądra, za to w trybie użytkownika dodano nowe API zwane AuthZ. AuthZ może być użyte przez aplikacje zarządzające zasobami takie jak serwer baz danych, które chronią obiekty korzystając ze standardowego modelu bezpieczeństwa Windows, ale również wymagają dużej efektywności działania. Zamiast reprezentacji kontekstów bezpieczeństwa za pomocą tokenów w trybie jądra, AuthZ reprezentuje je za pomocą struktur trybu użytkownika. Takie podejście nie wymaga prowadzenia wywoływań systemowych, a dla polepszenia wydajności AuthZ może również cache’ować wyniki zapytań sprawdzających dostęp.

56 W Windows XP dodano również obsługę IPv6.
Win XP. Winsock Chociaż Winsock (Windows Sockets) nie przeszły znaczących zmian od wersji 2000 to XP wprowadza pewne interesujące zmiany do API. Np. funkcje: getaddrinfo i getnameinfo rozszerzają translację adresów na nazwy i odwrotnie, jednocześnie zastępując stare funkcje gethostbyname oraz gethostbyaddr. Obie wspomniane funkcje obsługują również IPv6. W nowym API znalazły się również funkcje służące do transmisji danych wprost z plików bez potrzeby kopiowania ich do pamięci np. funkcja TransmitPackets. Pozwala to na przyspieszenie transmisji danych. W Windows XP dodano również obsługę IPv6.

57 Win XP. Dodatkowe oprogramowanie zawarte w systemie
Poza tymi oraz jeszcze wieloma innymi zmianami w skład Windows XP wchodzą nowe wersje Windows Media Player, Bibliotek DirectX. Dodano program do nagrywanie obrazów ISO na nośniki typu CD-R/W. W XP Professional znajduje się IIS wersja 5.1 (Internetowe usługi sieciowe) oraz zdalny pulpit, który pozwala prowadzić zdalne sesje z innej maszyny.


Pobierz ppt "Programowanie systemowe. Architektura systemu Windows"

Podobne prezentacje


Reklamy Google