Bareflank, une boîte à outils pour le développement rapide d'hyperviseurs spécialisés

Flanc nu Il est écrit en C++ et est compatible avec C++ STL. L'architecture modulaire de Bareflank vous permet d'étendre facilement les capacités existantes de l'hyperviseur et de créer vos propres versions d'hyperviseur, à la fois fonctionnant sur du matériel (comme Xen) et dans un environnement logiciel existant (comme VirtualBox). Vous pouvez 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.

À propos de Bareflank

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 de la machine virtuelle. À l'avenir, la compatibilité avec les systèmes macOS et BSD, ainsi que la possibilité de travailler sur la plate-forme ARM64, sont envisagées.

En outre, le projet développe son propre contrôleur pour charger VMM (Gestionnaire de machines virtuelles), un chargeur ELF pour charger les modules VVM et une application bfm pour gérer l'hyperviseur depuis l'espace utilisateur.

Basé sur Bareflank, le Boxy est en cours de développement d'un système de virtualisation, qui prend en charge le lancement de systèmes invités y permet l'utilisation de machines virtuelles légères avec Linux et Unikernel pour lancer des services ou des applications spécialisés.

Sous forme de services isolés, peut exécuter des services Web ordinaires et des applications qui ont des exigences de fiabilité particulières et la sécurité, sans l'influence de l'environnement hôte (l'environnement hôte est isolé dans une machine virtuelle distincte). Bareflank est également au cœur de l'hyperviseur MicroV, conçu pour exécuter des machines virtuelles minimalistes (machine virtuelle à application unique), implémentant l'API KVM et adapté à la création de systèmes critiques.

Une boîte à outils pour écrire des extensions est fournie pour votre usage. utilisant des éléments définis dans les spécifications C ++ 11/14, une bibliothèque pour dérouler la pile d'exceptions (dérouler), ainsi que sa propre bibliothèque d'exécution pour prendre en charge l'utilisation de constructeurs/destructeurs et d'exceptions de gestionnaire de journaux.

Quant à la principales innovations de la nouvelle version de Bareflank 3.0 les suivants se démarquent:

  • Transition vers le concept de micronoyau. Auparavant, l'hyperviseur avait une architecture monolithique, où pour étendre les fonctionnalités, il devait utiliser une API spéciale pour enregistrer les appels de rappel, ce qui rendait le développement d'extensions difficile en raison de la liaison au langage C ++ et à l'appareil interne.
  • La nouvelle architecture du micronoyau sépare l'hyperviseur en composants du noyau qui s'exécutent sur l'anneau zéro et les extensions qui s'exécutent sur le troisième anneau (espace utilisateur). Les deux parties s'exécutent en mode racine VMX et tout le reste, y compris l'environnement hôte, en mode VMX non racine.
  • Les extensions de l'espace utilisateur implémentent la fonctionnalité Virtual Machine Manager (VMM) et interagissent avec le noyau 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 en utilisant le langage Rust, pour lequel des exemples d'extensions prêts à l'emploi sont fournis.
  • Il est passé à l'utilisation de sa propre bibliothèque BSL avec prise en charge de Rust et C ++, remplaçant les bibliothèques externes libc ++ et newlib. La suppression des dépendances externes a permis à Bareflank d'implémenter la prise en charge native des builds sur Windows pour simplifier le développement sur cette plate-forme.
  • Bareflank est désormais compatible avec AMD. De plus, le développement de Bareflank a désormais lieu sur un système doté d'un processeur AMD et ce n'est qu'alors qu'il passe à un processeur Intel, garantissant que le développement pour AMD est pris au sérieux.
  • Le chargeur a ajouté la prise en charge de l'architecture ARMv8, dont l'adaptation de l'hyperviseur sera achevée dans une future version.
    Conformité aux exigences de conception de systèmes critiques d'AUTOSAR et de MISRA.

Enfin si vous souhaitez en savoir plus, vous pouvez consulter les détails dans le lien suivant.


Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.