Quasi a sorpresa, una proposta a suo modo rivoluzionaria è stata presentata alla community Linux. Essa riguarda un’architettura multi-kernel che permetterebbe di eseguire più istanze indipendenti del kernel su un’unica macchina fisica. Il codice è stato reso open source questa settimana dalla Multikernel Technologies Inc. e pubblicato come RFC (Request for Comments) sulla mailing list ufficiale del kernel Linux.
Un kernel Linux per ogni core
L’idea alla base del progetto è quella di consentire a ciascun kernel di operare su un set dedicato di core CPU pur condividendo le risorse hardware disponibili. In questo modo si potrebbero creare scenari come l’esecuzione di kernel in real-time su core specifici lasciando gli altri a gestire i carichi general-purpose.
Cong Wang, di Multikernel Technologies, ha spiegato che un’architettura di questo genere porterebbe a diversi vantaggi tra cui:
- un maggiore isolamento dei guasti tra i carichi di lavoro;
- un incremento della sicurezza grazie alla separazione a livello di kernel;
- un utilizzo più efficiente delle risorse rispetto alle tradizionali macchine virtuali (KVM, Xen);
- la possibilità di aggiornamenti kernel a zero downtime tramite KHO (Kernel Hand Over).
Come funziona l’architettura multi-kernel
Il sistema si basa sull’infrastruttura kexec, già parte di Linux, per caricare e gestire più immagini kernel contemporaneamente. Ogni istanza viene assegnata a core dedicati, mentre la comunicazione tra kernel avviene tramite un framework IPI (Inter-Processor Interrupts) per lo scambio di informazioni e il coordinamento.
I casi d’uso sono numerosi: dall’esecuzione parallela di kernel specializzati per applicazioni critiche alla sicurezza, fino a sistemi ibridi che combinano kernel in real-time e general-purpose.
Alcuni sviluppatori hanno però sottolineato la complessità del portare questa proposta oltre lo stadio di proof-of-concept. Le difficoltà riguardano soprattutto la gestione dell’hardware condiviso e la stabilità dell’interazione tra più kernel.

