Version des Hypervisors , der Werkzeuge für die schnelle Entwicklung spezialisierter Hypervisoren bietet. Bareflank ist in C++ geschrieben und unterstützt C++ STL. Die modulare Architektur von Bareflank ermöglicht es, die bestehenden Funktionen des Hypervisors einfach zu erweitern und eigene Hypervisor-Versionen zu erstellen, die sowohl auf der Hardware (ähnlich wie Xen) als auch in einer vorhandenen Softwareumgebung (wie VirtualBox) laufen. 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 Intel CPUs. Zur hardwareseitigen Trennung der Ressourcen virtueller Maschinen wird die Intel VT-x Technologie verwendet. Zukünftig sind Unterstützung für macOS und BSD-Systeme sowie die Möglichkeit der Nutzung auf ARM64- und AMD-Plattformen geplant. Darüber hinaus wird ein eigener Treiber für das Laden des VMM (Virtual Machine Manager), ein ELF-Loader für das Laden von VVM-Modulen und die Anwendung bfm zur Verwaltung des Hypervisors aus dem Benutzerdatenraum entwickelt. Es wird ein Werkzeug zur Erstellung von Erweiterungen mit Elementen angeboten, die in den Spezifikationen C++11/14 definiert sind, eine Bibliothek zur Ausnahmebehandlung (unwind) und eine eigene Runtime-Bibliothek für die Unterstützung von Konstruktoren/Dekonstruktoren sowie die Registrierung von Ausnahmebehandlern bereitgestellt.
Auf Basis von Bareflank wird ein Virtualisierungssystem entwickelt. , die den Start von Gastbetriebssystemen unterstützt und die Verwendung schlanker virtueller Maschinen mit Linux und Unikernel für den Betrieb spezialisierter Dienste oder Anwendungen ermöglicht. In Form isolierter Dienste können sowohl herkömmliche Webdienste als auch Anwendungen ausgeführt werden, die besondere Anforderungen an Verlässlichkeit und Sicherheit stellen, da sie vom Einfluss der Host-Umgebung befreit sind (die Host-Umgebung wird in einer separaten virtuellen Maschine isoliert).
Hauptneuerungen von Bareflank 2.0:
- Unterstützung des direkten Starts von Bareflank aus UEFI hinzugefügt, um ein Betriebssystem in einer virtuellen Maschine auszuführen;
- Ein neuer Speicherverwaltungsmanager wurde implementiert, der nach dem Vorbild der SLAB/Buddy-Speicherverwaltungsstrategien in Linux entworfen wurde. Der neue Speicherverwaltungsmanager zeigt eine verringerte Fragmentierung, ermöglicht höhere Leistung und unterstützt die dynamische Speicherzuweisung für den Hypervisor über , was eine Reduzierung der initialen Größe des Hypervisors ermöglicht und eine optimale Skalierung je nach Anzahl der CPU-Kerne unterstützt;
- Ein neues CMake-basiertes Build-System, das unabhängig vom Kommandozeileninterpreter ist. Dies ermöglicht eine erhebliche Beschleunigung der Kompilierung des Hypervisors und vereinfacht in Zukunft die Unterstützung zusätzlicher Architekturen wie ARM.
- Der Code wurde reorganisiert und die Struktur der Quelltexte vereinfacht. Die Unterstützung benachbarter Projekte wie hyperkernel wurde verbessert, ohne dass Code dupliziert werden musste. Der Code wurde klarer getrennt. , Unwind-Bibliothek, Runtime, Management-Tools, Bootloader und SDK;
- Ein großer Teil der APIs wurde anstelle der zuvor verwendeten Vererbungsmethoden in C++ auf umgestellt, was die API vereinfacht, die Leistung verbessert und den Ressourcenverbrauch reduziert hat.
Quelle: opennet.ru
