Tvrtka Microsoft predstavila je projekt Hyperlight, koji razvija hipervizor namijenjen integraciji u aplikacije s ciljem izoliranog izvođenja nepouzdanog koda ili onog koji zahtijeva posebnu zaštitu. Hipervizor je oblikovan kao dijeljena biblioteka koja omogućuje izvršavanje pojedinačnih funkcija unutar laganih virtualnih mašina (micro-VM) i organizira razmjenu podataka s tim funkcijama. Kod projekta napisan je na jeziku Rust i distribuira se pod licencom Apache 2.0.
U usporedbi s pokretanjem tradicionalnih virtualnih mašina Hyperlight omogućuje postizanje niskih kašnjenja i minimalnih prekomjernih troškova. U Hyperlightu, kašnjenja prilikom kreiranja virtualnih mašina iznose 1-2 milisekunde, što omogućuje primjenu izolacije na razini izvođenja funkcija. Za usporedbu, pokretanje obične virtualne mašine zahtijeva najmanje 120 milisekundi, dok pokretanje izoliranog sandbox okruženja za izvršavanje WebAssembly koda pomoću Wasmtime runtime traje 0,03 milisekunde.
Za izolaciju na platformi Linux podržava se korištenje hipervizora KVM i mshv (Microsoft Hypervisor na Azure Linux), dok se na platformi Windows koristi WHP (Windows Hypervisor Platform) i WSL2 (Windows Subsystem for Linux 2) s KVM-om. Platforma macOS trenutno nije podržana. Odvojene jezgre i operativni sustav u virtualnoj mašini se ne koriste. Infrastruktura virtualne mašine formira se kao samodostatni pokretni program, koji uključuje kod izvođene funkcije u omotu runtime-a i specijalizirane minimalne jezgre. U virtualnoj mašini koristi se jednolični linearni fragment memorije i dodjeljuje se virtualni CPU, bez mapiranja uređaja i bez dijeljenja na procese.
Proces razvoja temelji se na povezivanju glavnog koda aplikacije s bibliotekom Hyperlight Host, koja koordinira pokretanje virtualnih mašina, te koda koji se izvodi u izoliranom režimu funkcija (gostujuće funkcije) s bibliotekom Hyperlight Guest, koja pruža API za interakciju s vanjskim dijelom aplikacije i mogućnosti za izolirano izvršavanje koda bez operativnog sustava.

Slo Layer za interakciju između host aplikacije i izoliranih funkcija omogućava ne samo pozivanje izoliranih funkcija iz host aplikacija, već i obrnuto, pozivanje funkcija host aplikacija iz izoliranih funkcija. Popis vanjskih funkcija koje su dopuštene za pozivanje iz izoliranih funkcija strogo je reguliran. Po defaultu, pristup iz izoliranih funkcija ograničen je na minimalni API koji omogućava slanje poruka host aplikaciji.
U budućnosti Microsoft planira prenijeti projekt neprofitnoj organizaciji Cloud Native Computing Foundation (CNCF) za zajednički razvoj na neutralnoj platformi, neovisnoj o pojedinim proizvođačima. Organizacija CNCF djeluje pod okriljem Linux Foundation i nadzire razvoj projekata poput Kubernetes, etcd, Cilium, Containerd, cri-o, Flux, Helm, Istio i gRPC.
Izvor: opennet.ru
