Architektura systemu Windows: opis, typy, struktura

Architektura Windows NT - linii systemów operacyjnych produkowanych i sprzedawanych przez Microsoft - jest projektem wielopoziomowym, składającym się z dwóch głównych komponentów: trybu użytkownika i trybu jądra.

Jest to system operacyjny, który można odtworzyć z ostrzeżeniem, zaprojektowany do pracy z komputerami z procesorem jednoprocesorowym i wieloprocesorowym (SMP). Do przetwarzania żądań We /Wy używają transmisji pakietowej, która wykorzystuje pakiety IRP i asynchroniczne operacje we /wy. Począwszy od Windows XP, Microsoft zaczął dostarczać 64-bitowe wersje systemu operacyjnego, zanim te platformy istniały tylko w 32-bitowych wersjach.

Jakie są jej zasady?

Architektura systemu Windows działa według następujących zasad. Aplikacje i podsystemy w trybie użytkownika są ograniczone pod względem zasobów systemowych, do których mają dostęp, a tryb jądra ma nieograniczony dostęp do pamięci systemowej i urządzeń zewnętrznych.


Tryb jądra systemu Windows NT ma pełny dostęp do zasobów sprzętowych i systemowych komputera. Jądro tej powłoki jest znane jako hybrydowe. Architektura obejmuje prosty rdzeń, poziom abstrakcji sprzętu (HAL), sterowniki i usługi (określane zbiorczo jako Executive), które istnieją w tym samym trybie. Tryb niestandardowy w architekturze systemu Windows składa się z podsystemów, które mogą przesyłać żądania we /wy do odpowiednich sterowników trybu jądra za pomocą odpowiedniego kontrolera. Kula trybu użytkownika "Wiatry" składa się z "Podsystemów środowiska", w którym wykonywana jestaplikacje napisane dla różnych systemów operacyjnych i podsystemów „Integral”, który wykonuje funkcje systemowe na rzecz środowiska podsystemu.


architektura Interfejs Executive z wszystkich podsystemów systemu Windows Tryb użytkownika czynienia z I /O, zarządzania obiektami, bezpieczeństwa i zarządzania procesami. Rdzeń jest między poziomem abstrakcji sprzętu i urządzeń wykonawczych, zapewniając wieloprocesorowych synchronizacji, planowanie i wysyłka przepływu i przerwania obsługi przerwań i wyjątków planowania. Jądro jest również odpowiedzialne za inicjowanie sterowników urządzeń podczas startu systemu. Kierowcy tego trybu istnieją na trzech poziomach:
  • wyżej;
  • półprodukt;
  • niski.
  • Kierowca modelu systemu Windows (WDM) występują na poziomie średniozaawansowanym i zostało zaprojektowane głównie do zapewnienia kompatybilności i wyjście kodu binarnego między oknami 982000. sterowniki najniższym poziomie są przestarzałe wyposażenie instalatorów Windows NT, które kontrolować urządzenie bezpośrednio lub mogą być rodzajem Odtwórz (PnP) - magistrala sprzętowa.

    Tryb użytkownika

    Tryb użytkownika składa się z różnych procesów systemowych i bibliotek DLL.
    Połączenie pomiędzy zastosowań i funkcji jądra systemu operacyjnego, nazywana jest „środowisko podsystemu”. Architektura systemu Windows 7 i inni w linii NT) może mieć więcej niż jeden z nich, z których każdy implementuje zestaw API. Ten mechanizm został zaprojektowany do obsługi aplikacji napisanych dla różnych typów systemów operacyjnych. Żaden z podsystemówśrodowisko nie ma bezpośredniego dostępu do sprzętu. Dostęp do funkcji sprzętowych odbywa się poprzez wywołanie procedur trybu jądra.

    Jaką rolę odgrywa podsystem?

    Istnieją cztery główne środowisko podsystemy: Win32 OS /2 Windows, Linux i POSIX. Podsystem środowiska Win32 może uruchamiać 32-bitowe programy Windows. To obejmuje konsolę, a wsparcie na kłódkę polu tekstowym i leczenie poważnych błędów dla wszystkich innych podsystemów środowiska. Wspiera on także ntvdm (VDM), które pozwalają MS-DOS i 16-bitowe aplikacje uruchamiane w Win16 Windows NT. Istnieje specjalny VDM MS-DOS, który biegnie we własnej przestrzeni adresowej i emuluje Intel 80486 systemem MS-DOS 5.0. Programy Win16 działają jednak w Win16 VDM. Każdy domyślny biegnie w tym samym procesie, stosując tę ​​samą przestrzeń adresową i Win16 VDM daje każda aplikacja własny wątek do wykonania. Jednak architektura systemu Windows NT umożliwia użytkownikom uruchamianie go w osobnym oknie, co pozwala zapobiegać wielozadaniowości, ponieważ system Windows przewyższa cały proces VDM, który zawiera tylko jedną uruchomioną aplikację.
    Środowisko proces podsystemu Win32 (Csrss.exe zawiera również funkcję zarządzania oknem, czasami nazywane „window manager”. Zajmuje zdarzeń wejściowych (na przykład klawiatury i myszy), a następnie wysyła załączniki wiadomości, które wymagają, aby ta wprowadzić Każda aplikacja jest odpowiedzialna za wyświetlanie lub aktualizowanie własnych okien i menu w odpowiedzi na te wiadomości
    .Środowisko Podsystem OS /2 obsługuje aplikacje 16-bitowe symboliczny OS /2 i emuluje OS /2 1.x, ale nie 32-bitowy lub OS aplikacji graficznych 2 stosowany w OS /2 2.x lub nowsza tylko dla komputerów x86 . Aby uruchomić oprogramowanie graficzne OS /2 1.x, należy zainstalować podsystem dodatku Windows NT do Presentation Manager. Najnowsza wersja NT, podsystem OS /2 był „Vindovs 2000”, a następnie został usunięty, począwszy od architektury systemu Windows XP. Podsystem środowiskowy POSIX obsługuje programy napisane ściśle dla POSIX.1 lub odpowiadających im norm ISO /IEC. Został zastąpiony przez Interix, który jest częścią Windows Services for UNIX. Podsystem bezpieczeństwa współpracuje z tokenów zabezpieczeń, grantów lub blokuje dostęp do kont użytkowników na podstawie zezwoleń zasobów do obsługi żądań uwierzytelniania logowania i wyzwala wejście i określa, jakie zasoby systemowe należy sprawdzić system Windows NT.

    w trybie jądra

    w trybie jądra w Windows NT architektury ma pełny dostęp do zasobów sprzętowych i systemowych i uruchamia kod komputerowy w chronionym obszarze pamięci. Kontroluje dostęp do planowania, priorytetu strumieniowego, zarządzania pamięcią i współdziałania. Zapobiega usług trybie jądra i dostęp do aplikacji trybu użytkownika do krytycznych obszarów systemu operacyjnego, które nie powinny mieć dostępu, jego procesy powinny żądania trybu jądra do wykonywania takich operacji w ich imieniu.

    Mimo, że architektura systemu Windows x86 obsługuje cztery różne poziomy uprawnień (od 0 do 3), przy użyciu tylko dwóch skrajnych nich.Programy trybu użytkownika są uruchamiane z CPL 3, a rdzeń z CPL 0. Te dwa poziomy są często określane odpowiednio jako "pierścień 3" i "pierścień 0". Ta decyzja projektowa została podjęta, aby zapewnić przenośność kodu dla platform RISC, które obsługują tylko dwa poziomy uprawnień, chociaż narusza to zgodność OS /2 z segmentami uprawnień we /wy, które próbują uzyskać bezpośredni dostęp do sprzętu. Tryb jądra składa się z wykonywalnych usług, które składają się z wielu modułów wykonujących określone zadania: sterowniki jądra, rdzeń i poziom abstrakcji sprzętowej (HAL).

    Administracja

    Windows Executive Services jest niskopoziomową częścią trybu jądra i znajduje się w pliku NTOSKRNL.EXE. Obejmuje to zarządzanie danymi wejściowymi /wyjściowymi, zarządzanie obiektami, bezpieczeństwo i procesy. Są one podzielone na kilka podsystemów, wśród których szczególną rolę odgrywają: Cache Manager, Configuration Manager, I /O Manager, Local Procedure Call (LPC), Memory Manager, Process Structure i Security Monitor Monitor (SRM). Komponenty zgrupowane razem można nazwać usługami wykonywalnymi (wewnętrzna nazwa Ex). Usługi systemowe (nazwa wewnętrzna Nt), czyli wywołania systemowe, są również implementowane na tym poziomie, z wyjątkiem bardzo niewielu osób, które uzyskują bezpośredni dostęp do poziomu jądra w celu zwiększenia wydajności.
    Termin "usługa" w tym kontekście zwykle odnosi się do wywoływanego podprogramu lub zestawu nazwanych podprogramów. Różni się od koncepcji "procesu serwisowego", który jest komponentem trybu interfejsu, nieco podobnegodemonstracje w uniksowych systemach operacyjnych. Jest to cecha głównej architektury systemu Windows 10 i wszystkich poprzednich dystrybucji.

    Object Manager

    Object Manager (nazwa wewnętrzna Ob) jest wykonalnym podsystemem, przez który muszą przejść wszystkie inne podsystemy, w szczególności wywołania systemowe, aby uzyskać dostęp do zasobów Windows NT, które są w zasadzie , sprawia, że ​​jest to usługa zarządzania zasobami infrastruktury. Menedżer obiektów jest używany do ograniczenia duplikowania funkcji zarządzania zasobami w innych podsystemach wykonawczych, co może prowadzić do błędów i komplikowania rozwoju systemu Windows NT. W przypadku tego menedżera każdy zasób jest obiektem, niezależnie od tego, czy jest on fizyczny (np. System plików lub urządzenie peryferyjne), czy logiczny (na przykład plik). Każdy obiekt ma strukturę lub typ, o których powinien wiedzieć Ob. Tworzenie obiektu w architekturze systemu operacyjnego Windows to proces, który przebiega w dwóch etapach - tworzenia i wstawiania. Tworzenie powoduje przydzielenie pustego obiektu i rezerwację wszelkich zasobów wymaganych przez menedżera, takich jak (opcjonalnie) nazwa w przestrzeni nazw. Jeśli się powiedzie, podsystem odpowiedzialny za stworzenie wypełnia pusty obiekt. Na koniec, jeśli podsystem uzna inicjalizację za zakończoną pomyślnie, przekazuje menedżerowi obiektu instrukcję wstawiania obiektu, udostępniając go poprzez jego nazwę lub plik cookie, nazywany uchwytem. Od tego momentu, istnienie obiektu jest obsługiwane przez menedżera, a podsystem musi utrzymywać go w stanie gotowości do działania, dopóki Ob nie zgłosi gousuń Deskryptory są identyfikatorami reprezentującymi odniesienie do zasobu jądra z powodu nieprzezroczystej wartości. Podobnie otwarcie obiektu poprzez jego nazwę podlega kontrolom bezpieczeństwa, ale działanie za pośrednictwem istniejącego otwartego deskryptora ogranicza się jedynie do poziomu dostępu zamówionego przy otwieraniu lub tworzeniu obiektu.
    Typy obiektów definiują procedury i wszelkie dane specyficzne dla nich. Tak więc Ob pozwala Windows NT być zorientowanym obiektowo systemem operacyjnym, ponieważ typy obiektów mogą być postrzegane jako klasy polimorficzne, które definiują obiekty. Jednak większość podsystemów z godnym uwagi wyjątkiem w menedżerze I /O polega na domyślnej implementacji wszystkich procedur. Każda instancja tworzonego obiektu przechowuje jego nazwę, parametry przekazywane do funkcji tworzenia obiektu, atrybuty zabezpieczeń i wskaźnik do jego typu.

    Kontroler pamięci podręcznej

    Ten element systemu Windows 7 i innych wersji architektury ściśle koordynuje się z menedżerami pamięci, menedżerami i sterownikami we /wy, aby zapewnić wspólną pamięć podręczną dla normalnych operacji we /wy opartych na plikach. Menedżer pamięci podręcznej Windows współpracuje z blokami plików (a nie blokami urządzeń) w celu zapewnienia spójnej pracy plików lokalnych i zdalnych oraz zapewnia spójność z wyświetlaniem danych załadowanych do pamięci.

    Menedżer I /O

    Ten komponent systemu Windows 10 i wcześniejszej architektury umożliwia urządzeniom komunikację z podsystemami trybu użytkownika. Tłumaczy polecenia odczytu iNapisz użytkownika trybu w IRP, który przesyła do sterowników urządzeń. Akceptuje żądania wejścia /wyjścia systemu plików i konwertuje je na wywołania specyficzne dla urządzenia i może zawierać sterowniki niskiego poziomu, które bezpośrednio manipulują sprzętem do odczytu lub wprowadzania danych wyjściowych. Zawiera także menedżera pamięci podręcznej, który zwiększa wydajność dysku poprzez buforowanie żądań odczytu i zapisu na dysku w tle.

    Lokalne wywołanie procedury (LPC)

    Ta strukturalna część architektury systemu Windows 10 (i wszystkich poprzednich dystrybucji) zapewnia porty komunikacji międzyprocesowej z semantyką połączenia. Porty LPC są używane przez podsystemy w trybie użytkownika do komunikowania się ze swoimi klientami, podsystemami Executive do komunikacji z podsystemami trybu użytkownika i jako podstawa lokalnego transportu dla Microsoft RPC.

    Menedżer pamięci

    Ten element systemu Windows 8.1 i innych wersji steruje pamięcią wirtualną, jej ochroną i pompowaniem z fizycznej na pomocniczą. W ten sposób wprowadza uniwersalną dystrybucję pamięci fizycznej. Tworzy także parser PE, który pozwala na wyświetlanie pliku wykonywalnego lub nie jest wyświetlany przez krok atomowy. Począwszy od wersji Windows NT Server 4.0 Terminal Server, menedżer pamięci implementuje tak zwaną przestrzeń sesji - pasmo pamięci trybu jądra, które zmienia kontekst tak jak pamięć trybu użytkownika. Dzięki temu wiele wystąpień trybu jądra Win32 i sterowników GDI może pracować obok siebie,pomimo wad ich oryginalnego projektu. Każda przestrzeń sesji jest współdzielona przez kilka procesów, łącznie określanych jako "sesje". Aby zapewnić stopień izolacji pomiędzy sesjami bez wprowadzania nowego typu referencyjnego obiektu bezpieczeństwa monitora obsługuje komunikację między procesami i sesji jako atrybut zabezpieczenia przedmiotu (tokena) i mogą być zmieniane tylko ze specjalnymi uprawnieniami. Stosunkowo proste i szczególny charakter sesji ze względu na fakt, że nie były one częścią oryginalnego projektu i musiał być zaprojektowany z minimalnym naruszenie głównej linii przez osobę trzecią (Citrix Systems) jako warunku koniecznego dla ich końcowej produktu serwerowego dla systemu Windows NT, zwany WinFrame Jednak od czasu architektury systemu Windows Vista sesje w końcu stały się adekwatne do jego aspektu. Nie jest już budowa menedżer pamięci, że idzie do użytkownika za pośrednictwem Win32 one zostały rozbudowane do kompleksowego abstrakcji dotyka większość podsystemy wykonawcze. W rzeczywistości regularne korzystanie z systemu Windows Vista zawsze prowadzi do środowiska wielosesyjnego.

    Struktura procesu

    Ten architektoniczny cechą Windows 7 (i w innych odmianach) zarządza tworzeniem i realizację procesu i nici i wprowadza pojęcie robota, procesy grupy mogą być wypełnione w całości lub objęte ogólnymi ograniczeniami (np , całkowita maksymalna przydzielona pamięć lub czas procesora). Przedmioty cele zostały wprowadzone w systemie Windows 2000

    Menedżer PnP

    Zarządza i utrzymuje wykryć i zainstalować urządzenie w czasie startu. On jestJest również odpowiedzialny za uruchomienie i zatrzymanie urządzenia na żądanie - może się zdarzyć, gdy opona (na przykład USB lub IEEE 1394 FireWire) staje się nowe urządzenie i wspierać to należy pobrać sterownik. Jego głównym elementem jest faktycznie realizowane w trybie użytkownika, typu Plug and Play usług, co jest często trudne zadanie, aby zainstalować odpowiednie sterowniki, usługi i aplikacje wiadomości o nowych urządzeniach i wyświetlanie graficznego interfejsu użytkownika.

    Power Manager

    Od wydarzeń z mocą (Power off, gotowości, hibernacji, i tak dalej. D.) i powiadamia dotkniętych sterowniki ze szczególnym IRP (IRP zasilania). Jego rola polega na kontrolowaniu.

    Security Monitor Monitor (SRM)

    Główny organ zapewniający bezpieczeństwo integralnego podsystemu bezpieczeństwa. Określa, czy dostęp do obiektu lub zasobu można uzyskać za pomocą list ACL, które składają się z ACE. ACE zawierać identyfikator zabezpieczeń (SID) oraz listę transakcji, które ACE dostarcza wybraną grupę - konto użytkownika lub sesję logowania Group - zezwolenie (allow, deny lub potwierdzić) dla tego zasobu.

    GDI

    Interfejs urządzenia graficznego odpowiada za zadania takie jak rysowanie linii i krzywych, wyświetlanie czcionek i obsługa paneli. W serii Windows NT 3.x składnik GDI podsystemu zawartej w trybie klient /serwer, użytkownik, ale został przeniesiony do architektury rdzenia systemu operacyjnego Windows NT 4.0 w celu poprawywydajność graficzna.

    Kernel

    Jądro w architekturze Windows znajduje się między HAL a Executive i zapewnia wieloprocesorową synchronizację, szeregowanie i harmonogramowanie przepływów i przerw, a także wyjątki dotyczące obsługi przerwań i wysyłania. Jest również odpowiedzialny za inicjowanie sterowników urządzeń podczas rozruchu, które są wymagane do uruchomienia systemu operacyjnego. Oznacza to, że jądro wykonuje praktycznie wszystkie zadania tradycyjnego mikro-jądra. Ścisłe rozróżnienie między Executive i Kernel jest najbardziej widoczną pozostałością oryginalnego projektu mikro-jądra, a historyczna dokumentacja projektowa konsekwentnie nazywa komponent jądra "mikroukładem". Jądro często współdziała z menedżerem procesów. Poziom abstrakcji jest taki, że nigdy nie odnosi się do menedżera procesu, ale tylko odwrotnie (z wyjątkiem kilku nietypowych przypadków, które nigdy nie osiągają funkcjonalnej zależności).

    Powiązane publikacje