Arhitektura windows: opis, vrste, struktura

Arhitektura operacijskega sistema Windows NT, ki ga proizvaja in prodaja Microsoft, je večplastna, sestavljena iz dveh glavnih delov: uporabniškega načina in načina jedra.

arhitektura operacijskega sistema Windows 7

To je preemptivni reentrantni operacijski sistem, ki ga je ustvaril za delo na z enoprocesorskimi in simetričnimi večprocesorskimi (SMP) računalniki. Za obdelavo vhodnih in izhodnih (I/O) zahtevkov uporabljajo paketni prenos, ki uporablja pakete IRP in asinhroni I/O. Z operacijskim sistemom Windows XP je Microsoft začel zagotavljati 64-bitne različice operacijskega sistema, pred tem so te platforme obstajale le v 32-bitnih različicah.

Kakšna so njegova načela?

Arhitektura operacijskega sistema Windows izvaja naslednja načela. Programi in podsistemi v uporabniškem načinu imajo omejen dostop do sistemskih virov, medtem ko imajo jedrni način neomejen dostop do sistemskega pomnilnika in zunanjih naprav.

Jedrni način v sistemu Windows NT ima popoln dostop do strojne opreme in sistemskih virov računalnika. To jedro je znano kot hibridno jedro. Arhitektura vključuje preprosto jedro, strojno abstrakcijsko plast (HAL), gonilnike in niz storitev (skupaj imenovanih Executive), ki obstajajo v istem načinu.

Uporabniški način v arhitekturi Windows sestavljajo podsistemi, ki lahko posredujejo vhodno-izhodne zahteve ustreznim gonilnikom jedrnega načina z uporabo ustreznega dispečerja. Plast uporabniškega načina sistema Windows sestavljajo "podsistemi okolja", ki izvajajo aplikacije, napisane za različne operacijske sisteme, in "integralni podsistem", ki izvaja sistemske funkcije v imenu podsistemov okolja.

arhitektura operacijskega sistema windows os

Izvršilni vmesniki v arhitekturi Windows z vsemi podsistemi v uporabniškem načinu se ukvarjajo z I/O, upravljanjem objektov, varnostjo in upravljanjem procesov. Jedro se nahaja med strojno abstrakcijsko plastjo in izvajalnim časom ter zagotavlja večprocesorsko sinhronizacijo, razporejanje in razporejanje niti in prekinitev ter obdelavo prekinitev in razporejanje izjem. Jedro je odgovorno tudi za inicializacijo gonilnikov naprav ob zagonu.

Gonilne sile za ta način obstajajo na treh ravneh:

  • višje;
  • vmesni;
  • nizko.

Model gonilnikov sistema Windows (WDM) obstaja na vmesni ravni in je bil razvit predvsem za zagotavljanje združljivosti binarne in izvorne kode med sistemoma Windows 98 in 2000. Gonilniki najnižje ravni so bodisi starejši namestitveni programi naprav sistema Windows NT, ki napravo nadzorujejo neposredno, bodisi so lahko vrsta strojnega vodila Play (PnP).

Uporabniški način

Uporabniški način sestavljajo različni sistemski procesi in knjižnice DLL.

arhitektura sistema windows

Vmesnik med aplikacijami in funkcijami jedra operacijskega sistema se imenuje "podsistem okolja". Arhitektura Windows (7 in druge v liniji NT) ima lahko več kot enega od teh, pri čemer vsak izvaja svoj nabor vmesnikov API. Ta mehanizem je bil zasnovan tako, da podpira aplikacije, napisane za različne vrste operacijskih sistemov. Noben od podsistemov okolja nima neposrednega dostopa do strojne opreme. Dostop do funkcij strojne opreme je mogoč s klicem podprogramov v jedrnem načinu.

Kakšno vlogo imajo podsistemi?

Obstajajo štirje glavni podsistemi okolja: Win32, OS/2, Windows za Linux in POSIX.

Podsistem okolja Win32 lahko izvaja 32-bitne aplikacije "Windows". Vsebuje konzolo ter podporo za besedilna okna, zaustavitev in obdelavo napak za vse druge podsisteme v okolju. Podpira tudi virtualne stroje DOS (VDM), ki omogočajo delovanje MS-DOS in 16-bitnih aplikacij Win16 v sistemu Windows NT.

Obstaja poseben MS-DOS VDM, ki teče v svojem naslovnem prostoru in emulira Intel 80486 z MS-DOS 5.0. Programi Win16 pa se izvajajo v programu Win16 VDM. Vsak program se privzeto izvaja v istem procesu in uporablja isti naslovni prostor, VDM Win16 pa vsakemu programu zagotavlja svojo nit za izvajanje. Vendar arhitektura sistema Windows NT uporabnikom omogoča, da ga zaženejo v ločenem oknu, kar omogoča preemptivno večopravilnost, saj bo sistem Windows predčasno izločil celoten proces VDM, ki vsebuje le eno zagnano aplikacijo.

arhitektura operacijskega sistema Windows 10

Proces podsistema okolja Win32 (csrss).exe) vključuje tudi funkcije za upravljanje oken, ki se včasih imenujejo "upravitelj oken". Obdeluje vhodne dogodke (npr. s tipkovnice in miške) in nato posreduje sporočila aplikacijam, ki morajo prejeti ta vnos. Vsaka aplikacija je odgovorna za prikaz ali posodobitev svojih oken in menijev kot odziv na ta sporočila.

Okoljski podsistem OS/2 podpira 16-bitne znakovne aplikacije OS/2 in emulira OS/2 1.x, ne pa tudi 32-bitnih ali grafičnih aplikacij OS 2, ki se uporabljajo v sistemu OS/2 2.x ali novejša različica samo za računalnike x86.

Zagon grafičnih programov OS/2 1.x mora biti nameščen podsistem dodatka Windows NT Presentation Manager. zadnja različica NT, ki je imela podsistem OS/2, je bila Windows 2000, nato je bil odstranjen, začenši z arhitekturo Windows XP.

Podsistem okolja POSIX podpira aplikacije, ki so napisane izključno za POSIX.1 ali za ustrezno Standardi ISO/IEC. Nadomestil ga je program Interix, ki je del storitve Windows Services for UNIX.

Varnostni podsistem obdeluje varnostne žetone, dodeljuje ali zavrača dostop do uporabniških računov na podlagi dovoljenj za vire, obdeluje zahteve za prijavo in začenja preverjanje pristnosti prijave ter določa, katere sistemske vire naj preveri sistem Windows NT.

arhitektura operacijskega sistema windows

Način jedra

Način jedra v arhitekturi Windows NT ima popoln dostop do strojne opreme in sistemskih virov računalnika ter izvaja kodo v zaščitenem delu pomnilnika. Nadzoruje dostop do razporejanja, določanja prednosti niti, upravljanja pomnilnika in interakcije s strojno opremo. Jedrski način preprečuje storitvam in aplikacijam v uporabniškem načinu dostop do kritičnih področij operacijskega sistema, do katerih ne bi smeli imeti dostopa; procesi morajo zahtevati, da jedrski način opravi takšne operacije v njihovem imenu.

Čeprav arhitektura Windows x86 podpira štiri različne ravni privilegijev (od 0 do 3), se uporabljata le dve skrajni ravni. Programi v uporabniškem načinu tečejo s CPL 3, jedro pa s CPL 0. Ti dve ravni se pogosto imenujeta "obroč 3" oziroma "obroč 0". Ta odločitev je bila sprejeta zaradi zagotavljanja prenosljivosti kode na platforme RISC, ki podpirajo le dve ravni privilegijev, čeprav to krši združljivost z aplikacijami OS/2, ki vsebujejo segmente I/O privilegijev, ki poskušajo neposredno dostopati do strojne opreme.

Jedrski način sestavljajo izvršilne storitve, ki so sestavljene iz številnih modulov, ki opravljajo posebne naloge: gonilnikov jedra, samega jedra in strojne abstrakcijske plasti (HAL).

Uprava

Izvršilne storitve sistema Windows so nizkonivojski del načina jedra in so vsebovane v datoteki NTOSKRNL.EXE. To zajema upravljanje vhodov/izhodov, upravljanje objektov, varnost in upravljanje procesov. Ti so razdeljeni na več podsistemov, pri čemer imajo posebno vlogo upravitelj predpomnilnika, upravitelj konfiguracije, upravitelj I/O, lokalni klic postopkov (LPC), upravitelj pomnilnika, procesni okvir in varnostni nadzornik (SRM). Sestavine, združene v skupine, se lahko imenujejo izvršilne storitve (interno ime Ex). Na tej ravni se izvajajo tudi sistemske storitve (notranje ime Nt), tj. sistemski klici, razen nekaterih, ki zaradi izboljšanja zmogljivosti neposredno dostopajo do ravni jedra.

arhitektura jedra sistema windows

Izraz "storitev" se v tem kontekstu običajno nanaša na podprogram ali niz podprogramov, ki jih je mogoče klicati. To se razlikuje od koncepta "storitvenega procesa", ki je komponenta v uporabniškem načinu, nekoliko podobna prikazu v operacijskih sistemih, podobnih Unixu. Na spletni strani arhitekturna značilnost Jedro sistema Windows 10 in vse prejšnje distribucije.

Upravitelj predmetov

Upravitelj objektov (Obovo interno ime) je podsistem za izvajanje, prek katerega morajo dostopati do virov sistema Windows NT vsi drugi podsistemi, zlasti sistemski klici, zato je v bistvu infrastrukturna storitev za upravljanje virov. Upravitelj objektov se uporablja za zmanjšanje podvajanja funkcionalnosti upravljanja virov v drugih izvajalnih podsistemih, kar lahko povzroči napake in oteži razvoj sistema Windows NT.

Za danega upravitelja je vsak vir predmet, ne glede na to, ali je fizični (kot je datotečni sistem ali periferna naprava) ali logični (kot je datoteka). Vsak predmet ima strukturo ali tip, ki ga mora Ob poznati.

Ustvarjanje objekta v arhitekturi družine Windows poteka v dveh korakih - ustvarjanje in vstavljanje. Ustvarjanje povzroči dodelitev praznega predmeta in vseh virov, ki jih zahteva odposlanec, kot je (neobvezno) ime v imenski prostor. Če je bil uspešen, podsistem, odgovoren za ustvarjanje, napolni prazen objekt. Če podsistem meni, da je inicializacija uspešna, upravitelju objektov naroči, naj vstavi objekt in ga naredi dostopnega prek njegovega imena ali piškotka, imenovanega deskriptor. Od te točke naprej za obstoj predmeta skrbi upravitelj, podsistem pa ga mora vzdrževati, dokler Ob ne sporoči, da je bil izbrisan.

Deskriptorji so identifikatorji, ki predstavljajo referenco na vir jedra prek nepreglednega. Podobno je odpiranje objekta prek njegovega imena predmet varnostnega preverjanja, vendar je delovanje prek obstoječega odprtega deskriptorja omejeno le na raven dostopa, ki je bila zahtevana ob odpiranju ali ustvarjanju objekta.

arhitektura oken 8 1

Tipi objektov določajo postopke in vse podatke, ki so zanje značilni. Tako Ob omogoča, da je Windows NT objektno usmerjen operacijski sistem, saj je mogoče objektne tipe obravnavati kot kot polimorfni razredi, ki določajo predmete. Večina podsistemov, z izjemo upravitelja I/O, se pri vseh postopkih zanaša na privzeto izvajanje.

Vsak primerek ustvarjenega predmeta shrani njegovo ime, parametri, ki se posredujejo funkciji, ki ustvari objekt, varnostni atributi in kazalec na njegov tip.

Krmilnik predpomnilnika

Ta element sistema Windows 7 in drugih različic arhitekture se tesno usklajuje z upraviteljem pomnilnika, dispečerjem in gonilniki I/O, da se zagotovi skupni predpomnilnik za skupne datotečne I/O. Upravitelj predpomnilnika Windows deluje z datotečnimi bloki (in ne z bloki naprav), da ohrani skladnost lokalnih in oddaljenih datotek ter zagotovi določeno skladnost pri preslikavah podatkov, naloženih v pomnilnik.

Upravitelj I/O

Ta gradnik arhitekture sistema Windows 10 in prejšnjih različic omogoča napravam, da komunicirajo s podsistemi uporabniškega načina. Ukaze za branje in pisanje v uporabniškem načinu prevaja v IRP, ki jih posreduje gonilnikom naprav. Sprejema zahteve I/O datotečnega sistema in jih pretvarja v klice, specifične za napravo, ter lahko vključuje gonilnike nizke ravni, ki neposredno upravljajo strojno opremo za branje ali I/O. Vključuje tudi upravitelja predpomnilnika, ki izboljša zmogljivost diska s predpomnjenjem zahtevkov za branje in pisanje z diska v ozadju.

Lokalni klic postopka (LPC)

Ta strukturni del arhitekture sistema Windows 10 (in vseh prejšnjih distribucij) zagotavlja medprocesna komunikacijska vrata s semantiko povezav. Vrata LPC uporabljajo podsistemi v uporabniškem načinu za komunikacijo s svojimi odjemalci, izvršilni podsistemi za komunikacijo s podsistemi v uporabniškem načinu in kot osnove za Lokalni transport za Microsoftov protokol RPC.

Upravitelj pomnilnika

Ta element arhitekture sistema Windows 8.1 in druge različice upravljajo navidezni pomnilnik, njegovo zaščito in zamenjavo iz fizičnega pomnilnika v sekundarni pomnilnik. Tako implementira univerzalni dodeljevalnik fizičnega pomnilnika. Ustvari tudi razčlenjevalnik izvršilne datoteke PE, ki omogoča, da se izvršilna datoteka mapira ali ne mapira v enem samem atomskem koraku.

Začetek z operacijskim sistemom Windows NT Server 4.0, Terminal Server Edition, upravitelj pomnilnika implementira tako imenovani prostor za seje, območje pomnilnika v načinu jedra, ki je predmet preklapljanja konteksta na enak način kot pomnilnik v uporabniškem načinu. To omogoča, da več različic podsistema jedra Win32 in gonilnikov GDI deluje drug ob drugem kljub napakam v njihovi prvotni zasnovi. Vsak prostor seje si deli več procesov, ki se skupaj imenujejo "seja".

Da bi zagotovili določeno stopnjo izolacije med sejami, ne da bi uvedli novo vrsto objekta, varnostni referenčni monitor obravnava povezavo med procesi in sejami kot atribut (žeton) varnostnega subjekta, ki ga je mogoče spremeniti le s posebnimi privilegiji.

Relativno preprosta in priložnostna narava sej je posledica dejstva, da niso bile del prvotne zasnove in jih je morala tretja oseba (Citrix Systems) razviti z minimalnimi motnjami v glavni liniji kot predpogoj za svoj izdelek terminalskega strežnika za Windows NT, imenovan WinFrame.

Vendar so od arhitekture Windows Vista seje končno postale ustrezen vidik. Ne gre več za upravitelja pomnilnika, ki v uporabniški način prehaja posredno prek sistema Win32, temveč za celovito abstrakcijo, ki vpliva na večino podsistemov izvajalnega časa. Pri redni uporabi sistema Windows Vista je okolje z več sejami vedno.

Struktura procesa

Ta element arhitekture operacijskega sistema Windows 7 (in drugih različic) nadzira ustvarjanje in zaključevanje procesov in niti ter uvaja koncept dela (Job), skupino procesov, ki jih je mogoče zaključiti kot celoto ali pa jih je mogoče podrediti skupnim omejitvam (npr. skupni največji dodeljeni pomnilnik ali čas procesorja). Objekti za delo so bili uvedeni v sistemu Windows 2000.

Upravitelj PnP

Upravlja in podpira zaznavanje in namestitev naprave med zagonom. Odgovoren je tudi za ustavljanje in zagon naprav na zahtevo - to se lahko zgodi, ko vodilo (npr. USB ali IEEE 1394 FireWire) pridobi novo napravo in je treba naložiti gonilnik, ki jo podpira. Njegov glavni del se dejansko izvaja v uporabniškem načinu, v storitvi Plug and Play, ki opravlja pogosto zapletene naloge nameščanja ustreznih gonilnikov, obveščanja storitev in aplikacij o novih napravah ter prikazovanja grafičnega uporabniškega vmesnika.

Upravitelj napajanja

Obravnava dogodke v zvezi z napajanjem (izklop, stanje pripravljenosti, hibernacija itd.). д.) in obvesti prizadete voznike s posebnim sporočilom IRP (Power IRP). Njena vloga je nadzor.

Varnostni nadzorni monitor (SRM)

Glavni organ za uveljavljanje varnosti integriranega varnostnega podsistema. Določa, ali je do predmeta ali vira mogoče dostopati s pomočjo seznamov za nadzor dostopa (ACL), ki so sestavljeni iz vnosov za nadzor dostopa (ACE). ACE vsebujejo varnostni identifikator (SID) in seznam operacij, ki jih ACE dodeli izbrani skupini - uporabniškemu računu, skupini ali seji prijave - dovoljenje (dovoli, zavrne ali pregleda) za ta vir.

GDI

Vmesnik grafične naprave je odgovoren za naloge, kot so risanje črt in krivulj, upodabljanje pisav in upravljanje palet. V različicah sistema Windows NT 3.x Komponenta GDI je bila nameščena v podsistem odjemalec/strežnik v uporabniškem načinu, vendar je bila prestavljena v način jedra v Operacijski sistem Windows NT 4.0 jedra operacijskega sistema za izboljšanje grafične zmogljivosti.

Jedro

Jedro v arhitekturi Windows se nahaja med HAL in Executive ter zagotavlja večprocesorsko sinhronizacijo, razporejanje in razporejanje niti in prekinitev ter obdelavo prekinitev in razporejanje izjem. Odgovoren je tudi za inicializacijo gonilnikov naprav ob zagonu, ki potrebno za začenja operacijski sistem. To pomeni, da jedro opravlja praktično vse naloge tradicionalnega mikrojadra. Strogo razlikovanje med izvršnim delom in jedrom je najbolj viden ostanek prvotne zasnove mikrojadra, v zgodovinski dokumentaciji o zasnovi pa se komponenta jedra dosledno imenuje "mikrojadro".

Jedro pogosto komunicira z upraviteljem procesov. Raven abstrakcije je takšna, da se nikoli ne nanaša na upravitelja procesa, temveč le obratno (razen v nekaj netipičnih primerih, ki nikoli ne dosežejo funkcionalne odvisnosti).

Članki na tem področju