Microkernel in OperaSistem de tingere: Architectură, Avantaje
⚡ Rezumat inteligent
Microkernelul este un nucleu minimal al unui sistem de operare care păstrează doar funcțiile esențiale - gestionarea memoriei, planificarea proceselor și comunicarea între procese - în spațiul kernelului, în timp ce driverele de dispozitiv, serverele de fișiere și alte servicii rulează separat în spațiul utilizatorului.

Înainte de a învăța Microkernel, să înțelegem:
Ce este Kernel?
Un kernel este o parte importantă a unui sistem de operare care gestionează resursele sistemului. De asemenea, acționează ca o punte între software și hardware-ul computerului. Este unul dintre primele programe care se încarcă la pornire, după bootloader. Nucleul este, de asemenea, responsabil pentru oferirea accesului securizat la hardware-ul mașinii pentru diverse programe. De asemenea, decide când și cât timp o anumită aplicație utilizează un anumit hardware.
Ce este Microkernel?
Microkernelul este un software sau cod care conține cantitatea minimă necesară de funcții, date și caracteristici pentru implementarea unui sistem de operare. Acesta oferă un număr minim de mecanisme, suficient de bun pentru a rula cele mai elementare funcții ale unui sistem de operare. Permite implementarea altor părți ale sistemului de operare, deoarece nu impune multe politici.
Microkernel-urile și mediile lor de utilizator sunt de obicei implementate în C++ or limbaje de programare C cu un pic de asamblare. Cu toate acestea, alte limbaje de implementare sunt posibile cu o codificare de nivel înalt.
Ce este un nucleu monolitic?
Un kernel monolitic rulează toate serviciile de bază ale sistemului, cum ar fi administrarea procesului, gestionarea memoriei, comunicarea I/O și tratarea întreruperilor, sistemul de fișiere etc., în spațiul kernelului.
În acest tip de abordare bazată pe kernel, întregul sistem de operare rulează ca un singur program în modul kernel. Sistemul de operare este scris ca o colecție de proceduri legate între ele într-un program binar executabil de mari dimensiuni.
micro nucleu Architectură
Un microkernel este cea mai importantă parte pentru implementarea corectă a unui sistem de operare. După cum puteți vedea în diagrama de mai jos, microkernelul îndeplinește operațiuni de bază precum memoria, mecanismele de planificare a proceselor și comunicarea între procese.
Bazat pe microkernel Operating System
Microkernelul este singurul software care se execută la nivel privilegiat. Celelalte funcționalități importante ale sistemului de operare sunt eliminate din modul kernel și rulează în modul utilizator. Aceste funcționalități pot fi drivere de dispozitiv, aplicații, servere de fișiere, comunicare între procese etc.
Componentele Microkernelului
Un microkernel cuprinde doar funcționalitățile de bază ale sistemului. O componentă este inclusă în microkernel numai dacă plasarea ei în afara sistemului ar întrerupe funcționalitatea sistemului. Toate celelalte componente neesențiale ar trebui puse în modul utilizator.
Funcționalitățile minime necesare în microkernel sunt:
- Managementul memoriei Mecanisme precum spațiile de adrese ar trebui incluse în microkernel. De asemenea, acesta conține funcții de protecție a memoriei.
- Mecanismele de programare a procesorului ar trebui să conțină programatori de procese și fire.
- Comunicarea între procese gestionează serverele care rulează propriile spații de adrese.
Diferența dintre Microkernel și Monolithic Kernel
| parametrii | Nuez monolitic | micro nucleu |
|---|---|---|
| pachet de bază | Este un proces amplu care rulează într-un singur spațiu de adrese. | Poate fi împărțit în procese separate numite servere. |
| Code | Pentru a scrie un nucleu monolitic, este necesar mai puțin cod. | Pentru a scrie un microkernel, este nevoie de mai mult cod. |
| Securitate | Dacă un serviciu se prăbușește, întregul sistem se prăbușește într-un nucleu monolitic. | Dacă un serviciu se blochează, nu afectează niciodată funcționarea unui microkernel. |
| Comunicarea | Este un singur fișier binar static. | Serverele comunică prin IPC. |
| Exemplu | Linux, BSD-uri, Microsoft Windows (95, 98, Me), Solaris, OS-9, AIX, DOS, XTS-400 etc. | L4Linux, QNX, Symbian, K42, Mac OS X, Integrity, Etc |
Avantajele Microkernelului
Iată avantajele/beneficiile utilizării unui microkernel:
- Arhitectura microkernelului este mică și izolată, prin urmare poate funcționa mai bine.
- Micronucleele sunt sigure deoarece sunt incluse doar acele componente care altfel ar perturba funcționalitatea sistemului.
- Extinderea sistemului este mai accesibilă, astfel încât poate fi adăugată la aplicația de sistem fără a perturba kernelul.
- Micronucleele sunt modulare, iar diferitele module pot fi înlocuite, reîncărcate sau modificate fără a atinge măcar nucleul.
- Mai puține blocări ale sistemului în comparație cu sistemele monolitice.
- Interfața microkernel vă ajută să impuneți o structură de sistem mai modulară.
- Noile funcționalități pot fi adăugate fără recompilare.
- Defecțiunea serverului este, de asemenea, izolată, la fel ca orice altă defecțiune a programului utilizatorului.
- Sistemul microkernel este flexibil, astfel încât diferite strategii și API-uri implementate de diferite servere pot coexista în sistem.
- Securitatea și stabilitatea sporite rezultă dintr-o cantitate redusă de cod care rulează în modul kernel.
Dezavantaje ale microkernelului
Iată dezavantajele/dezavantajele utilizării unui microkernel:
- Furnizarea de servicii într-un sistem microkernel este costisitoare în comparație cu un sistem monolitic normal.
- O schimbare de context sau un apel de funcție este necesară atunci când driverele sunt implementate ca proceduri, respectiv procese.
- Performanța unui sistem microkernel poate fi indiferentă și poate duce la unele probleme.

