Publication de MirageOS 4.0, une plateforme pour exécuter des applications au-dessus d'un hyperviseur.

Après un an et demi de développement, la version 4.0 du projet MirageOS a été publiée, permettant de créer des systèmes d'exploitation à une seule application, dans lesquels l'application est fournie en tant qu'« unikernel » autonome, capable de fonctionner sans recourir à des systèmes d'exploitation, à un noyau OS distinct et à des couches intermédiaires. Pour le développement d'applications, le langage OCaml est utilisé. Le code du projet est distribué sous une licence libre ISC.

Toute la fonctionnalité de bas niveau propre au système d'exploitation est réalisée sous la forme d'une bibliothèque intégrée à l'application. L'application peut être développée sur n'importe quel système d'exploitation, puis compilée en un noyau spécialisé (concept d'unikernel), qui peut être exécuté directement sur des hyperviseurs comme Xen, KVM, BHyve et VMM (OpenBSD), sur des plateformes mobiles, sous la forme d'un processus dans un environnement compatible POSIX, ou dans des environnements cloud comme Amazon Elastic Compute Cloud et Google Compute Engine.

L'environnement généré ne contient rien de superflu et interagit directement avec l'hyperviseur sans pilotes ni couches système, ce qui permet une réduction significative des frais généraux et une augmentation de la sécurité. Le travail avec MirageOS se compose de trois étapes : préparation de la configuration en définissant les paquets OPAM utilisés dans l'environnement, construction de l'environnement et exécution de l'environnement. Le runtime pour assurer le fonctionnement sur des hyperviseurs est basé sur le noyau Solo5.

Bien que les applications et les bibliothèques soient formées dans un langage de haut niveau OCaml, les environnements finaux montrent des performances assez correctes et une taille minimale (par exemple, un serveur DNS ne pèse que 200 Ko). L'entretien des environnements est également simplifié, car en cas de mise à jour du programme ou de modification de la configuration, il suffit de créer et de lancer un nouvel environnement. Plusieurs centaines de bibliothèques en OCaml sont prises en charge pour exécuter des opérations réseau (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN, etc.), travailler avec des stockages et assurer le traitement parallèle des données.

Améliorations clés :

  • Le processus de compilation des projets et des unikernels a été modifié. Au lieu du système de construction ocamlbuild précédemment utilisé, l'outil dune et les dépôts locaux (monorepo) sont désormais intégrés. Une nouvelle utilitaire, opam-monorepo, a été ajoutée pour faciliter la création de tels dépôts, permettant de séparer la gestion des paquets de la construction à partir des fichiers sources. L'utilitaire opam-monorepo exécute des tâches telles que la création de fichiers de verrouillage pour les dépendances liées au projet, le téléchargement et l'extraction du code des dépendances, et la configuration de l'environnement pour l'utilisation du système de construction dune. La construction elle-même est réalisée à l'aide de l'outil dune.
  • Un processus de construction reproductible a été mis à disposition. L'utilisation de fichiers de verrouillage assure un lien avec les versions des dépendances et permet de reproduire entièrement le processus de construction avec le même code à tout moment.
  • Un nouveau processus de cross-compilation a été mis en œuvre, fournissant la possibilité de cross-compiler pour toutes les plateformes cibles prises en charge à partir d'un environnement de construction commun, y compris la cross-compilation des dépendances et des bibliothèques avec des liaisons en C, sans avoir besoin d'ajouter ces liaisons dans le paquet principal. La cross-compilation est organisée à l'aide des espaces de travail fournis par le système de construction dune.
  • Le support de nouvelles plateformes cibles a été ajouté, notamment la possibilité expérimentale de construire des applications autonomes pour fonctionner sur des cartes Raspberry Pi 4.
  • Des travaux ont été réalisés pour intégrer des parties de MirageOS dans les écosystèmes liés à la programmation en OCaml, afin de simplifier la construction d'applications sous forme d'unikernel. De nombreux paquets MirageOS ont été portés pour le système de construction dune. L'utilitaire opam-monorepo est disponible pour installation via le gestionnaire de paquets opam et peut être utilisé dans des projets utilisant le système de construction dune. Pour accompagner les correctifs résolvant les problèmes de construction des dépendances dans dune, deux dépôts dune-universe/opam-overlays et dune-universe/mirage-opam-overlays ont été créés et sont inclus par défaut lors de l'utilisation de l'utilitaire CLI mirage.
  • L'intégration de MirageOS avec les bibliothèques en C et Rust a été simplifiée.
  • Un nouvel environnement d'exécution OCaml a été proposé, permettant de se passer de libc (sans libc).
  • La possibilité d'utiliser le service Merlin pour l'intégration avec les environnements de développement intégrés typiques a été fournie.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster