Lancement de l'hyperviseur , fournissant 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 permet d'étendre facilement les capacités existantes de l'hyperviseur et de créer des versions personnalisées d'hyperviseurs, qui peuvent fonctionner directement sur le matériel (comme Xen) ou être exécutées dans un environnement logiciel existant (comme VirtualBox). Il est possible d'exécuter le système d'exploitation d'hébergement dans une machine virtuelle séparée. Le code du projet est sous licence LGPL 2.1.
Bareflank prend en charge Linux, Windows et UEFI sur des CPU Intel 64 bits. La technologie Intel VT-x est utilisée pour la séparation matérielle des ressources des machines virtuelles. Un support futur pour macOS et les systèmes BSD est prévu, ainsi que la possibilité de fonctionner sur des plateformes ARM64 et AMD. En outre, le projet développe son propre pilote pour charger le VMM (Virtual Machine Manager), un chargeur ELF pour le chargement des modules VVM, ainsi que l'application bfm pour gérer l'hyperviseur à partir de l'espace utilisateur. Des outils pour écrire des extensions en utilisant des éléments définis dans les spécifications C++11/14, une bibliothèque de gestion des exceptions (unwind), ainsi qu'une bibliothèque d'exécution propre pour prendre en charge l'utilisation des constructeurs/destructeurs et l'enregistrement des gestionnaires d'exceptions sont fournis.
Le développement d'un système de virtualisation basé sur Bareflank , soutenant l'exécution de systèmes invités et permettant l'utilisation de machines virtuelles légères avec Linux et Unikernel pour lancer des services ou applications spécialisés. Sous forme de services isolés, on peut exécuter à la fois des services web ordinaires et des applications ayant des exigences particulières en matière de fiabilité et de sécurité, exemptées de l'influence de l'environnement d'hébergement (l'environnement d'hébergement est isolé dans une machine virtuelle séparée).
Les principales nouveautés de Bareflank 2.0 :
- Ajout du support pour exécuter Bareflank directement depuis UEFI pour l'exécution ultérieure du système d'exploitation dans une machine virtuelle ;
- Un nouveau gestionnaire de mémoire a été réalisé, conçu sur le modèle des gestionnaires de mémoire SLAB/Buddy sous Linux. Ce nouveau gestionnaire de mémoire montre une réduction de la fragmentation, permet d'obtenir une performance plus élevée et supporte l'allocation dynamique de mémoire par l'hyperviseur via , ce qui permet de réduire la taille initiale de l'hyperviseur et de s'adapter 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, permettant d'accélérer considérablement la compilation de l'hyperviseur et facilitant le support futur d'architectures supplémentaires, telles que ARM ;
- La réorganisation du code a été effectuée et la structure des sources a été simplifiée. Amélioration du support pour les projets connexes, comme hyperkernel, sans avoir besoin de dupliquer le code. Le code est désormais plus clairement séparé , des bibliothèques unwind, du runtime, des outils de gestion, du chargeur et du SDK ;
- La majorité de l'API, au lieu des mécanismes d'héritage précédemment utilisés en C++, a été traduite en utilisant , ce qui a permis de simplifier l'API, d'augmenter les performances et de réduire la consommation de ressources.
Source : opennet.ru
