Schema generală de arhitectură
Windows este un sistem de operare cu un kernel hibrid (vezi Lectura 1 "Introducere în sistemele de operare"). În acesta, funcțiile sistemului de bază pentru gestionarea proceselor, a memoriei, a dispozitivelor, a sistemului de fișiere și a securității sunt implementate în componente care funcționează în modul kernel; dar există o serie de componente importante ale sistemului de utilizator, cum ar fi procesele de conectare la sistem, autentificarea locală, managerul de sesiuni și subsistemul de mediu.
Fig. 4.1. Windows Architecture
Modurile Componenta utilizator
Următoarele tipuri de procese funcționează în modul utilizator:
- procesele de sistem sunt componentele Windows responsabile de rezolvarea unor sarcini critice ale sistemului (adică, prăbușirea unuia dintre aceste procese cauzează funcționarea instabilă sau instabilă a întregului sistem), dar efectuată în modul utilizator. Principalele procese ale sistemului:
- Winlogon.exe - procesul de logare și ieșire din sistem;
- Smss.exe (procesul de administrare a sesiunilor) - procesul execută operațiuni importante atunci când sistemul este inițializat (încărcarea DLL-urilor necesare, executarea proceselor Winlogon și Csrss etc.) și apoi controlul funcționării Winlogon și Csrss;
- Lsass.exe (Serverul de subsistem de autentificare a securității locale) - procesul verifică validitatea numelui de utilizator și a parolei introduse;
- Wininit.exe este procesul de inițializare a sistemului (de exemplu, pornește procesele Lsass și Services);
- Userinit.exe - procesul de inițializare a mediului de utilizare (de exemplu, acesta pornește shell-ul sistemului - în mod implicit, Explorer.exe);
- Services.exe (SCM, Service Control Manager) - procesul responsabil pentru executarea serviciilor - vezi mai jos;
Toate procesele de mod de utilizator listate (cu excepția subsistemului POSIX 1 subsistem POSIX utilizează biblioteca Psxdll.dll.) Utilizați bibliotecile Windows DLL (Library Dynamic Link) pentru a interacționa cu modulele kernel mode. Fiecare DLL exportă un set de funcții Windows API pe care procesul le poate apela.
Windows API (Windows Application Programming Interface, WinAPI) este o modalitate de a interacționa procese în modul utilizator cu module de mod kernel. WinAPI include mii de funcții și este bine documentat [10].
DLL-urile de bază Windows sunt după cum urmează:
- Kernel32.dll - funcții de bază, inclusiv lucrul cu procesele și firele, gestionarea memoriei și intrare-ieșire;
- Advapi32.dll - funcții, legate în principal de gestionarea securității și accesul la registru;
- User32.dll - funcții responsabile cu gestionarea ferestrelor și a elementelor acestora în aplicațiile GUI (interfață grafică de utilizator - interfață grafică de utilizator);
- Gdi32.dll - funcții de interfață grafică a dispozitivelor (GDI) care permit desenarea pe ecran și imprimantă a primitivelor grafice și a ieșirilor de text.
Biblioteca Ntdll. dll exportă în mare parte funcții nedocumentate ale sistemului, implementate în principal în Ntoskrnl.exe. Un set de astfel de funcții se numește API Nativ (API nativ).
DLL-urile Windows convertesc apelurile la funcțiile WinAPI documentate în apelurile către funcțiile Native API și comută procesorul în modul kernel.
Elemente ale modului kernel
Dispecerul de serviciu al sistemului funcționează în modul kernel, interceptează apelurile funcționale din Ntdll. dll. verifică parametrii și solicită funcțiile corespunzătoare din Ntoskrnl.exe.
Sistemul executiv și kernel-ul sunt conținute în Ntoskrnl.exe (nucleul sistemului de operare NT - nucleul sistemului de operare NT) (pentru utilizarea termenului "kernel" în Windows, vezi Lectura 1 "Introducere în sistemele de operare").
Sistemul executiv este o colecție de componente (numite dispecer - manager) care implementează principalele sarcini ale sistemului de operare:
- Manager de proces - gestionarea proceselor și a firelor (vezi Lectura 6 "Procese și fluxuri");
- Manager de memorie (manager de memorie) - gestionarea memoriei virtuale și cartografierea acesteia în memoria fizică (a se vedea lecția 8 "Managementul memoriei");
- monitor de monitorizare a securității - gestionarea securității (vezi lecția 9 "Securitate");
- Manager I / O, manager de cache, Manager Plug and Play (PnP Manager) -controlarea dispozitivelor externe și a sistemelor de fișiere (vezi Capitolul 10, "Gestionarea dispozitivelor" și Capitolul 11, "Sistemul de fișiere NTFS"). ;
- Manager de energie (manager de alimentare) - gestionarea alimentării și consumul de energie;
- Manager de obiecte, manager de configurare, mecanism de apelare a procedurilor locale (apel local de procedură) - gestionarea procedurilor de service și a structurilor de date necesare altor componente.
Kernel-ul (Kernel) conține funcții care susțin componentele sistemului executiv și efectuează programarea fluxului (vezi Lectura 7, "Planificarea firelor"), mecanismele de sincronizare, manipularea întreruperilor.
Componenta Windows USER și GDI este responsabilă de GUI-ul utilizatorului (ferestre, comenzi în butoanele ferestrelor - meniu etc.), face parte din subsistemul Windows și este implementat în driverul Win32k.sys.
Interacțiunea managerului de I / O cu dispozitivele este asigurată de modulele de programare care funcționează în modul kernel, care au cele mai complete informații despre dispozitivul specific (driverele sunt discutate în detaliu în cursul 10 "Gestionarea dispozitivelor").
Cu toate acestea, atât driverele, cât și kernelul nu interacționează direct cu dispozitivele fizice - mediatorul dintre componentele software-ului kernelului și hardware-ul este Hardware Abstraction Layer (HAL) - nivelul de abstractizare de la echipamentul implementat în Hal. dll. HAL vă permite să ascundeți caracteristicile platformei hardware (de exemplu, diferențele dintre plăcile de bază) pe care este instalat sistemul de operare din toate componentele software.
Prezentarea prezintă arhitectura sistemului de operare Windows și descrie principalele componente ale modului de utilizare și ale modului kernel.
În următoarea prelegere, kernelul de cercetare Windows (Windows Research Kernel) este o variantă a programului Ntoskrnl.exe cu codul sursă disponibil organizațiilor academice.
Întrebări de test
- Ce tipuri de nuclee sunt Windows NT, monolitic sau microkernels? Justificați răspunsul.
- Listați principalele componente ale modului de utilizare.
- Listează principalele componente ale modului kernel.
- Ce este API-ul Windows? Unde pot găsi informații despre această problemă?
- Care sunt principalele funcții ale sistemului executiv care face parte din Ntoskrnl.exe?
- Care sunt principalele funcții ale kernel-ului care face parte din Ntoskrnl.exe?
- Ce este HAL?
Articole similare