Version de l'hyperviseur Bareflank 2.0

A eu lieu version de l'hyperviseur Flanc nu 2.0, qui fournit des outils pour le développement rapide d'hyperviseurs spécialisés. Bareflank est écrit en C++ et prend en charge C++ STL. L'architecture modulaire de Bareflank vous permettra d'étendre facilement les capacités existantes de l'hyperviseur et de créer vos propres versions d'hyperviseurs, à la fois fonctionnant sur du matériel (comme Xen) et fonctionnant dans un environnement logiciel existant (comme VirtualBox). Il est possible d'exécuter le système d'exploitation de l'environnement hôte dans une machine virtuelle distincte. Code de projet distribué par sous licence LGPL 2.1.

Bareflank prend en charge Linux, Windows et UEFI sur les processeurs Intel 64 bits. La technologie Intel VT-x est utilisée pour le partage matériel des ressources des machines virtuelles. La prise en charge des systèmes macOS et BSD est prévue pour le futur, ainsi que la possibilité de travailler sur les plateformes ARM64 et AMD. De plus, le projet développe son propre pilote pour charger VMM (Virtual Machine Manager), un chargeur ELF pour charger les modules VVM et une application bfm pour contrôler l'hyperviseur depuis l'espace utilisateur. Il fournit des outils pour écrire des extensions utilisant des éléments définis dans les spécifications C++11/14, une bibliothèque pour dérouler la pile d'exceptions (unwind), ainsi que sa propre bibliothèque d'exécution pour prendre en charge l'utilisation de constructeurs/destructeurs et l'enregistrement de gestionnaires d'exceptions.

Un système de virtualisation est en cours de développement basé sur Bareflank Boxy, qui prend en charge l'exécution de systèmes invités et permet l'utilisation de machines virtuelles légères avec Linux et Unikernel pour exécuter des services ou des applications spécialisés. Sous la forme de services isolés, vous pouvez exécuter à la fois des services Web classiques et des applications ayant des exigences particulières en matière de fiabilité et de sécurité, sans l'influence de l'environnement hôte (l'environnement hôte est isolé dans une machine virtuelle distincte).

Les principales innovations de Bareflank 2.0 :

  • Ajout de la prise en charge du lancement de Bareflank directement depuis l'UEFI pour l'exécution ultérieure du système d'exploitation dans une machine virtuelle ;
  • Un nouveau gestionnaire de mémoire a été implémenté, conçu de manière similaire aux gestionnaires de mémoire SLAB/Buddy sous Linux. Le nouveau gestionnaire de mémoire démontre une fragmentation réduite, permet des performances supérieures et prend en charge l'allocation dynamique de mémoire à l'hyperviseur via pilote bf, qui permet de réduire la taille initiale de l'hyperviseur et d'évoluer de manière optimale en fonction du nombre de cœurs CPU ;
  • Un nouveau système de construction basé sur CMake, indépendant de l'interpréteur de commandes, permet une accélération significative de la compilation de l'hyperviseur et simplifie la prise en charge future d'architectures supplémentaires, telles que ARM ;
  • Le code a été réorganisé et la structure des textes sources a été simplifiée. Prise en charge améliorée des projets associés tels que l'hypernoyau sans avoir besoin de duplication de code. Code plus explicitement séparé hyperviseur, déroulez la bibliothèque, le runtime, les outils de contrôle, le chargeur de démarrage et le SDK ;
  • La plupart des API, au lieu des mécanismes d'héritage précédemment utilisés en C++, ont été basculées vers l'utilisation de délégation, qui a simplifié l'API, augmenté les performances et réduit la consommation de ressources.

Source: opennet.ru

Ajouter un commentaire