Windows NT-arkitektur

Microsofts Windows NT - familie av operativsystemer består av versjoner som Windows 11 (10.0), Windows 10 (10.0), Windows 8.1 (6.3.9600), Windows 8 (6.2.9200), Windows 7 (6.1.7601), Windows Server 2008 , Windows Vista (6.0.6002), Windows Server 2003 (5.2.3790), Windows XP (5.1.2600), Windows 2000 (5.0.2195) og Windows NT . De har alle forebyggende multitasking og er reentrant operativsystemersom er designet for å fungere både med datamaskiner med en enkelt prosessor og symmetriske multiprosesseringsdatamaskiner som på engelsk er Symmetrical Multi Processor eller SMP. For å behandle input/output- forespørsler (på engelsk Input/Output , I/O) går den til en adresse med I/O-pakker som bruker I/O-forespørsler (IRP) og asynkron I/O . Fra og med Windows XP begynte Microsoft å utvikle operativsystemer som støttet 64-bit. Tidligere var operativsystemene deres basert på en 32-bits modell.

Arkitekturen til Windows NT er svært modulær og er basert på to hovedlag:

  1. En hybridkjerne .
  2. Et maskinvareabstraksjonslag (HAL).
  3. Kontrollere eller drivere .
  4. Executive : der alle tjenester på høyt nivå er implementert.

Kjernemodusen til Windows NT-rørledningen består av undersystemer som er i stand til å sende I/O-forespørsler til de riktige kontrollerene ved hjelp av I/O-behandleren. To delsystemer utgjør brukermoduslaget til Windows 2000: miljødelsystemet (kjører applikasjoner skrevet for forskjellige typer operativsystemer), og integrert delsystem (håndterer systemspesifikke funksjoner på vegne av miljøundersystemet). Kjernemodus i Windows 2000 har full tilgang til datamaskinens maskinvare og systemressurser. Kjernemodus forhindrer brukermodustjenester og -applikasjoner fra å få tilgang til kritiske områder av operativsystemet som de ikke burde.

Executive er relatert til alle brukermodus undersystemer. Den tar for seg input/output, objektstyring, sikkerhet og prosessstyring. Kjernen sitter mellom Hardware Abstraction Layer og Executive for å gi multiprosessorsynkronisering , tråding og avbruddsplanlegging og sending, og unntakssending.

Kjernen er også ansvarlig for å initialisere enhetsdrivere ved oppstart. Det er tre nivåer av drivere i kjernemodus: høynivådrivere, middels drivere og lavnivådrivere. Windows Driver Model ( WDM) sitter i mellomlaget og ble først og fremst designet for å opprettholde kildekode og binær kompatibilitet mellom Windows 98 og Windows 2000 . De laveste nivåene er også eldre Windows NT - enhetsdrivere som direkte kontrollerer en enhet, eller kan være en PnP -maskinvarebuss .

Brukermodus

Brukermodus består av undersystemer som kan sende I/O-forespørsler til de aktuelle kjernemodusdriverne via I/O-behandleren (som er i kjernemodus). To delsystemer utgjør brukermoduslaget til Windows 2000: miljødelsystemet og det omfattende delsystemet .

Miljøundersystemet ble designet for å kjøre applikasjoner skrevet for forskjellige typer operativsystemer. Ingen av miljøundersystemene har direkte tilgang til maskinvare, og må be om tilgang til minneressurser gjennom Virtual Memory Manager som kjører i kjernemodus. Dessuten kjører applikasjoner med en lavere prioritet enn kjerneprosesser. Det er for tiden tre hovedmiljøundersystemer: et Win32- undersystem , et OS/2 -undersystem og et POSIX- undersystem .

Win32-miljøundersystemet kan kjøre 32-biters Windows-applikasjoner. Den inneholder konsollen pluss støtte for tekstvinduer, avslutning og fatal feilhåndtering for alle andre miljøundersystemer. Den støtter også virtuelle DOS-maskiner ( VDM ), som lar deg kjøre MS-DOS- applikasjoner og 16-biters Windows 3.x ( Win16 )-applikasjoner på Windows . Det er en spesifikk VDM som kjører i sin egen minneplass og som emulerer en Intel 80486 som kjører MS-DOS 5. Win16-programmer kjøres imidlertid i en Win16 VDM. Hvert program kjører som standard i samme prosess, så det bruker samme adresserom, og Win16 VDM gir hvert program sin egen tråd å kjøre på. Windows 2000 tillater imidlertid brukere å kjøre Win16-programmer i en separat Win16 VDM, som lar programmet multitaske i prioritet når Windows 2000 kjører hele VDM-prosessen, som kun inneholder ett kjørende program. OS/2-miljøundersystemet støtter 16-biters tegnbaserte applikasjoner og emulerer OS/2 1.x, men støtter ikke kjøring av 32-biters eller grafiske applikasjoner slik det gjør i OS/2 2.x og nyere. . POSIX-miljøundersystemet støtter kun applikasjoner som strengt følger POSIX.1-standarden eller tilhørende ISO / IEC-standarder .

Det integrerte delsystemet håndterer operativsystemspesifikke funksjoner på vegne av miljødelsystemet . Den består av et sikkerhetsundersystem , en terminaltjeneste og en servertjeneste . Sikkerhetsundersystemet håndterer sikkerhetskvitteringer, tillater eller nekter tilgang til brukerkontoer basert på ressurstillatelser, håndterer påloggingsmeldinger og starter autentisering, og bestemmer hvilke systemressurser som må revideres. av Windows 2000. Det tar også vare på Active Directory (i engelsk, Active Directory ). Terminaltjenesten er et API til nettverksomdirigereren, som gir nettverkstilgang til datamaskinen. Servertjenesten er et API som lar datamaskinen tilby nettverkstjenester.

Kjernemodus

Windows 2000 kjernemodus har full tilgang til datamaskinens maskinvare og systemressurser og kjører koden i et beskyttet minneområde. Den kontrollerer tilgang til planlegging, trådprioritering, minneadministrasjon og interaksjon med maskinvare. Kjernemodus forhindrer brukermodusapplikasjoner og -tjenester fra å få tilgang til kritiske områder av operativsystemet som de ikke burde. I stedet må de be kjernen om å utføre disse operasjonene på deres vegne.

Kjernemodus består av executive-tjenester , som igjen består av flere moduler som utfører spesifikke oppgaver, kjernedrivere , en kjerne og et Hardware Abstraction Layer eller HAL.

Executive

Executive er relatert til alle brukermodus undersystemer. Den håndterer Input/Output, objektadministrasjon, sikkerhet og prosesshåndtering. Den er uformelt delt inn i flere undersystemer , blant annet Cache Manager , Configuration Manager , Input/Output Manager , Local Procedure Calls , Memory Manager , Object Manager , Process Structure og Security Reference Monitor . Til sammen kan komponentene kalles Executive Services (internt navn Ex ). Systemtjenester ( internt navn Nt ), for eksempel systemanrop , implementeres også på dette nivået, bortsett fra noen få som kalles direkte i kjernelaget for bedre ytelse.

Object Manager ( internt navn Ob ) er et spesielt undersystem av Executive som alle andre undersystemer av Executive, spesielt systemanrop, må passere for å få tilgang til Windows 2000-ressurser. Dette gjør det i hovedsak til en tjeneste for ressursstyringsinfrastrukturer.

Objektbehandleren brukes for å unngå duplisering av ressursobjektstyringsfunksjonalitet i de andre undersystemene til lederen, noe som potensielt kan føre til feil og komplisere utformingen av Windows 2000. [ 2 ] For objektbehandleren er hver ressurs et objekt, uansett av om ressursen er en fysisk ressurs (som et filsystem eller en perifer) eller en logisk ressurs (som en fil ). Hvert objekt har en struktur eller objekttype som objektbehandleren må kjenne til.

Objektskaping er en to-fase prosess, opprettelse og innsetting . Opprettelsen forårsaker tildeling av et tomt objekt og reservasjon av nødvendige ressurser av objektadministratoren, for eksempel et navn (valgfritt) i navneområdet . Hvis opprettelsen lykkes, fyller undersystemet som er ansvarlig for opprettelsen ut objektdataene. [ 3 ] Til slutt, hvis undersystemet anser initialiseringen som vellykket, ber det objektbehandleren om å sette inn objektet, hvilket innlegg gjør det tilgjengelig via navnet (valgfritt) eller en informasjonskapsel kalt en peker . Fra da av kontrolleres objektets levetid av objektbehandleren, og det er delsystemets plikt å holde objektet i gang til det er merket av objektbehandleren for utgivelse.

Hensikten med pekere ligner på UNIX -filbeskrivelser , ved at hver peker representerer en referanse til en kjerneressurs via en obskur verdi. På samme måte er åpning av et objekt fra navnet underlagt sikkerhetskontroller, men å jobbe gjennom et eksisterende er bare begrenset til tilgangsnivået som kreves når objektet åpnes eller opprettes. I motsetning til UNIX-filbeskrivelser, kan flere Windows-pekere referere til det samme objektet (mens filbeskrivelser kan være duplikater, refererer duplikater til samme filnode , men en enkelt filbeskrivelse ).

Objekttyper definerer objektprosedyrer og deres spesifikke data. På denne måten lar objektbehandlingen Windows 2000 være et objektorientert operativsystem , siden objekttyper kan betraktes som polymorfe klasser som definerer objekter . Imidlertid er de fleste undersystemer avhengige av standardimplementeringen for alle objekttyper av prosedyrer.

Hvert objekt som opprettes, lagrer navnet, parameterne som sendes til objektets opprettelsesfunksjon, sikkerhetsattributter og en peker til objekttypen. Objektet inneholder også en prosedyre for å lukke det og en referanseteller for å fortelle objektbehandleren hvor mange objekter som refererer til det. På denne måten avgjør objektbehandleren om objektet kan ødelegges når det sendes en forespørsel om å slette objektet. [ 4 ] Alle navngitte objekter finnes i objektnavneromshierarkiet .

Andre utøvende undersystemer er som følger:

Et langvarig problem med den eksisterende implementeringen er hvorfor den ikke eksplisitt frigjør blokker som ikke har vært brukt på lenge, men stoler i stedet på minneadministratorens sideallokeringsalgoritme for til slutt å forkaste dem fysisk minne. Som en effekt vokser noen ganger cachen vilkårlig, noe som tvinger annet minne til å søkes ut, og erstatter ofte prosessen som startet I/O-en, som ender opp med å bruke mesteparten av utførelsestiden på å reparere sidefeil. Dette er mest synlig når du kopierer store filer. Fra og med Windows NT Server 4.0, Terminal Server Edition, implementerer minnebehandlingen en såkalt session space , en rekke kjernemodusminne som brukes til kontekstbytte akkurat som brukermodusminne. Dette lar flere forekomster av Win32-delsystemet og GDI-drivere kjøre sammen, til tross for noen innledende designfeil. Hver sesjonsplass deles av flere prosesser, samlet referert til som en "sesjon". For å sikre nivået av isolasjon mellom økter uten å introdusere en ny objekttype, administreres isolasjonen mellom prosesser og sesjoner av sikkerhetsreferansemonitoren, som et attributt til et sikkerhetsobjekt (token), og kan bare endres hvis du har spesielle rettigheter. Den relativt usofistikerte og ad hoc karakteren til økter skyldes at de ikke var en del av det opprinnelige designet, og måtte utvikles, med minimal forstyrrelse av hovedlinjen, av en tredjepart ( Citrix ) som en forutsetning for terminalserverprodukt for Windows NT, kalt WinFrame . Siden Windows Vista har økter endelig blitt en del av Windows-arkitekturen. Per nå ble en minnebehandling som snek seg inn i brukermodus via Win32, utvidet til en gjennomgripende abstraksjon som påvirker de fleste av Executive-undersystemene . Vanlig bruk av Windows Vista resulterer faktisk alltid i et miljø med flere økter. [ 5 ]


kjerne

Kjernen til operativsystemet sitter mellom HAL og Executive og gir multiprosessorsynkronisering, tråding og avbruddssending og planlegging, avbruddshåndtering og unntakssending. Den er også ansvarlig for å initialisere enhetsdrivere som er nødvendige ved oppstart for å holde operativsystemet i gang. Det vil si at kjernen utfører nesten alle oppgavene til en tradisjonell mikrokjerne. Det strenge skillet mellom Executive og kjernen er at flere rester av den opprinnelige mikrokjernen er igjen i sistnevnte (historisk designdokumentasjon refererer til kjernekomponenten som "mikrokjernen").

Kjernen samhandler ofte med prosesslederen. [ 10 ] Abstraksjonsnivået er slik at kjernen aldri kaller prosessbehandleren: bare det motsatte er tillatt (bortsett fra en håndfull tilfeller, ennå ikke til punktet av funksjonell avhengighet).

Kjernemoduskontrollere

Windows 2000 bruker hver kjernemodus- enhetsdriver for å la den samhandle med maskinvareenheter . Hver av driverne har veldefinerte systemrutiner og interne rutiner som den eksporterer til andre operativsystemer. Alle enheter blir sett av brukermodus som et filobjekt i I/O-behandleren. Gjennom selve I/O-behandleren blir enheter sett på som enhetsobjekter, som den definerer som enten fil-, enhets- eller driverobjekter. Kjernemodusdrivere finnes på tre nivåer: høynivådrivere, middels drivere og lavnivådrivere. Drivere på høyt nivå, som filsystemdrivere for FAT og NTFS , er avhengige av mellomliggende drivere. Mellomliggende drivere består av driverfunksjoner – eller hoveddrivere for en enhet – som valgfritt er plassert mellom lavnivå- og høynivådriverfiltre. Sjåførfunksjoner avhenger av en bussjåfør - eller en sjåfør som betjener en bussjåfør , adapter eller bro - som kan ha et valgfritt busssjåførfilter som sitter mellom seg selv og sjåførfunksjonen. Windows Driver Model ( WDM) er i mellomlaget. Det laveste nivået av drivere er også arvet fra Windows NT-enhetsdrivere som styrer en enhet direkte eller kan være en PnP-maskinvarebuss. Disse lavnivådriverne kontrollerer maskinvaren direkte og er ikke avhengige av andre.

Maskinvareabstraksjonslag

Hardware Abstraction Layer , eller HAL , er et lag som sitter mellom den fysiske maskinvaren til datamaskinen og resten av operativsystemet. Den ble designet for å skjule maskinvareforskjeller og gir dermed en konsistent plattform som applikasjoner kan kjøre på. HAL inkluderer maskinvareavhengig kode som kontrollerer I/O-grensesnitt, avbruddsbehandlere og flere prosessorer.

Spesielt innebærer ikke "maskinvareabstraksjon" abstrahering av instruksjonssettet , som vanligvis er underlagt det bredere begrepet portabilitet . Abstraksjon av instruksjonssett, når det er nødvendig (som for å håndtere ulike revisjoner av x86 -instruksjonssettet , eller emulering av en ikke-eksisterende matematisk koprosessor), utføres av kjernen.

Til tross for formålet og posisjonen i den arkitektoniske utformingen, er ikke HAL et lag som ligger helt under kjernen på samme måte som kjernen sitter under Executive: alle kjente HAL-implementeringer avhenger av en eller annen måte av kjernen, eller til og med Executive. I praksis betyr dette at kjerne- og HAL-variasjonene sendes sammen, bygget spesielt for å fungere sammen.

Referanser

  1. MCSE eksamen 70-215, Microsoft Windows 2000 Server . Kapittel 1, Introduksjon til Microsoft Windows 2000, s. 7-18.
  2. Mark Russinovich (oktober 1997). Inne i NT Object Manager . Introduksjon (på engelsk).
  3. Mark Russinovich (oktober 1997). Inne i NT Object Manager . Typer objekter (på engelsk).
  4. Mark Russinovich (oktober 1997). Inne i NT Object Manager . Objekter på engelsk).
  5. Microsoft. " Effekten av økt 0-isolering på tjenester og drivere i Windows Vista ."
  6. Microsoft . Datalagring i Active Directory (på engelsk).
  7. MSDN . Definisjon av tillit (på engelsk).
  8. Siyan, Kanajit S. (2000). "Windows 2000 Professional Reference". New Riders (på engelsk). ISBN 0-7357-0952-1 .
  9. MSDN . Definisjon av ACE .
  10. Inne i Microsoft Windows 2000 (tredje utgave). MicrosoftPress . Side 543-551 (på engelsk).

Bibliografi

Eksterne lenker