Rilascio dell'hypervisor Bareflank 2.0

ha avuto luogo rilascio dell'hypervisor Bareflank 2.0, che fornisce strumenti per lo sviluppo rapido di hypervisor specializzati. Bareflank è scritto in C++ e supporta C++ STL. L'architettura modulare di Bareflank ti consentirà di espandere facilmente le capacità esistenti dell'hypervisor e creare le tue versioni di hypervisor, sia in esecuzione su hardware (come Xen) sia in esecuzione in un ambiente software esistente (come VirtualBox). È possibile eseguire il sistema operativo dell'ambiente host in una macchina virtuale separata. Codice del progetto distribuito da concesso in licenza con LGPL 2.1.

Bareflank supporta Linux, Windows e UEFI su CPU Intel a 64 bit. La tecnologia Intel VT-x viene utilizzata per la condivisione hardware delle risorse della macchina virtuale. Per il futuro è previsto il supporto per i sistemi macOS e BSD, nonché la possibilità di lavorare su piattaforme ARM64 e AMD. Inoltre, il progetto sta sviluppando un proprio driver per caricare VMM (Virtual Machine Manager), un caricatore ELF per caricare moduli VVM e un'applicazione bfm per controllare l'hypervisor dallo spazio utente. Fornisce strumenti per scrivere estensioni utilizzando elementi definiti nelle specifiche C++11/14, una libreria per svolgere lo stack di eccezioni (unwind), nonché una propria libreria di runtime per supportare l'uso di costruttori/distruttori e registrare gestori di eccezioni.

È in fase di sviluppo un sistema di virtualizzazione basato su Bareflank boxy, che supporta l'esecuzione di sistemi guest e consente l'utilizzo di macchine virtuali leggere con Linux e Unikernel per eseguire servizi o applicazioni specializzati. Sotto forma di servizi isolati è possibile eseguire sia normali servizi Web che applicazioni che presentano requisiti speciali di affidabilità e sicurezza, liberi dall'influenza dell'ambiente host (l'ambiente host è isolato in una macchina virtuale separata).

Le principali innovazioni di Bareflank 2.0:

  • Aggiunto supporto per il lancio di Bareflank direttamente da UEFI per la successiva esecuzione del sistema operativo in una macchina virtuale;
  • È stato implementato un nuovo gestore di memoria, progettato in modo simile ai gestori di memoria SLAB/Buddy in Linux. Il nuovo gestore della memoria dimostra una frammentazione ridotta, consente prestazioni più elevate e supporta l'allocazione dinamica della memoria all'hypervisor bfdriver, che consente di ridurre la dimensione iniziale dell'hypervisor e scalarlo in modo ottimale in base al numero di core della CPU;
  • Un nuovo sistema di build basato su CMake, indipendente dall'interprete dei comandi, consente una significativa accelerazione della compilazione dell'hypervisor e semplifica il supporto futuro per architetture aggiuntive, come ARM;
  • Il codice è stato riorganizzato e la struttura dei testi sorgenti è stata semplificata. Supporto migliorato per progetti correlati come l'hyperkernel senza la necessità di duplicazione del codice. Codice separato in modo più esplicito ipervisore, libreria di rimozione, runtime, strumenti di controllo, bootloader e SDK;
  • La maggior parte delle API, invece dei meccanismi di ereditarietà precedentemente utilizzati in C++, sono state convertite in using delegazione, che ha semplificato l'API, aumentato le prestazioni e ridotto il consumo di risorse.

Fonte: opennet.ru

Aggiungi un commento