În lumea de astăzi, Nucleu hibrid este un subiect care stârnește un mare interes și dezbatere. De-a lungul timpului, Nucleu hibrid a captat atenția cadrelor universitare, a experților și a publicului larg, devenind un punct cheie de discuție în diferite domenii. Relevanța lui Nucleu hibrid se reflectă în impactul său asupra societății și în modul în care ne influențează viața de zi cu zi. În acest articol, vom explora subiectul Nucleu hibrid în profunzime, analizând implicațiile sale, evoluția sa în timp și diferitele puncte de vedere care există în această problemă.
Un nucleu hibrid este o architectură a nucleului sistemului de operare care încearcă să combine aspecte și beneficii al arhitecturilor de nucleu micronucleu și monolitică utilizate în sisteme de operare pentru calculator.[1][2]
Categoriile de nucleu tradiționale sunt nucleele monolitice și micronucleele (iar nanonucleele și exonucleele sunt privite ca versiuni mai extreme al micronucleelor). Categoria "hibridă" e controversată, din cauza similitudinii nucleelor hibride și al nucleelor monolitice ordinare; termenul a fost respins de Linus Torvalds ca o simplă publicitate.[3]
Idea la spatele unui nucleu hibrid e să fie o structură de nucleu similară cu cea a unui micronucleu, dar să se implementeze structura dată într-o maniera ca a unui nucleu monolitic. În contrast cu un micronucleu, toate (sau aproape toate) serviciile sistemului de operare în nucleul hibrid totuși sunt în spațiul nucleului. Comparativ cu un micronucleu nu există beneficii de siguranță de servicii fiindcă ele nu sunt amplasate în spațiul utilizatorului. Dar, la fel ca și un nucleu monolitic ordinar, nu este nici o penalizare de performanță pentru transmiterea mesajelor și schimbarea contextului între nucleu și modul utilizator care în mod normal vin cu un micronucleu.
Un exemplu prominent de un nucleu hibrid e nucleul NT din Microsoft Windows care stă la baza tuturor sistemelor de operare din familia Windows NT, până la și inclusiv și Windows 10 și Windows Server 2019, și stă la baza Windows Phone 8, Windows Phone 8.1, și Xbox One.
Windows NT a fost primul sistem de operare Windows bazat pe un nucleu hibrid. Nucleu hibrid a fost proiectat ca un micronucleu modificat, influențat de micronucleul Mach dezvoltat de Richard Rashid la Universitatea Carnegie Mellon , dar fără a îndeplini toate cerințele unui micronucleu pur. Windows bazat pe NT se clasifică ca un nucleu hibrid (sau ca macronucleu[4]) decât ca un nucleu monolitic deoarece emularea subsistemelor rulează în procese server la nivel de utilizator, comparativ cu nivelul nucleului din nucleele monolitice, și încă din cauza numărului mare de obiective de proiectare care se aseamănă cu obiectivele de proiectare Mach (în particular separarea personalităților SO de designul general al nucleului). În schimb, cauza de ce NT nu e sistem micronucleu e din cauza că majoritatea componentelor de sistem rulează în același spațiu de adrese ca și nucleul, fix ca în cazul unui design monolitic (într-un design monolitic tradițional, nu ar fi un micronucleu per se, dar nucleul ar implementa funcționalitate similară cu micronucleul din NT și subsistemele la nivel nucleu).
Principala personalitate sistem de operare în Windows este Windows API, care este prezentă tot timpul. Subsistema de emulare care implementează personalitatea Windows se numește Client/Server Runtime Subsystem (csrss.exe). În versiunile NT înainte de 4.0, aceast process subsistemă mai conținea și gestionarul de ferestre, interfața pentru dispozitive grafice și driverele dispozitivelor grafice. Din motive de performanță, însă, în versunea 4.0 și următoarele, aceste module (care deseori îs implementate în spațiul utilizatorului chiar în sisteme monolite , mai ales acelea proiectate fără suport pentru grafică internă) rulează ca subsisteme la nivel nucleu.[4]
Aplicațiile care rulează pe NT sunt scrise pentru una din personalitățile SO (de obicei Windows API), și nu pentru APIul nativ NT pentru care documentația nu este disponibilă public (cu excepția rutinelor utilizate în dezvoltarea driverelor de dispozitiv). O personalitate SO e implementată ca un set de DLLuri (vezi Librărie cu legătură dinamică) în spațiul utilizatorului, care sunt mapate în spațiile de adrese al proceselor aplicațiilor la necesitate, împreună cu un proces server al subsistemului de emulare (cum a fost descris anterior). Aplicațiile accesează serviciile sistemului chemând DLLurile personalității SO mapate în spațiul lora de adrese, care la rândul lora cheamă librăria în timp de rulare NT (ntdll.dll), de asemenea mapată în spațiul de adrese al procesului. Librăria NT în timp de rulare procesează aceste chemări prin întreruperea în nivelul nucleu fie să cheme rutine executive la nivel nucleu sau să facă chemari de procedure locale (LPCuri) la procesele server subsistemă corespunzătoare la nivelul utilizatorului, care la rândul lora utilizează APIul NT pentru a comunica cu procesele aplicațiilor, subsistemele la nivel nucleu și între ele.[5]
XNU e nucleul pe care Apple Inc. l-a achiziționat și dezvoltat pentru uz în sistemele de operare macOS și iOS și scos ca program liber cu sursă deschisă ca parte din sistemul de operare Darwin. XNU e un acronim pentru X nu e Unix.[6]
Inițial dezvoltat de NeXT pentru sistemul de operare NeXTSTEP, XNU a fost un nucleu hibrid combinând versiunea 2.5 de nucleul Mach cu componente din 4.3BSD și un API orientat obiect pentru a scri drivere numit Driver Kit.
După ce Apple a procurat NeXT, componenta Mach a fost actualizată la OSFMK 7.3,[7] care e un micronucleu.[8] Apple utilizează un OSFMK 7.3 modificat substanțial care funcționează ca un nucleu hibrid cu părți din FreeBSD incluse.[7] (OSFMK 7.3 include cod aplicabil din nucleul Mach 4 al Universității Utah și cod aplicabil din multe variante Mach 3.0 care au apărut din nucleul Mach 3.0 original al universității Carnegie Mellon.) Componentele BSD au fost actualizate cu cod din proiectul FreeBSD și Driver Kit a fost înlocuit cu un API C++ pentru a scri drivere numit I/O Kit.
Ca și alte nuclee moderne, XNU e hibrid, conținând funcționalițăți atât din nuclee monolitice și din micronuclee, încercând să scoată cea mai bună utilizare din ambele technologii, ca de exemplu capabilitatea transmiterea mesajelor al micronucleelor permițând modularitatea mai mare [necesită citare] și porțiuni mai mari de SO să beneficieze de memorie protejată,[necesită citare] dar în același timp păstrând viteza nucleelor monolitice pentru anumite sarcini critice.
As to the whole "hybrid kernel" thing - it's just marketing. It's "Oh, those microkernels had good PR, how can we try to get good PR for our working kernel? Oh, I know, let's use a cool name and try to imply that it has all the PR advantages that that other system has.
Nucleu (sistem de operare)Nucleu (sistem de operare)