Arhitectura Windows NT

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Arhitectura Windows NT este o familie de sisteme de operare fabricate de Microsoft. Utilizează această arhitectură Windows NT 3.5x , 2000 , XP , Server 2003 , Vista , Server 2008 , 7 , Server 2008 R2 , 8 , Server 2012 , 8.1 , Server 2012 R2 , Phone 8 , Phone 8.1 și 10 . Toate sunt sisteme de operare multitasking preventive concepute pentru a funcționa atât pe mașini Intel x86 cu un singur procesor, cât și pe multiprocesor ( SMP ).

Începând cu XP , Microsoft a început să dezvolte suport în sistemele sale de operare, înainte ca sistemul său de operare să se bazeze pe un model pe 32 de biți. Arhitectura liniei sistemului de operare NT este extrem de modulară și este structurată în două straturi principale: modul utilizator și modul kernel . Programele și subsistemele în modul utilizator sunt limitate în ceea ce privește resursele de sistem pe care le pot accesa, în timp ce ceea ce rulează în modul kernel se bucură de acces nerestricționat la memoria principală și la dispozitivele externe. Nucleul sistemului de operare al acestei linii este cunoscut sub numele de nucleu hibrid - totuși nu este în esență un nucleu monolitic într-un fel structurat ca un microkernel . Arhitectura cuprinde un kernel hibrid, un Hardware Abstraction Layer (HAL), drivere care trăiesc în modul kernel.

Modul utilizator în linia Windows NT este realizat printr-un subsistem capabil să transmită solicitările I / O către driverele software corespunzătoare în modul kernel folosind un manager I / O. Modul de utilizare Windows 2000 este alcătuit din două subsisteme: subsistemul Mediu, care poate rula aplicații scrise pentru diferite sisteme de operare și subsistemul integrat, care îndeplinește funcțiile specifice ale sistemului de operare. Modul kernel din Windows 2000 are acces complet la resursele hardware ale sistemului și are, de asemenea, funcția de a interzice serviciilor în modul utilizator accesarea zonelor critice ale sistemului de operare la care nu ar trebui să aibă acces.

Interfețele Executive, împreună cu toate subsistemele mod utilizator, gestionează I / O, obiecte, procese și securitate. Kernel - ul se plasează între HAL și executiv pentru sincronizare multiprocesor, fire și întrerupe programarea și dispecerizarea, de manipulare capcană și dispecerizare excepție. Nucleul are și funcția de inițializare a driverelor de dispozitiv la pornire. Driverele pot rula în modul Kernel în trei niveluri: înalt ( drivere de cel mai înalt nivel ), mediu ( drivere intermediare ) și scăzut ( drivere de nivel scăzut ). Modelul de driver Windows (WDM) este de nivel mediu și a fost conceput pentru a fi compatibil cu codul sursă și binar între Windows 98 și 2000 . Driverele de nivel scăzut pot fi fie drivere compatibile înapoi care controlează direct un dispozitiv, fie o magistrală hardware Plug and Play .

Mod utilizator

Modul utilizator este subsistemul care transmite cererile I / O către driverele corespunzătoare ale modului kernel prin intermediul managerului I / O (care se află în modul kernel). Două subsisteme alcătuiesc stratul mod utilizator Windows 2000: subsistemul ambiental și subsistemul integral .

Subsistemul de mediu este conceput pentru a rula aplicații scrise pentru diferite sisteme de operare. Niciunul dintre subsistemele de mediu nu poate accesa hardware-ul direct și trebuie să solicite acces la resurse prin intermediul Managerului de memorie virtuală care rulează în modul kernel. În plus, aplicațiile rulează la un nivel de prioritate mai scăzut decât procesele în modul kernel. În prezent există trei subsisteme de mediu principale: subsistemul Win32, un subsistem OS / 2 și un subsistem pentru POSIX .

Subsistemul de mediu Win32 poate rula aplicații Windows pe 32 de biți. Conține consola susținută de fereastra de text, de oprire și de gestionare a erorilor pentru toate celelalte subsisteme de mediu. De asemenea, acceptă mașina virtuală DOS (VDM), care permite aplicațiilor MS-DOS pe 16 biți și Windows 3.x să ruleze pe Windows. Există o specificație MS-DOS VDM care rulează în propriul spațiu de adrese care emulează un Intel 80486 care rulează MS-DOS 5. Programele Win16, totuși, rulează într-un Win16 VDM. Fiecare program, în mod implicit, rulează în același proces, utilizând același spațiu de adrese, iar Win16 VDM oferă fiecărui program propriul fir de executat. Cu toate acestea, Windows 2000 permite utilizatorilor să ruleze un program Win16 într-un Win16 VDM separat, ceea ce permite programului să fie multitaskat, deoarece Windows 2000 va preimplica întregul proces VDM, care include o singură aplicație care rulează. Subsistemul de mediu OS / 2 acceptă aplicații OS / 2 pe 16 biți bazate pe caractere și emulează OS / 2 1.x, dar nu 2.x sau aplicații ulterioare OS / 2. Subsistemul de mediu POSIX acceptă aplicații care sunt scrise exclusiv cu standardul POSIX.1 sau legate de standardul ISO / IEC

Subsistemul integral oferă funcții specifice sistemului de operare în locul subsistemului de mediu. Se compune dintr-un „subsistem de securitate”, o „stație de lucru de serviciu” și un „server de serviciu”. Subsistemul de securitate folosește jetoane (securitate) , oferă sau refuză accesul la conturile de utilizator pe baza permisiunilor de resurse, gestionează solicitările de conectare și inițiază autentificarea de conectare și determină ce resurse de sistem ar trebui examinate de Windows 2000. De asemenea, se ocupă de Active Directory . Stația de lucru de serviciu este un API pentru redirecționarea rețelei și oferă computerului acces la rețea. Serverul de servicii este un API care permite computerului să furnizeze servicii de rețea.

Modul kernel

Modul kernel Windows 2000 are acces complet la resursele hardware și software ale computerului și execută codul într-o zonă protejată de memorie. Controlați accesul la programare, prioritatea firului, gestionarea memoriei și interacțiunea hardware. Modul kernel împiedică serviciile și aplicațiile în modul utilizator să acceseze zone critice ale sistemului de operare la care nu ar trebui să aibă acces în timp ce procesele în modul utilizator solicită modului kernel să efectueze aceste operațiuni în numele său.

Modul kernel este format din „servicii executive”, care este el însuși compus din mai multe module care au sarcini specifice, „driver kernel”, un „ kernel ” și un „Hardware Abstraction Layer” sau HAL.

Executiv

Executivul se interfață cu toate subsistemele în modul utilizator. Se leagă de I / O, gestionarea obiectelor, securitate și procese. Acesta include mai multe componente, inclusiv „I / O Manager”, „Security Reference Monitor”, „Object Manager”, „IPC Manager”, „Virtual Memory Manager” (VMM), un „PnP Manager” și un „Power Manager”, cum ar fi „Window Manager”, care funcționează împreună cu Windows „ Graphics Device Interface ” (GDI). Fiecare dintre aceste componente exportă o rutină de suport pentru partea kernel care permite celorlalte componente să comunice între ele. Împreună, componentele pot fi numite „servicii executive”. Nicio componentă executivă nu are acces la rutinele interne ale altei componente executive.

Managerul de obiecte este un subsistem executiv special prin care trebuie să treacă toate subsistemele executive pentru a avea acces la Windows 2000 făcându-l în esență o infrastructură de servicii pentru gestionarea resurselor. Managerul de obiecte este utilizat pentru a reduce duplicarea funcționalității de gestionare a resurselor de obiecte în alte subsisteme executive, care ar putea genera bug-uri și ar putea face dezvoltarea Windows 2000 mai dificilă [1] . În managerul de obiecte, fiecare resursă este un obiect, indiferent dacă resursa respectivă este o resursă fizică (cum ar fi un sistem de fișiere sau un dispozitiv) sau o resursă logică (cum ar fi un fișier). Fiecare obiect are o structură sau „tip de obiect” pe care managerul de obiecte trebuie să o cunoască. Când un alt subsistem executiv solicită crearea unui obiect, acesta trimite această solicitare managerului de obiecte care creează un obiect de structură goală care este completat cu subsistemul executiv solicitant [2] . Tipurile de obiecte definesc procedurile obiectului și orice date despre obiect. În acest fel, managerul de obiecte face din Windows 2000 un sistem de operare orientat pe obiecte , deoarece tipurile de obiecte pot fi considerate clase care definesc obiecte .

Fiecare instanță a unui obiect care este creat își stochează numele, parametrii trecuți către funcțiile de creare a obiectului, atributele de securitate și un pointer către tipul de obiect. Obiectul conține, de asemenea, o procedură de închidere a obiectelor și un număr de referințe care îi spune Managerului de obiecte câte alte obiecte din sistem se referă la acel obiect special pentru a determina dacă obiectul poate fi distrus atunci când i se trimite o cerere. [3] . Fiecare obiect are loc într-un spațiu de nume ierarhic.

Alte subsisteme executive sunt următoarele:

  • Manager I / O: permite dispozitivelor să comunice cu subsistemele în modul utilizator. Traduce comenzi în modul utilizator „citire” și „scriere” în IRP „citire” sau „scriere” care sunt transmise driverelor de dispozitiv.

Acceptă cererile I / O ale sistemului de fișiere și le transformă în apeluri specifice de dispozitiv și poate încorpora drivere de dispozitiv de nivel scăzut care manipulează direct hardware-ul pentru a citi sau scrie intrări. Acesta include, de asemenea, un manager de cache pentru a îmbunătăți performanța discului prin stocarea în cache a cererilor de citire pe disc în fundal.

  • Monitor de referință de securitate (SRM): autoritatea principală pentru aplicarea regulilor de securitate ale regulilor subsistemului de securitate integrală. [4] . Determină dacă un obiect sau resursă poate fi utilizat, prin utilizarea „ listelor de control al accesului ” (ACL), care sunt ele însele compuse din „intrări de control al accesului” (ACE). ACE conțin un „identificator de securitate” (SID) și o listă de operațiuni cărora le oferă un grup selectat de acreditări - un cont de utilizator, un cont de grup, o „sesiune de conectare” [5] - o permisiune (permite, refuza sau cere) la o resursă dată. [6] [7]
  • IPC Manager este abrevierea pentru Interprocess Communication Manager, care gestionează comunicarea dintre client (subsistemul mediului) și server (componentele executivului). Poate utiliza două resurse: Local Procedure Call (LPC) (client și server pe un computer) și Remote Procedure Call (RPC) (unde clientul și serverul sunt situate pe computere diferite). Microsoft a avut probleme semnificative de securitate cu acesta din urmă [8] .
  • Virtual Memory Manager: gestionează memoria virtuală , permițând Windows 2000 să utilizeze hard diskul ca „dispozitiv de stocare” secundar (deși strict vorbind este secundar). Verificați fiecare aspect al paginării pe disc.
  • Manager de proces: Procesează crearea și terminarea aplicațiilor și thread-urilor
  • PnP Manager: procesează Plug and Play și acceptă recunoașterea și instalarea hardware la pornire. De asemenea, este responsabil pentru oprirea și pornirea perifericelor la cerere - uneori, atunci când un autobuz primește un nou periferic și trebuie să aibă un driver încărcat pentru a-l suporta. Atât FireWire, cât și USB sunt „înlocuibile la cald”, ceea ce înseamnă că acceptă adăugarea sau eliminarea hardware-ului sistemului în funcțiune și necesită serviciile PnP Manager pentru încărcarea, oprirea, pornirea perifericelor. PnP Manager se interfață cu HAL, cu restul executivului, precum și cu driverele de dispozitiv.
  • Power Manager: reglează pornirea și oprirea evenimentelor similare și generează IRP-uri conexe. Coordonează-le atunci când mai multe dispozitive trimit o cerere de oprire, determinând cel mai bun mod de a o face.
  • Sistemul de afișare a fost mutat din „modul utilizator” în „modul kernel” ca driver de dispozitiv conținut în fișierul Win32k.sys . Există două componente la acesta din urmă - Window Manager și GDI:
    • Manager ferestre: responsabil pentru proiectarea ferestrelor și a meniurilor. Controlează modul în care ieșirea este reprezentată pe ecran și procesează evenimentele de intrare (de la tastatură sau mouse-ul, de exemplu), apoi transmite mesaje aplicațiilor care trebuie să primească acele intrări.
    • GDI: Graphics Device Interface este responsabil pentru sarcini precum desenarea funcțiilor matematice, permiterea redării fontului, gestionarea cromatismului. Windows 2000 a introdus nativ amestecul alfa în GDI.

Drivere kernel și kernel-mode

Nucleul se află între HAL și Executive și oferă sincronizare în sistemele multiprocesor, prelucrarea firelor și întreruperilor, precum și tratarea excepțiilor. Nucleul este, de asemenea, responsabil pentru inițializarea driverelor de dispozitiv la pornire, care sunt necesare pentru ca sistemul de operare să fie complet funcțional. Kernelul se interfață adesea cu Process Manager. [9]

Arhitectura Windows NT utilizează drivere în modul kernel pentru a conduce hardware-ul direct. Fiecare driver are rutine interne și de sistem care acționează ca interfețe cu restul sistemului de operare. Toate dispozitivele sunt văzute de procesele care rulează în modul utilizator ca fișiere obiect în managerul I / O, dar de către managerul I / O în sine, dispozitivele sunt văzute ca obiecte dispozitiv care pot fi alte fișiere, dispozitive sau obiecte driver. Driverele în modul kernel există în trei niveluri: nivel înalt, nivel intermediar și nivel scăzut. Driverele de nivel superior, cum ar fi driverele pentru sistemele de fișiere FAT și NTFS , s-au bazat pe driverele de nivel intermediar. Driverele de nivel mediu constau din driverele de funcții, numite și driverele principale pentru un dispozitiv, care sunt opțional plasate între driverele de filtru de nivel înalt și de nivel inferior. Driverele de funcții se bazează pe un driver de autobuz sau pe un driver care conduce un controler de autobuz , un adaptor sau o punte care poate comunica opțional printr-un driver de filtru de autobuz situat între el și driverul de funcție. Driverele intermediare se sprijină pe driverele de nivelul inferior. La nivelul intermediar există Windows Driver Model (WDM). Driverele de nivel scăzut pot fi fie driverele vechi Windows NT care controlează direct un dispozitiv, fie pot fi o magistrală hardware PnP. Acești drivere de nivel scăzut controlează direct hardware-ul și nu se bazează pe alți drivere.

Strat de abstractizare hardware

Windows 2000 Hardware Abstraction Layer (HAL), este stratul interpus între hardware-ul real și restul sistemului de operare. A fost conceput pentru a ascunde diferențele hardware și pentru a oferi o platformă unificată pentru fiecare aplicație care rulează. HAL include specificații hardware pentru controlul interfețelor I / O, PIC și procesoare multiple

Windows 2000 și 98 au fost proiectate să accepte DEC Alpha pe 64 de biți . După ce Compaq a anunțat sfârșitul suportului procesorului, Microsoft a întrerupt public versiunea de testare pentru AXP, care a fost întreruptă cu versiunea beta 3. Dezvoltarea a continuat pentru arhitectura mai puțin obișnuită Intel Itanium IA-64 . În prezent, HAL acceptă doar hardware compatibil cu arhitectura Intel x86 .

Notă

  1. ^ Mark Russinovich (octombrie 1997). În interiorul Managerului de obiecte al NT . Introducere.
  2. ^ Mark Russinovich (octombrie 1997). În interiorul Managerului de obiecte al NT . „Tipuri de obiecte”.
  3. ^ Mark Russinovich (octombrie 1997). În interiorul Managerului de obiecte al NT . "Obiecte".
  4. ^ Microsoft . „ Stocare date Active Directory ”.
  5. ^ MSDN . Definiția administratorului Arhivat 22 iunie 2006 la Internet Archive.
  6. ^ Siyan, Kanajit S., 2000.
  7. ^ MSDN . Definiție ACE Arhivat 27 august 2006 la Internet Archive.
  8. ^ Mai jos este o listă a buletinelor de securitate pe care Microsoft le-a trimis cu privire la vulnerabilitățile RPC:
  9. ^ În cadrul Microsoft Windows 2000 (ediția a treia). Microsoft Press . Pagini 543-551.

linkuri externe

Microsoft Portal Microsoft : Accesați intrările Wikipedia despre Microsoft