Rilascio dell'hypervisor Bareflank 3.0

È stato rilasciato l'hypervisor Bareflank 3.0, che fornisce strumenti per il rapido sviluppo 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. Il codice del progetto è distribuito con la licenza LGPL 2.1.

Bareflank supporta Linux, Windows e UEFI su CPU Intel e AMD 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 sulla piattaforma ARM64. 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 gestire 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.

Sulla base di Bareflank è in fase di sviluppo il sistema di virtualizzazione 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 specializzate. 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). Bareflank è anche la base dell'hypervisor MicroV, progettato per eseguire macchine virtuali minimaliste (macchina virtuale a singola applicazione), implementa l'API KVM ed è adatto alla creazione di sistemi mission-critical.

Le principali innovazioni di Bareflank 3.0:

  • Transizione all'utilizzo del concetto di microkernel. In precedenza, l'hypervisor aveva un'architettura monolitica, in cui, per espandere le funzionalità, era necessario utilizzare un'API speciale per la registrazione delle chiamate di callback, che rendeva difficile lo sviluppo di estensioni a causa del legame con il linguaggio C++ e la struttura interna. La nuova architettura basata sul microkernel prevede la divisione dell'hypervisor in componenti del kernel in esecuzione sull'anello zero della protezione ed estensioni in esecuzione sull'anello tre (spazio utente). Entrambe le parti vengono eseguite in modalità root VMX e tutto il resto, compreso l'ambiente host, viene eseguito in modalità non root VMX. Le estensioni dello spazio utente implementano la funzionalità Virtual Machine Manager (VMM) e interagiscono con il core dell'hypervisor tramite chiamate di sistema compatibili con le versioni precedenti. Le estensioni possono essere create in qualsiasi linguaggio di programmazione, incluso Rust.
  • È stato effettuato il passaggio all'utilizzo della nostra libreria BSL con supporto per Rust e C++, che ha sostituito le librerie esterne libc++ e newlib. Eliminando le dipendenze esterne, Bareflank fornisce il supporto nativo per la compilazione di Windows per semplificare lo sviluppo su tale piattaforma.
  • Aggiunto il supporto per i processori AMD. Inoltre, lo sviluppo Bareflank viene ora effettuato su un sistema con CPU AMD e solo successivamente portato su una CPU Intel.
  • Il bootloader ha aggiunto il supporto per l'architettura ARMv8, l'adattamento dell'hypervisor per il quale sarà completato in una delle prossime release.
  • Assicurato il rispetto dei requisiti per lo sviluppo di sistemi critici formulati dalle organizzazioni AUTOSAR e MISRA.

Fonte: opennet.ru

Aggiungi un commento