Pentru discuții, dezvoltatorii nucleului Linux au propus o serie de patch-uri, dezvoltate de proiectul Multikernel, care a fost recent mutat în categoria software-ului open-source și va fi dezvoltat împreună cu comunitatea. Multikernel permite rularea pe un singur computer fizic a mai multor instanțe independente ale nucleului Linux, care au acces direct la resursele hardware și pot fi utilizate pentru a rula mai multe medii de sistem izolate. Proiectul a fost creat de compania Multikernel Technologies, fondată și condusă de Cong Wang, care supraveghează subsistemul de control al traficului în nucleul Linux (TC, Traffic Control).
Pentru lansarea și gestionarea nucleelor, a fost propus un apel îmbunătățit kexec, care, spre deosebire de kexec clasic, nu se limitează la înlocuirea nucleului în funcțiune și permite lansarea de instanțe suplimentare ale nucleului, care rulează paralelel. Pentru monitorizarea și depanarea instanțelor nucleului lansate, a fost implementat un interfață „/proc/multikernel”, iar pentru comunicația între nuclee și coordonarea funcționării, a fost propus un cadru de comunicație Multikernel IPI.

Multikernel este prezentat ca o nouă arhitectură de izolare, având un loc între virtualizarea prin hypervisor și izolația prin containere bazate pe nucleul comun. Spre deosebire de virtualizare, Multikernel nu necesită utilizarea unui hypervisor, simplifică crearea mediilor pentru rularea izolată a aplicațiilor individuale și permite obținerea unei performanțe ridicate fără costurile adăugate ale virtualizării. Spre deosebire de containere, Multikernel oferă un nivel ridicat de izolare și permite utilizarea unui nucleu separat în fiecare mediu izolat.

Performanța utilizării Multikernel este evaluată ca fiind aproape de performanța rulării pe echipamente separate. Aceasta a fost realizată prin excluderea costurilor caracteristice virtualizării, care apar din cauza controlerelor de transfer între mașinile virtuale (VM exit), traducerea IOMMU și intervenția hypervisor-ului în execuția operațiunilor privilegiate. Se suportă alocarea dinamică a resurselor pentru mediile lansate și asigurarea unei performanțe previzibile.
Execuția simultană a mai multor nuclee se realizează fără virtualizare, folosind un procesor SMP care distribuie CPU-urile disponibile între instanțele nucleelor Linux. Fiecare instanță a nucleului Linux este legată de unul sau mai multe nuclee CPU atribuite pentru execuția sa, utilizând în comun celelalte resurse hardware.
Principalele avantaje ale Multikernel:
- Izolare îmbunătățită de defecțiunile mediilor de execuție.
- Securitate sporită prin separația la nivel de nucleu.
- Utilizarea mai eficientă a resurselor în comparație cu mașinile virtuale tradiționale bazate pe hipervizoare, cum ar fi KVM și Xen.
- Posibilitatea potențială de actualizare a nucleului fără a opri activitatea, utilizând mecanismul KHO (Kernel Hand Over).
- Suport pentru integrarea cu infrastructuri cloud standard și posibilitatea unei tranziții transparente de la sistemele tradiționale de virtualizare și izolare prin containere.
- Compatibilitate totală cu aplicațiile existente și interfețele de sistem Linux. Multikernel modifică doar punctual nucleul, menținând compatibilitatea deplină la nivel de API.
Sursa: opennet.ro
