Kernel hibrid - Hybrid kernel

Structura sistemelor de operare pe bază de nucleu monolitic, microcernel și hibrid

Un nucleu hibrid este o arhitectură de nucleu de sistem de operare care încearcă să combine aspecte și beneficii ale microcernelului și arhitecturilor nucleului monolitic utilizate în sistemele de operare ale computerului .

Prezentare generală

Categoriile tradiționale de nucleu sunt nucleele și microcernelurile monolitice (cu nanocerneluri și exocerneluri văzute ca versiuni mai extreme ale microcernelurilor). Categoria „hibrid” este controversată, datorită similitudinii miezurilor hibride și miezurilor monolitice obișnuite; termenul a fost respins de Linus Torvalds ca un simplu marketing.

Ideea din spatele unui nucleu hibrid este de a avea o structură a nucleului similară cu cea a unui microkernel, dar de a implementa acea structură în maniera unui nucleu monolitic. Spre deosebire de un microkernel, toate (sau aproape toate) serviciile sistemului de operare dintr-un nucleu hibrid sunt încă în spațiul nucleului . Nu există niciunul dintre avantajele fiabilității de a avea servicii în spațiul utilizatorului , ca și în cazul unui microkernel . Cu toate acestea, la fel ca în cazul unui kernel monolitic obișnuit , nu există nici o cheltuială de performanță pentru transmiterea mesajului și comutarea contextului între kernel și modul utilizator care vine în mod normal cu un microkernel .

Exemple

NT kernel

Arhitectura familiei sistemului de operare Windows NT constă din două straturi ( modul utilizator și modul kernel ), cu multe module diferite în ambele straturi.

Un exemplu proeminent de kernel hibrid este nucleul Microsoft Windows NT care alimentează toate sistemele de operare din familia Windows NT , până și inclusiv Windows 10 și Windows Server 2019 și alimentează Windows Phone 8 , Windows Phone 8.1 și Xbox One .

Windows NT a fost primul sistem de operare Windows bazat pe un nucleu hibrid. Nucleul hibrid a fost conceput ca un microcernel modificat , influențat de microcernelul Mach dezvoltat de Richard Rashid la Universitatea Carnegie Mellon, dar fără a îndeplini toate criteriile unui microcernel pur. Windows bazat pe NT este clasificat ca un nucleu hibrid (sau un macrokernel) mai degrabă decât un nucleu monolitic, deoarece subsistemele de emulare rulează în procesele serverului în modul utilizator, mai degrabă decât în ​​modul nucleu ca pe un nucleu monolitic și mai mult din cauza numărului mare a obiectivelor de design care seamănă cu obiectivele de proiectare ale lui Mach (în special separarea personalităților sistemului de operare de un design general al nucleului). În schimb, motivul pentru care NT nu este un sistem de microcernel se datorează faptului că majoritatea componentelor sistemului rulează în același spațiu de adrese ca nucleul, așa cum ar fi cazul unui design monolitic (într-un design monolitic tradițional, nu ar exista un microkernel pe se, dar nucleul ar implementa funcționalități în mare măsură similare cu subsistemele NT ale microkernelului și ale modului kernel).

Personalitatea principală a sistemului de operare pe Windows este API-ul Windows , care este întotdeauna prezent. Subsistemul de emulare care implementează personalitatea Windows se numește subsistemul Runtime Client / Server (csrss.exe). În versiunile de NT anterioare versiunii 4.0, acest proces de subsistem conținea și managerul de ferestre, interfața dispozitivului grafic și driverele de dispozitiv grafic. Din motive de performanță, totuși, în versiunea 4.0 și ulterioară, aceste module (care sunt adesea implementate în modul utilizator chiar și pe sistemele monolitice, în special cele concepute fără suport grafic intern) rulează ca un subsistem în modul kernel.

Aplicațiile care rulează pe NT sunt scrise la una dintre personalitățile sistemului de operare (de obicei API-ul Windows) și nu la API-ul NT nativ pentru care documentația nu este disponibilă public (cu excepția rutinelor utilizate în dezvoltarea driverului de dispozitiv). O personalitate a sistemului de operare este implementată printr-un set de DLL-uri în modul utilizator (a se vedea Biblioteca de legături dinamice ), care sunt mapate în spațiile de adrese ale proceselor aplicației, după cum este necesar, împreună cu un proces de server de subsistem de emulare (așa cum a fost descris anterior). Aplicațiile accesează serviciile de sistem apelând în DLL-urile de personalitate ale sistemului de operare mapate în spațiile lor de adrese, care la rândul lor apelează în biblioteca de execuție NT (ntdll.dll), mapate și în spațiul de adrese de proces. Biblioteca de execuție NT asigură aceste solicitări prin prinderea în modul kernel, fie pentru a apela rutine Executive în modul kernel, fie pentru a efectua apeluri de procedură locală (LPC) către procesele corespunzătoare ale serverului de subsistem în modul utilizator, care la rândul lor folosesc NT API pentru a comunica cu procesele de aplicație, subsistemele de tip kernel și reciproc.

Kernel-ul XNU

Kernel XNU

XNU este kernel - ul pe care Apple Inc. a achiziționat și dezvoltat pentru a fi utilizate în MacOS , iOS , watchOS , și tvOS sisteme de operare și lansat ca software - ul gratuit și open source , ca parte a sistemului de operare Darwin . XNU este un acronim pentru X is Not Unix .

Dezvoltat inițial de NeXT pentru sistemul de operare NeXTSTEP , XNU era un nucleu hibrid care combina versiunea 2.5 a nucleului Mach cu componente de la 4.3BSD și un API orientat obiect pentru scrierea driverelor numit Driver Kit.

După ce Apple a achiziționat NeXT, componenta Mach a fost actualizată la OSFMK 7.3, care este un microkernel. Apple folosește un OSFMK 7.3 puternic modificat funcționând ca un nucleu hibrid cu părți din FreeBSD incluse. (OSFMK 7.3 include codul aplicabil de la Universitatea din Utah Mach 4 kernel - ul și codul aplicabil din mai multe variante Mach 3.0 , care bifurcat off de original Carnegie Mellon University Mach 3.0 kernel - ul.) Componentele BSD au fost modernizate cu codul de FreeBSD proiect , iar Driver Kit a fost înlocuit cu un API C ++ pentru scrierea driverelor numite I / O Kit.

Descriere

La fel ca și alte nuclee moderne , XNU este un hibrid, care conține caracteristici atât ale monoliticului, cât și ale microkernelurilor , încercând să facă cea mai bună utilizare a ambelor tehnologii, cum ar fi capacitatea de transmitere a mesajelor a microcernelelor care permite o mai mare modularitate și porțiuni mai mari ale sistemului de operare pentru a beneficia de protecție memorie , precum și păstrarea vitezei nucleelor ​​monolitice pentru anumite sarcini critice.

Alții

Vezi si

Note

Referințe