Procesorul execută programe în Modul Utilizator sau Modul Kernel. Când utilizați computerul, procesorul comută frecvent între aceste două tipuri de moduri, în funcție de ceea ce face. Dar ce sunt Modul Utilizator și Modul Kernel? Care este diferența dintre aceste două moduri? De ce trebuie procesorul să comute între aceste moduri.
Ce este modul utilizator în Windows?

Modul utilizator în Windows
Când porniți un program pe Windows, programul respectiv se lansează în Modul utilizator. Ori de câte ori un program în Modul utilizator dorește să ruleze, Windows creează un proces pentru acesta. Un proces este doar un program pe care un procesor îl execută sau un program pe care Windows l-a programat să îl execute. Și ori de câte ori Windows creează un proces, creează și un spațiu de adresă virtual pentru acel proces.
Spațiul de adrese virtuale este setul de adrese logice (non-fizice) pe care Windows le atribuie unui proces. Procesele pot folosi aceste adrese pentru a stoca date în memoria fizică.
În plus, spațiul de adrese virtuale este izolat. Prin urmare, spațiul de adrese virtuale al unui proces nu interferează cu spațiul de adrese al altui proces. Și pentru că programele din Modul Utilizator au spații de adrese separate, dacă un program se blochează, acel program se va bloca singur și nu va afecta alte programe sau întregul sistem de operare cu efectele sale.
O altă modalitate de a descrie aplicațiile în modul utilizator este utilizarea termenului „mai puțin privilegiați”. Windows restricționează aplicațiile în modul utilizator să acceseze direct resursele critice ale sistemului, făcându-le astfel mai puțin privilegiate. De exemplu, dacă o aplicație dorește să acceseze hardware, trebuie să treacă prin nucleul sistemului de operare folosind apeluri de sistem (un stil de programare în care un program de calculator solicită un serviciu de la nucleul sistemului de operare). este executat).
Mai simplu spus, programele de aplicație precum jocurile video rulează în modul utilizator. Au puține privilegii, așa că nu au acces nerestricționat la resursele sistemului. Fiecare aplicație User Mode are propriul spațiu de adrese. O aplicație nu poate modifica spațiul de adrese al altei aplicații. Prin urmare, dacă o aplicație se blochează, aceasta nu afectează alte programe care rulează pe computer.
Ce este modul Kernel în Windows?
![Diferența dintre modul Kernel și modul utilizator în Windows Diferența dintre modul Kernel și modul utilizator în Windows]()
Modul Kernel în Windows
Înainte de a discuta despre modul Kernel, trebuie să știm mai întâi ce este un „kernel” și cum funcționează cu Windows.
Kernel-ul este creierul unui sistem de operare. Este componenta software de bază pe care se bazează toate celelalte componente din sistemul de operare. Nucleul gestionează hardware-ul computerului, programează rulările pe computer și se ocupă de interacțiunile dintre hardware și software-ul aplicației.
Pe scurt, nucleul este cea mai privilegiată bucată de cod care rulează pe sistem, deoarece este codul care interacționează direct cu hardware-ul. Orice alt program care dorește să folosească resurse hardware trebuie să solicite acces prin kernel.
Când un program de aplicație rulează în Modul utilizator și dorește să acceseze hardware, cum ar fi o cameră web, trebuie să solicite nucleul folosind apeluri de sistem. Pentru a servi aceste solicitări, CPU, în momentul execuției programului, trece de la Modul Utilizator la Modul Kernel.
Odată ce execuția este completă, CPU trece înapoi la modul utilizator și începe să execute următorul proces programat. Aceasta se numește „Schimbarea contextului” .
Care este diferența dintre modul utilizator și modul Kernel?
Principala diferență dintre Modul Utilizator și Modul Kernel este nivelul de privilegii oferit de fiecare mod. În modul utilizator, aplicațiile au mai puține privilegii. Ei nu au acces direct la resursele hardware și nu pot scrie în spațiul de adrese al altor aplicații.
Codul care rulează în modul Kernel are privilegii ridicate. Nu numai că are acces direct la hardware-ul computerului, dar toate programele care rulează în modul Kernel, inclusiv sistemul de operare, partajează și un spațiu de adrese. Deci, dacă un program în modul Kernel se blochează, poate cauza blocarea întregului sistem de operare. Pentru a vă asigura că astfel de probleme nu apar, Windows permite doar rularea anumitor procese în modul Kernel.
Windows adoptă o abordare stratificată pentru a separa programele utilizatorului de resursele sistemului
Windows folosește un model stratificat pentru a determina nivelurile de privilegii ale proceselor. Aplicațiile situate în stratul exterior sunt aplicațiile care au privilegii de închiriere. Miezul acestor straturi este nucleul. Prin urmare, nucleul are acces nelimitat la resursele sistemului de operare.
Abordarea stratificată protejează, de asemenea, funcționalitatea critică a sistemului de operare. Când programele din stratul superior se blochează aleatoriu, nu afectează sistemul de operare. Pe de altă parte, atunci când nucleul se blochează, întregul sistem de operare este afectat.