Microsoft har præsenteret projektet Hyperlight, som udvikler en hypervisor designet til at blive integreret i applikationer med det formål at isolere udførelsen af kode, der ikke er pålidelig eller kræver særlig beskyttelse. Hypervisoren er udformet som et delt bibliotek, der muliggør udførelse af specifikke funktioner i letvægts virtuelle maskiner (micro-VM) og organiserer datadeling med disse funktioner. Projektkoden er skrevet i Rust og distribueres under Apache 2.0-licensen.
Sammenlignet med lanceringen af traditionelle virtual machines Hyperlight muliggør lave forsinkelser og minimale omkostninger. I Hyperlight er forsinkelserne ved oprettelse af virtuelle maskiner 1-2 millisekunder, hvilket gør det muligt at anvende isolation på funktionsstartniveau. Til sammenligning tager opstart af en almindelig virtuel maskine mindst 120 millisekunder, mens opstart af et isoleret sandbox-miljø til udførelse af WebAssembly-kode ved hjælp af Wasmtime runtime tager 0,03 millisekunder.
Til isolation på Linux-platformen understøttes brugen af hypervisorer KVM og mshv (Microsoft Hypervisor i Azure Linux), mens der på Windows-platformen understøttes WHP (Windows Hypervisor Platform) og WSL2 (Windows Subsystem for Linux 2) med KVM. macOS-platformen understøttes endnu ikke. Et separat kerne og operativsystem i virtuelle maskiner bliver ikke brugt. Indholdet til den virtuelle maskine dannes i form af et selvforsynende boot-program, der inklusiverer koden til den udførte funktion i en indpakning fra runtime og et specialiseret minimums-kernel. I den virtuelle maskine bruges et enkelt lineært hukommelsesfragment, og der tildeles en virtuel CPU, uden enhedskortlægning og uden procesopdeling.
Udviklingsprocessen er baseret på sammenkoblingen af applikationens grundlæggende kode med Hyperlight Host-biblioteket, der koordinerer opstarten af virtuelle maskiner, og koden til de udførte funktioner i isoleret tilstand (gæstefunktioner) med Hyperlight Guest-biblioteket, der tilbyder API til interaktion med applikationens ydre del og muligheder for adskilt udførelse af kode uden operativsystemmiljø.

Det leverede lag til interaktion mellem værtapplikationen og de isolerede funktioner muliggør ikke kun at kalde isolerede funktioner fra værtapplikationer, men også at få adgang til funktioner fra værtapplikationer fra de isolerede funktioner. Listen over eksterne funktioner, der er tilladt at kalde fra de isolerede funktioner, er strengt reguleret. Som standard er adgangen fra de isolerede funktioner begrænset til et minimalt API, der muliggør at sende meddelelser til værtapplikationen.
I fremtiden planlægger Microsoft at overføre projektet til den non-profit organisation Cloud Native Computing Foundation (CNCF) for fælles udvikling på en neutral platform, der ikke er afhængig af enkelte producenter. Organisationen CNCF opererer under Linux Foundation og overvåger udviklingen af projekter såsom Kubernetes, etcd, Cilium, Containerd, cri-o, Flux, Helm, Istio og gRPC.
Kilde: opennet.ru
