Tartalom
A Windows NT architektúrája, a Microsoft által gyártott és forgalmazott operációs rendszerek sorozata, többszintű kialakítás, amely két fő összetevőből áll: felhasználói mód és kernel mód.

Ez egy proaktív reentrant operációs rendszer, amelyet a dolgozni egyprocesszoros és szimmetrikus multiprocesszoros (SMP) számítógépekkel. A bemeneti és kimeneti (I/O) kérések feldolgozásához csomagátvitelt használnak, amely IRP csomagokat és aszinkron I/O-t használ. A Windows XP-től kezdve a Microsoft elkezdte biztosítani az operációs rendszer 64 bites verzióit, mielőtt ezek a platformok csak 32 bites verziókban léteztek.
Melyek az alapelvei?
A Windows operációs rendszer architektúrája a következő elveket valósítja meg. A programok és alrendszerek felhasználói módban korlátozottak abban a tekintetben, hogy mely rendszererőforrásokhoz férnek hozzá, míg a kernel mód korlátlan hozzáférést biztosít a rendszermemóriához és a külső eszközökhöz.
Kernel mód A Windows NT teljes hozzáférést biztosít a hardver és a rendszer erőforrásait a számítógép. Ennek a héjnak a magja hibrid néven ismert. Az architektúra tartalmaz egy egyszerű kernelt, egy hardver absztrakciós réteget (hal), illesztőprogramokat és számos szolgáltatást (együttesen Executive néven), amelyek mind ugyanabban a módban léteznek.
A Windows architektúra felhasználói módja olyan alrendszerekből áll, amelyek képesek I/O kéréseket továbbítani a megfelelő kernel módú illesztőprogramokhoz a megfelelő diszpécser segítségével. A Windows felhasználói mód rétege "környezeti alrendszerekből" áll, amelyekben különféle operációs rendszerekre írt alkalmazások kerülnek végrehajtásra, valamint egy "integrált alrendszerből", amely a rendszer funkcióit a környezeti alrendszerek nevében hajtja végre.

A Windows architektúra Executive interfészei az összes felhasználói módú alrendszerrel foglalkoznak az I/O-val, az objektumkezeléssel, a biztonsággal és a folyamatkezeléssel. A kernel a hardver absztrakciós réteg és a végrehajtó eszköz között helyezkedik el, biztosítva a többprocesszoros szinkronizálást, a szálak és megszakítások ütemezését és diszpécserét, valamint a megszakítások kezelését és a kivétel diszpécserét. A rendszermag felelős az eszközillesztők inicializálásáért is indításkor.
Ennek a módnak az illesztőprogramjai három szinten léteznek:
- magasabb;
- középhaladó;
- alacsony.
A Windows Driver Model (WDM) középszinten létezik, és elsősorban a bináris és forráskód kompatibilitás biztosítására tervezték a Windows 98 és 2000 között. A legalacsonyabb szintű illesztőprogramok vagy a Windows NT eszközök elavult telepítői, amelyek közvetlenül vezérlik az eszközt, vagy lehetnek játékfajták (PnP) - hardverbusz.
Felhasználói mód
A felhasználói mód különböző rendszerfolyamatokból és DLL könyvtárakból áll.

Az alkalmazások és az operációs rendszer kernelfunkciói közötti interfészt "környezeti alrendszernek" nevezzük. A Windows architektúrája (7 és mások az NT sorban) egynél több lehet, amelyek mindegyike saját API-készletet valósít meg. Ezt a mechanizmust úgy tervezték, hogy támogassa a sokféle operációs rendszerhez írt alkalmazásokat. A környezet egyik alrendszere sem rendelkezik közvetlen hozzáféréssel a hardverhez. A hardverfunkciók a kernel mód rutinjainak meghívásával érhetők el.
Milyen szerepet játszanak az alrendszerek?
A környezetnek négy fő alrendszere van: Win32, OS/2, Windows for Linux és POSIX.
A Win32 környezet alrendszer 32 bites Windows alkalmazásokat képes futtatni. Tartalmaz egy konzolt, valamint szöveges ablak támogatást, leállítást és súlyos hibakezelést a környezet összes többi alrendszeréhez. Támogatja a DOS virtuális gépeket (VDM) is, amelyek lehetővé teszik az MS-DOS és a 16 bites Win16 alkalmazások futtatását Windows NT rendszeren.
Van egy speciális MS-DOS VDM, amely a saját címtartományában fut, és az Intel 80486-ot emulálja az MS-DOS 5 futtatásával.0. A Win16 programok azonban a Win16 VDM-ben működnek. Mindegyiket alapértelmezés szerint ugyanabban a folyamatban hajtják végre, ugyanazt a címtartományt használva, a Win16 VDM pedig minden programnak saját szálat biztosít a végrehajtáshoz. A Windows NT rendszer architektúrája azonban lehetővé teszi a felhasználók számára, hogy külön ablakban futtassák, ami lehetővé teszi a megelőző többfeladatot, mivel a Windows megelőzi a teljes VDM folyamatot, amely csak egy futó alkalmazást tartalmaz.

Win32 környezet alrendszer folyamat (csrss.exe) ablakkezelő funkciókat is tartalmaz, amelyeket néha "ablakkezelőnek"is neveznek. Feldolgozza a bemeneti eseményeket (például a billentyűzetről és az egérről), majd üzeneteket küld azoknak az alkalmazásoknak, amelyeknek meg kell kapniuk ezt a bemenetet. Minden alkalmazás felelős a megjelenése vagy frissítése a saját ablakok és menük válaszul ezeket az üzeneteket.
Az OS / 2 környezet alrendszer támogatja az OS/2 16 bites karakteres alkalmazásokat és emulálja az OS / 2 1-et.x, de nem az OS/2 2-ben használt 32 bites vagy grafikus OS 2 Alkalmazások.x vagy újabb verzió csak x86 számítógépekhez.
Az OS/2 grafikus programok futtatása 1.x a Prezentációkezelő Windows NT bővítmény alrendszerét telepíteni kell. Az NT utolsó verziója OS/2 alrendszerrel A Windows 2000 volt, majd eltávolították, kezdve a Windows XP architektúrával.
A POSIX környezet alrendszer támogatja azokat az alkalmazásokat, amelyek szigorúan a POSIX számára vannak írva.1, vagy a megfelelő ISO/ IEC szabványok. Ezt felváltotta az Interix, amely a Windows Services for UNIX része.
A biztonsági alrendszer biztonsági tokenekkel működik, erőforrásengedélyek alapján engedélyezi vagy megtagadja a hozzáférést a felhasználói fiókokhoz, feldolgozza a bejelentkezési kérelmeket és kezdeményezi a bejelentkezési hitelesítést, valamint meghatározza, hogy mely rendszererőforrásokat kell ellenőriznie a Windows NT-nek.

Kernel Mód
A Windows NT architektúrában a kernel mód teljes hozzáféréssel rendelkezik a számítógép hardver-és rendszererőforrásaihoz, és a kódot védett memóriaterületen futtatja. Ez vezérli a hozzáférést az ütemezéshez, a szál prioritásokhoz, a memóriakezeléshez és a hardveres interakcióhoz. A Kernel mód nem teszi lehetővé a felhasználói módú szolgáltatások és alkalmazások számára, hogy hozzáférjenek az operációs rendszer kritikus területeihez, amelyekhez nem szabad hozzáférniük, folyamatainak kérniük kell a kernel módot az ilyen műveletek végrehajtására a nevükben.
Bár a Windows x86 architektúra négy különböző jogosultsági szintet támogat (0 - tól 3-ig), csak két extrém. A felhasználói módú programok CPL 3-mal, a kernel pedig CPL 0-val futnak. Ezt a két szintet gyakran "3. gyűrűnek", illetve "0. gyűrűnek" nevezik. Ez a tervezési döntés azért született, hogy biztosítsa a kód hordozhatóságát olyan RISC platformokra, amelyek csak két jogosultsági szintet támogatnak, bár ez sérti az OS/2 alkalmazásokkal való kompatibilitást, amelyek I/O jogosultsági szegmenseket tartalmaznak, amelyek megpróbálják közvetlenül elérni a hardvert.
a kernel mód executive szolgáltatásokból áll, amelyek számos modulból állnak, amelyek bizonyos feladatokat hajtanak végre: kernel illesztőprogramok, maga a kernel és a hardver absztrakciós szint (HAL).
Alkalmazás
A Windows Executive szolgáltatások a kernel mód alacsony szintű részét képezik, és az NTOSKRNL tartalmazza.EXE fájl. Ez vonatkozik az I / O-ra, az objektumkezelésre, a biztonságra és a folyamatkezelésre. Több alrendszerre vannak felosztva, amelyek között a Cache Manager, a Configuration Manager, az I/O Manager, a Local Procedure Call (LPC), a Memory Manager, a Process Structure and Security Monitoring Monitor (SRM) különleges szerepet játszik. Csoportosítva komponensek nevezhetjük executive services (belső Ex neve). A rendszerszolgáltatások (nt belső név), vagyis a rendszerhívások szintén ezen a szinten valósulnak meg, kivéve nagyon kevés, amely közvetlenül a kernel szintjéhez fér hozzá a teljesítmény javítása érdekében.

A "szolgáltatás" kifejezés ebben az összefüggésben általában egy szubrutin hívására vagy egy sor szubrutin hívására utal. Ez eltér a "szolgáltatási folyamat" fogalmától, amely egy felhasználói módú összetevő, amely némileg hasonló a UNIX-szerű operációs rendszerek demonstrációjához. Ez építészeti funkció a Windows 10 és az összes korábbi disztribúció kernelei.
Objektumkezelő
Az Objektumkezelő (ob belső név) egy végrehajtó alrendszer, amelyen keresztül az összes többi ilyen alrendszernek át kell mennie, különösen a rendszerhívásoknak A Windows NT erőforrások elérése érdekében, ami valójában erőforrás-kezelési infrastruktúra-szolgáltatássá teszi. Az Objektumkezelő az erőforrás-kezelési funkciók megkettőzésének csökkentésére szolgál más végrehajtó alrendszerekben, ami hibákhoz vezethet, és bonyolítja a Windows NT fejlesztését.
Ennél a kezelőnél minden erőforrás objektum, függetlenül attól, hogy fizikai (például fájlrendszer vagy perifériás eszköz) vagy logikai (például fájl). Minden objektumnak van egy szerkezete vagy típusa, amelyről az Ob-nek tudnia kell.
Objektum létrehozása A Windows operációs rendszer architektúrájában egy olyan folyamat, amely két szakaszban zajlik - létrehozás és beillesztés. A létrehozás egy üres objektum lefoglalását, valamint a diszpécser által igényelt erőforrások lefoglalását okozza, például (nem kötelező) a névtér. Ha sikeres volt, a létrehozásért felelős alrendszer kitölti az üres objektumot. Végül, ha az alrendszer sikeresnek tartja az inicializálást, utasítja az objektumkezelőt egy objektum beszúrására, amely elérhetővé teszi azt a nevén vagy egy leírónak nevezett cookie-n keresztül. Ettől a pillanattól kezdve az objektum élettartamát a menedzser dolgozza fel, és az alrendszernek működőképes állapotban kell tartania, amíg az Ob nem jelenti az eltávolítását.
a leírók olyan azonosítók, amelyek átlátszatlan értéken keresztül hivatkoznak egy kernel erőforrásra. Hasonlóképpen, az objektum nevének megnyitását biztonsági ellenőrzéseknek vetik alá, de a meglévő nyitott fogantyún keresztüli műveletet csak az objektum megnyitásakor vagy létrehozásakor kért hozzáférési szint korlátozza.

Az Objektumtípusok meghatározzák az eljárásokat és az arra jellemző adatokat. Így az Ob lehetővé teszi, hogy a Windows NT objektumorientált operációs rendszer legyen, mivel az Objektumtípusok megtekinthetők mint polimorf objektumokat meghatározó osztályok. A legtöbb alrendszer azonban, az I/O kezelő figyelemre méltó kivétellel, az összes eljárás alapértelmezett megvalósítására támaszkodik.
A létrehozott objektum minden példánya tárolja saját neve, , az objektum létrehozási függvénynek átadott paraméterek, biztonsági attribútumok és a típusára mutató mutató.
Gyorsítótár Vezérlő
A Windows 7 és más verziók architektúrájának ez az eleme szorosan összehangolódik a memóriakezelővel, a diszpécserrel és az I / O illesztőprogramokkal, hogy közös gyorsítótárat biztosítson a normál fájl I/O számára. A Windows gyorsítótár-kezelő fájlblokkokkal (nem pedig eszközblokkokkal) működik a helyi és távoli fájlok következetes működése érdekében, és bizonyos fokú összhangot biztosít a memóriában betöltött adatok megjelenítésével.
I / O Menedzser
A Windows 10 és korábbi verziók architektúrájának ezen összetevője lehetővé teszi az eszközök számára, hogy kommunikáljanak a felhasználói módú alrendszerekkel. A felhasználói módú olvasási és írási parancsokat IRP-be fordítja, amelyet az eszközillesztőknek továbbít. Elfogadja a fájlrendszer I / O kéréseit, és eszközspecifikus hívásokká alakítja őket, és tartalmazhat alacsony szintű illesztőprogramokat, amelyek közvetlenül manipulálják a hardvert az olvasáshoz vagy az I/O-hoz. Tartalmaz egy gyorsítótár-kezelőt is, amely javítja a lemez teljesítményét azáltal, hogy gyorsítótárazza a lemez olvasási és írási kéréseit a háttérben.
Helyi eljáráshívás (LPC)
A Windows 10 architektúrájának ez a szerkezeti része (és az összes korai disztribúció) portokat biztosít a folyamatok közötti kommunikációhoz a kapcsolati szemantikával. Az LPC portokat a felhasználói módú alrendszerek használják az ügyfelekkel való kommunikációra, az Executive alrendszerek a felhasználói módú alrendszerekkel való kommunikációra, valamint az alapja helyi szállítás a Microsoft RPC számára.
Memory Manager
A Windows 8 architektúra ezen eleme.1 és más verziók kezeli a virtuális memória, a védelem és a lapozás a fizikai és a másodlagos. Így egy univerzális fizikai memória allokátort valósít meg. Azt is létrehoz egy elemző PE futtatható, amelyek lehetővé teszik a végrehajtható megjeleníthető vagy nem jelenik meg egy atomi lépésben.
Windows NT Server 4.0, Terminálkiszolgáló kiadás, a memóriakezelő végrehajtja az úgynevezett munkamenetterületet, a kernel módú memória tartományát, amely a kontextusváltásnak van kitéve, ugyanúgy, mint a felhasználói módú memória. Ez lehetővé teszi, hogy a Win32 kernel módú alrendszer és a GDI illesztőprogramok több példánya egymás mellett működjön, az eredeti kialakítás hibái ellenére. Minden munkamenetet több folyamat oszt meg, amelyeket együttesen "munkamenetnek"neveznek.
Annak érdekében, hogy bizonyos fokú elszigeteltséget biztosítson a munkamenetek között anélkül, hogy új típusú objektumot vezetne be, a security link monitor a folyamatok és munkamenetek közötti kommunikációt a biztonsági tárgy (token) attribútumaként kezeli, és csak speciális jogosultságok esetén változtatható meg.
A munkamenetek viszonylag egyszerű és különleges jellege annak köszönhető, hogy nem voltak az eredeti projekt részei, és a fővonal minimális megszakításával kellett kifejleszteni egy harmadik fél (Citrix Systems), amely a Windows NT terminálkiszolgáló termékének, a WinFrame-nek az előfeltétele.
A Windows Vista architektúrától kezdve azonban a munkamenetek végre megfelelő aspektusává váltak. Már nem olyan memóriakezelő konstrukció, amely a Win32-En keresztül közvetetten felhasználói módra vált, hanem egy átfogó absztrakcióvá bővült, amely a legtöbb végrehajtó alrendszert érinti. Valójában a Windows Vista rendszeres használata mindig több munkamenetű környezethez vezet.
Folyamat felépítése
A Windows 7 operációs rendszer architektúrájának ez az eleme (és más változatok) kezeli a folyamatok és szálak létrehozását és megszüntetését, valamint megvalósítja a Job fogalmát, a folyamatok csoportjait, amelyek egészében vagy közös korlátok alá helyezhetők (például a teljes maximális lefoglalt memória vagy CPU idő). A feladatobjektumokat a Windows 2000 rendszerben vezették be.
PNP Menedzser
Kezeli és támogatja az eszközök felderítését és telepítését a rendszerindítás során. Az eszközök igény szerinti leállításáért és indításáért is felelős - ez akkor fordulhat elő, ha egy busz (például USB vagy IEEE 1394 FireWire) új eszközt szerez be, amelynek támogatásához illesztőprogramot kell letölteni. Fő része valójában felhasználói módban, a Plug and Play szolgáltatásban valósul meg, amely gyakran komplex feladatokat lát el a megfelelő illesztőprogramok telepítésével, a szolgáltatások és alkalmazások értesítésével az új eszközök megjelenítéséről és a grafikus felhasználói felület megjelenítéséről.
Power Manager
Működik teljesítmény események (kikapcsolás, Készenlét, alvó üzemmód,. stb..) és értesíti az érintett illesztőprogramokat speciális IRP-K (Power IRP)használatával. Az ő szerepe egy kontroll.
Biztonsági Monitoring Monitor (SRM)
Az integrált biztonsági alrendszer biztonsági szabályainak betartását biztosító fő szerv. Meghatározza, hogy egy objektum vagy erőforrás elérhető-e hozzáférés-vezérlési listák (ACL-ek) segítségével, amelyek maguk is hozzáférés-vezérlési rekordokból (ACE)állnak. Az ACES tartalmaz egy biztonsági azonosítót (Sid), valamint azon műveletek listáját, amelyeket az ACE biztosít a kiválasztott csoportnak - felhasználói fiók, csoport vagy bejelentkezési munkamenet - engedély (engedélyezés, megtagadás vagy ellenőrzés végrehajtása) ehhez az erőforráshoz.
GDI
A grafikus eszköz interfésze felelős olyan feladatokért, mint a vonalak és görbék rajzolása, betűtípusok rajzolása és paletták feldolgozása. A Windows NT 3 sorozat kiadásaiban.x a GDI komponens felhasználói módban került a kliens/szerver alrendszerbe, de az architektúrában kernel módra váltott Windows operációs rendszer NT 4.0 a grafikus teljesítmény javítása érdekében.
A mag
A kernel a Windows operációs rendszer architektúrájában a hal és az Executive között helyezkedik el, és többprocesszoros szinkronizálást, a szálak és megszakítások ütemezését és diszpécserét, valamint a megszakítások kezelését és a kivétel diszpécserét biztosítja. Felelős az eszközillesztők indításakor történő inicializálásáért is, amely szükséges, hogy futás operációs rendszer. Vagyis a kernel a hagyományos mikrokernel szinte minden feladatát elvégzi. Az Executive és a Kernel közötti szigorú különbség az eredeti mikrokernel projekt legszembetűnőbb maradványa, és a történelmi tervdokumentáció következetesen "mikrokernelnek"nevezi a kernel komponenst.
A kernel gyakran együttműködik a folyamatkezelővel. Az absztrakció szintje olyan, hogy soha nem utal a folyamatkezelőre, hanem csak fordítva (néhány atipikus eset kivételével, amelyek soha nem érik el a funkcionális függőséget).