La sociĂ©tĂ© Microsoft a prĂ©sentĂ© le projet Hyperlight, qui dĂ©veloppe un hyperviseur destinĂ© Ă ĂȘtre intĂ©grĂ© dans des applications pour l'exĂ©cution isolĂ©e de code non fiable ou nĂ©cessitant une protection particuliĂšre. L'hyperviseur est conçu sous la forme d'une bibliothĂšque partagĂ©e, offrant l'exĂ©cution de fonctions individuelles dans des micro-machines virtuelles et organisant l'Ă©change de donnĂ©es avec ces fonctions. Le code du projet est Ă©crit en Rust et est distribuĂ© sous la licence Apache 2.0.
Comparé au déploiement de solutions traditionnelles, machines virtuelles Hyperlight permet d'atteindre des latences faibles et des frais généraux minimaux. Avec Hyperlight, les latences de création de machines virtuelles sont de 1 à 2 millisecondes, ce qui permet une isolation au niveau du démarrage des fonctions. En comparaison, le démarrage d'une machine virtuelle classique prend au moins 120 millisecondes, tandis que le démarrage d'un environnement sandbox isolé pour l'exécution de code WebAssembly à l'aide de Wasmtime runtime prend 0,03 millisecondes.
Pour l'isolation sur la plateforme Linux, l'utilisation des hyperviseurs KVM et mshv (Microsoft Hypervisor sur Azure Linux) est prise en charge, tandis que sur Windows, WHP (Windows Hypervisor Platform) et WSL2 (Windows Subsystem for Linux 2) avec KVM sont utilisés. La plateforme macOS n'est pas encore prise en charge. Un noyau distinct et un systÚme d'exploitation ne sont pas utilisés dans une machine virtuelle la machine virtuelle. La configuration de la machine virtuelle prend la forme d'un programme autonome et exécutable, comprenant le code de la fonction exécutée encapsulé dans un runtime et un noyau minimal spécialisé. Dans la machine virtuelle, un seul fragment de mémoire linéaire est utilisé et un CPU virtuel est attribué, sans mappage des périphériques et sans séparation en processus.
Le processus de développement repose sur la liaison du code principal de l'application à la bibliothÚque Hyperlight Host, qui coordonne le démarrage des machines virtuelles, et le code des fonctions exécutées en mode isolé (fonctions invitée) à la bibliothÚque Hyperlight Guest, qui fournit une API pour interagir avec la partie externe de l'application et offre des possibilités d'exécution isolée de code sans environnement systÚme d'exploitation.

La couche fournie pour l'interaction entre l'application hĂŽte et les fonctions isolĂ©es permet non seulement d'appeler des fonctions isolĂ©es depuis des applications hĂŽtes, mais aussi, inversement, d'accĂ©der aux fonctions des applications hĂŽtes depuis des fonctions isolĂ©es. La liste des fonctions externes autorisĂ©es Ă ĂȘtre appelĂ©es depuis des fonctions isolĂ©es est strictement rĂ©glementĂ©e. Par dĂ©faut, l'accĂšs depuis les fonctions isolĂ©es est limitĂ© Ă une API minimale, permettant d'envoyer des messages Ă l'application hĂŽte.
à l'avenir, Microsoft prévoit de transférer le projet à l'organisation à but non lucratif Cloud Native Computing Foundation (CNCF) pour un développement collaboratif sur une plateforme neutre, indépendante des fabricants individuels. L'organisation CNCF opÚre sous l'égide de la Linux Foundation et supervise le développement de projets tels que Kubernetes, etcd, Cilium, Containerd, cri-o, Flux, Helm, Istio et gRPC.
Source : opennet.ru
