Hypervisor-Release , das ein Toolkit zur schnellen Entwicklung spezialisierter Hypervisoren bereitstellt. Bareflank ist in C++ geschrieben und unterstützt C++ STL. Die modulare Architektur von Bareflank ermöglicht es, die vorhandenen Funktionen des Hypervisors einfach zu erweitern und eigene Varianten von Hypervisoren zu erstellen, die sowohl auf Hardware (wie Xen) als auch in vorhandenen Softwareumgebungen (wie VirtualBox) betrieben werden. Es besteht die Möglichkeit, das Betriebssystem der Host-Umgebung in einer separaten virtuellen Maschine auszuführen. Der Code des Projekts steht unter der LGPL 2.1-Lizenz.
Bareflank unterstützt Linux, Windows und UEFI auf 64-Bit-CPUs von Intel. Für die Hardware-Trennung der Ressourcen von virtuellen Maschinen kommt die Intel VT-x-Technologie zum Einsatz. In der Zukunft ist die Unterstützung von macOS und BSD-Systemen sowie die Möglichkeit der Ausführung auf ARM64- und AMD-Plattformen geplant. Darüber hinaus entwickelt das Projekt einen eigenen Treiber zum Laden des VMM (Virtual Machine Manager), einen ELF-Bootloader zum Laden von VVM-Modulen und eine Anwendung bfm zur Verwaltung des Hypervisors aus dem Benutzerspeicherbereich. Ein Toolkit zum Schreiben von Erweiterungen mithilfe der in den Spezifikationen C++11/14 definierten Elemente wird bereitgestellt, sowie eine Bibliothek zum Entwirren von Ausnahmen (unwind) und eine eigene Runtime-Bibliothek zur Unterstützung der Verwendung von Konstruktoren/Destruktoren und der Registrierung von Ausnahmebehandlern.
Auf Basis von Bareflank wird ein Virtualisierungssystem entwickelt , das den Betrieb von Gastbetriebssystemen unterstützt und die Nutzung von leichtgewichtigen virtuellen Maschinen mit Linux und Unikernel für den Betrieb spezialisierter Dienste oder Anwendungen ermöglicht. In Form isolierter Dienste können sowohl gewöhnliche Webdienste als auch Anwendungen, die besondere Anforderungen an Zuverlässigkeit und Sicherheit stellen und vom Host-Umfeld isoliert sind (Host-Umgebung wird in einer separaten virtuellen Maschine isoliert), betrieben werden.
Die wichtigsten Neuerungen in Bareflank 2.0:
- Unterstützung des direkten Starts von Bareflank aus UEFI hinzugefügt, um anschließend das Betriebssystem in einer virtuellen Maschine auszuführen;
- Ein neuer Speicherverwaltungsmanager wurde implementiert, der nach dem Vorbild der SLAB/Buddy-Speicherverwaltung in Linux entworfen wurde. Der neue Speicherverwaltungsmanager zeigt eine Verringerung der Fragmentierung, ermöglicht eine höhere Leistung und unterstützt die dynamische Zuweisung von Speicher an den Hypervisor über , was die anfängliche Größe des Hypervisors reduziert und eine optimale Skalierung je nach Anzahl der CPU-Kerne ermöglicht;
- Ein neues Build-System basierend auf CMake, unabhängig vom Kommandozeileninterpreter, das eine erheblich beschleunigte Kompilierung des Hypervisors ermöglicht und die zukünftige Unterstützung weiterer Architekturen wie ARM vereinfacht;
- Der Code wurde reorganisiert und die Struktur des Quellcodes vereinfacht. Die Unterstützung benachbarter Projekte wie hyperkernel wurde verbessert, ohne dass eine Code-Duplikation erforderlich ist. Der Code wurde deutlicher getrennt , der unwind-Bibliothek, Runtime, Steuerwerkzeugen, Bootloader und SDK;
- Ein Großteil der API wurde von den zuvor verwendeten Verer mech anismen in C++ auf die Anwendung von , um die API zu vereinfachen, die Leistung zu steigern und den Ressourcenverbrauch zu reduzieren.
Quelle: opennet.ru
