À propos du projet
Hyperlight est un gestionnaire de machines virtuelles (VMM) léger conçu pour être intégré comme bibliothèque dans des applications, leur permettant d'exécuter du code non fiable dans des micro-machines virtuelles isolées par hyperviseur. C'est un projet sandbox de la Cloud Native Computing Foundation et il est actuellement en version pré-1.0, donc l'API peut changer entre les versions.
Comment cela fonctionne : l'application hôte construit un sandbox à partir d'un binaire invité et appelle des fonctions à travers la frontière VM comme s'il s'agissait de fonctions locales. Les invités sont des binaires ELF spécialisés écrits en Rust no_std ou en C, sans noyau invité ni système d'exploitation, ce qui maintient un temps de démarrage et une empreinte mémoire faibles. L'hôte et l'invité communiquent via des appels de fonctions typés, et les invités sont sandboxés par défaut sans accès au système de fichiers ou au réseau de l'hôte. L'état de l'invité persiste entre les appels, et snapshot()/restore() peuvent sauvegarder et réinitialiser la mémoire de la VM afin que les sandbox puissent être réutilisés sans recréer la VM.
Les hyperviseurs pris en charge incluent KVM, MSHV et Windows Hypervisor Platform. Le README montre un exemple d'hôte qui enregistre une fonction hôte et appelle dans l'invité, et un exemple d'invité utilisant des macros telles que #[host_function] et #[guest_function].
Les cas d'utilisation déclarés incluent l'exécution de code non fiable ou tiers avec isolation au niveau hyperviseur, la création et la destruction de sandbox en millisecondes, les appels de fonctions invitées en microsecondes, l'intégration d'exécution sandboxée dans une application, la construction de fonctions-en-tant-que-service avec isolation hyperviseur, et la réutilisation de sandbox via snapshot et restore. Le projet précise explicitement qu'il n'est pas destiné à la virtualisation à usage général ni à l'exécution de charges de travail Linux complètes nécessitant des appels système, un réseau ou un accès au système de fichiers.
Le dépôt est organisé en bibliothèques hôte et invité, un wrapper d'API C, une libc invitée construite à partir de picolibc, des macros invitées et composants, un support de traçage, du code commun partagé, des définitions de schéma FlatBuffer, un outil de dump de trace, et des programmes invités de test en Rust et C. Les projets connexes incluent cargo-hyperlight pour construire et échafauder des invités, hyperlight-wasm pour les modules WebAssembly, hyperlight-js pour JavaScript, hyperlight-sandbox pour le sandboxing multi-backend avec SDK Python, .NET et Rust, et hyperlight-unikraft pour exécuter des applications Linux en utilisant Unikraft comme noyau invité. La documentation, les directives de contribution et les détails des réunions communautaires sont fournis dans le dépôt.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.