Version de l'hyperviseur Bareflank 3.0

L'hyperviseur Bareflank 3.0 a été lancé, 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 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. Le code du projet est distribué sous la licence LGPL 2.1.

Bareflank prend en charge Linux, Windows et UEFI sur les processeurs Intel et AMD 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 dans le futur, ainsi que la possibilité de travailler sur la plateforme ARM64. 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.

Basé sur Bareflank, le système de virtualisation Boxy est en cours de développement, 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). Bareflank est également la base de l'hyperviseur MicroV, conçu pour exécuter des machines virtuelles minimalistes (machine virtuelle à application unique), implémente l'API KVM et convient à la création de systèmes critiques.

Les principales innovations de Bareflank 3.0 :

  • Transition vers l'utilisation du concept de micro-noyau. Auparavant, l'hyperviseur avait une architecture monolithique dans laquelle, pour étendre les fonctionnalités, il était nécessaire d'utiliser une API spéciale pour enregistrer les appels de rappel, ce qui rendait difficile le développement d'extensions en raison de la liaison au langage C++ et à la structure interne. La nouvelle architecture basée sur un micro-noyau implique de diviser l'hyperviseur en composants du noyau s'exécutant sur l'anneau zéro de protection et en extensions s'exécutant sur l'anneau trois (espace utilisateur). Les deux parties s'exécutent en mode racine VMX et tout le reste, y compris l'environnement hôte, s'exécute en mode non root VMX. Les extensions de l'espace utilisateur implémentent la fonctionnalité Virtual Machine Manager (VMM) et interagissent avec le cœur de l'hyperviseur via des appels système rétrocompatibles. Les extensions peuvent être créées dans n'importe quel langage de programmation, y compris Rust.
  • Une transition a été effectuée vers l'utilisation de notre propre bibliothèque BSL avec prise en charge de Rust et C++, qui a remplacé les bibliothèques externes libc++ et newlib. En éliminant les dépendances externes, Bareflank fournit une prise en charge native de la compilation Windows pour simplifier le développement sur cette plate-forme.
  • Ajout de la prise en charge des processeurs AMD. De plus, le développement de Bareflank est désormais effectué sur un système doté d'un processeur AMD et ensuite seulement porté sur un processeur Intel.
  • Le bootloader a ajouté le support de l'architecture ARMv8, dont l'adaptation de l'hyperviseur sera achevée dans l'une des prochaines versions.
  • Assurer le respect des exigences de développement des systèmes critiques formulées par les organisations AUTOSAR et MISRA.

Source: opennet.ru

Ajouter un commentaire