Architektura Windows NT
Z Wikipedii, wolnej encyclopedia
Windows 7, Windows Vista, Windows Server 2003, Windows XP, Windows 2000 i Windows NT są częścią rodziny Windows NT (w technologii NT) systemów operacyjnych firmy Microsoft. Umożliwiają one między innymi wywłaszczanie oraz wielobieżność i zostały zaprojektowane do pracy na systemach bazujących na architekturze x86 Intela, zarówno jednoprocesorowych, jak i o architekturze SMP. Do obsługi wejścia/wyjścia architektura NT stosuje przetwarzanie pakietowe, które wykorzystuje IRP (I/O request packet - pakiet zamówienia wejścia/wyjścia), oraz wejście/wyjście asynchroniczne. Poczynając od Windows XP, Microsoft rozpoczął wbudowywanie obsługi trybu 64-bitowego w swoje systemy operacyjne — wcześniejsze wersje korzystały tylko z trybu 32-bitowego. Architektura Windows NT jest wysoce modularna i składa się z dwóch głównych warstw: trybu użytkownika i trybu jądra. Programy i podsystemy w trybie użytkownika są ograniczone do zasobów systemowych, do których mają dostęp, w trybie jądra natomiast posiadają nieograniczony dostęp do pamięci systemowej i urządzeń zewnętrznych. Jądra systemów operacyjnych w technologii NT są określane jako jądra hybrydowe, jednakże warto zauważyć, iż jest to sprawą dyskusyjną, gdyż jądro to jest właściwie jądrem monolitycznym o strukturze zbliżonej do mikrojądra. Architektura NT składa się z jądra hybrydowego, warstwy abstrakcji sprzętowej (HAL), sterowników i egzekutora. Wszystkie te moduły działają w trybie jądra[1]. Usługi o wyższym poziomie abstrakcji są implementowane przez egzekutor.
Tryb użytkownika w technologii Windows NT składa się z podsystemów, umożliwiających przekazywanie zamówień wejścia/wyjścia za pomocą menedżera wejścia/wyjścia do odpowiedniego sterownika programowego, działającego w trybie jądra. Warstwa użytkownika Windows 2000 składa się z dwóch podsystemów: podsystemu środowiska (uruchamia aplikacje napisane dla wielu różnych typów systemów operacyjnych) i podsystemu integralności (uruchamia specyficzne dla systemu funkcje w zastępstwie podsystemu środowiska). Tryb jądra w Windows 2000 ma pełny dostęp do sprzętu i zasobów systemowych komputera. Tryb jądra blokuje dostęp dla usług i aplikacji trybu użytkownika do krytycznych elementów systemu operacyjnego, do których nie powinny mieć one dostępu.
Egzekutor komunikuje się ze wszystkimi podsystemami trybu użytkownika. Obsługuje wejście/wyjście, zarządza obiektami, zabezpieczeniami, oraz procesami. Jądro umieszczone jest pomiędzy HAL i Egzekutorem, zapewniając synchronizację wieloprocesorową, szeregowanie zadań i przerwań wraz z ich przydzielaniem, oraz zarządzanie obsługą pułapek i rozdzielaniem wyjątków. Jądro jest odpowiedzialne również za inicjalizację sterowników sprzętu podczas uruchamiania systemu. Sterowniki poziomu jądra występują na trzech poziomach: wysokim, pośrednim, oraz niskim. Windows Driver Model(inne języki) (WDM - model tworzenia sterowników dla Windows) występuje na poziomie pośrednim i został zaprojektowany tak, aby zachować zgodność binarną i kodu źródłowego pomiędzy Windows 98 a Windows 2000. Sterowniki niskiego poziomu są albo sterownikami Windows NT starszego typu, kontrolującymi urządzenie bezpośrednio, albo szyną systemową typu Plug-and-play.