Microkernel

Un microkernel ( eng.  microkernel ) sau μ-kernel ( eng.  μ‑kernel ) este un nucleu de sistem de operare care implementează un set minim de funcții.

Dispozitiv

Lucrul cu microkernel-ul se desfășoară în același mod ca și cu nucleul monolitic  prin apeluri de sistem .

Microkernel-urile oferă doar un set mic de primitive/mecanisme/servicii de nivel scăzut pentru:

Alte primitive/funcții/componente/servicii/module, de exemplu:

rulează în spațiul utilizatorului ca procese separate , interacționează cu nucleul folosind apeluri de sistem , comunică între ele folosind IPC . Într -un sistem de operare kernel monolitic , aceste componente rulează în spațiul kernel ca fire de nucleu .

Pe procesoarele cu arhitectură x86 se folosește așa-numita protecție inel . Procesele din spațiul utilizatorului operează pe al treilea inel ( inelul 3 ) și nu pot efectua unele acțiuni disponibile pe inelul zero ( inelul 0 ) . O eroare într-un proces din spațiul utilizatorului va duce, în cel mai rău caz, la terminarea procesului.   

Avantaje și dezavantaje

Avantajele unui sistem de operare construit pe un microkernel față de un sistem de operare construit pe un nucleu monolitic :

Dezavantajele unui sistem de operare construit pe un microkernel în comparație cu un sistem de operare construit pe un nucleu monolitic :

Pentru ca un sistem de operare microkernel să fie la fel de rapid ca un sistem de operare construit pe un nucleu monolitic, este necesar să proiectați cu atenție împărțirea sistemului în componente și să încercați să minimizați interacțiunea dintre ele. Astfel, principala dificultate în crearea sistemelor de operare microkernel este necesitatea unui design foarte atent.

Generații

Microkernel-urile sunt împărțite în mod convențional în generații. Microkernelurile din diferite generații diferă în design și soluții tehnologice.

Prima generație

A doua generație

A treia generație

Istorie

Microkernel-urile precum nucleul Minix OS și GNU Hurd sunt mult mai lent de dezvoltat decât Linux și nucleul din familia BSD . Potrivit creatorului Minix 3 , Andrew Tanenbaum , el încearcă să „construiască un sistem ultra-fiabil care poate fi folosit și pe servere care necesită ani de funcționare” [2] .

Exemplul clasic de sistem de operare microkernel este Symbian OS . Acesta este un exemplu de sistem de operare microkernel comun și bine stabilit (începând cu Symbian OS v8.1 și nanokernel ).

Creatorii Symbian OS au reușit să combine eficiența și armonia conceptuală, în ciuda faptului că versiunile moderne ale acestui sistem oferă caracteristici extinse, inclusiv instrumente pentru lucrul cu date în flux, stive de protocoale care sunt esențiale pentru latența kernelului, grafică și video de înaltă definiție. Dezvoltatorii Symbian au mutat aproape toate sarcinile aplicate (adică, dincolo de competența nucleului) în module de server care operează în spațiul de adrese al utilizatorului.

În Windows NT versiunile 3.x, a fost utilizată o arhitectură microkernel cu un proces de service pentru subsistemul grafică și interfață cu utilizatorul. În special, driverul hardware grafic a fost încărcat în contextul procesului de serviciu, nu în nucleu. Începând cu versiunea 4, aceasta a fost abandonată, procesul de service a fost păstrat doar pentru gestionarea ferestrelor consolei din linia de comandă, iar subsistemul grafic însuși, împreună cu driverul hardware (inclusiv grafica tridimensională), s-a mutat într-o regiune special izolată a Nucleul sistemului de operare .

Sistemul de operare Windows CE (și se bazează pe acesta, cum ar fi Windows Mobile ), deși este aproape complet compatibil (ca subset) cu Windows NT în ceea ce privește apelurile și metodele de programare a aplicațiilor, diferă totuși complet de Windows NT în arhitectura internă și este un OS microkernel cu eliminarea tuturor driverelor de dispozitiv, a stivelor de rețea și a subsistemului grafic în procesele de serviciu.

Dezavantajul este costul forțării unei „comutații” de procese în kernel ( schimbarea contextului ); acest fapt explică de fapt dificultățile în proiectarea și scrierea nucleelor ​​unui astfel de design. Aceste deficiențe sunt capabile să ocolească sistemele de operare care utilizează arhitectura exokernel , care este o dezvoltare ulterioară a arhitecturii microkernel.

Vezi și

Tipuri de sâmburi Sisteme de operare construite pe microkernel- uri

Note

  1. Project Nova Arhivat 24 iunie 2015 la Wayback Machine . Site-ul oficial.
  2. Interviu pentru comunitatea de limbă rusă a dezvoltatorilor și utilizatorilor OS MINIX 3 . Consultat la 17 mai 2010. Arhivat din original la 19 septembrie 2010.

Link -uri