ZeroVM
Originalförfattare | Camuel Gilyadov, Constantine Peresypkin & Dmitri Bortok |
---|---|
Utvecklare | LiteStack som förvärvades av Rackspace |
Stabil frisättning | |
Förvar | |
Skrivet i | C , montering |
Operativ system | Linux |
Plattform | x86-64 |
Typ | Applikationsvirtualisering |
Licens | Apache-licens 2.0 |
Hemsida |
ZeroVM är en lättviktsvirtualiserings- och sandlådeteknik med öppen källkod . Den virtualiserar en enda process med hjälp av Google Native Client -plattformen. Eftersom endast en enda process virtualiseras (istället för ett helt operativsystem) är startoverheaden i storleksordningen 5 ms. [ källa från tredje part behövs ]
Sandboxning
ZeroVM skapar en sandlåda runt en enda process, med hjälp av teknik baserad på Google Native Client (NaCl). Sandlådan säkerställer att applikationen som körs inte kan komma åt data i värdoperativsystemet, så det är säkert att köra otillförlitlig kod. Programmen som körs i ZeroVM måste först korskompileras till NaCl-plattformen. ZeroVM kan endast exekvera NaCl-kod som är kompilerad för x86-64 -plattformen, inte det portabla Native Client- formatet (PNaCl).
Kod som körs i ZeroVM kan inte anropa normala systemanrop och kan initialt inte interagera med värdmiljön. All kommunikation med omvärlden sker över kanaler som måste deklareras innan programmet startar. Utanför sandlådan kan en kanal kopplas till en lokal fil, till en pipe eller till en annan ZeroVM-instans. Inuti sandlådan ser programmet kanalen som en filbeskrivning . Sandlådeprogrammet kan läsa/skriva data från/till kanalen, men vet inte var kanalen är ansluten i värden.
Program kompilerade för ZeroVM kan valfritt använda ZeroVM Runtime-biblioteket som heter ZRT. Detta bibliotek syftar till att förse programmet med en POSIX- miljö. Den gör detta genom att ersätta delar av C-standardbiblioteket . I synnerhet ersätter ZRT C-filinmatnings-/utdatafunktioner som fopen
och opendir
med versioner som fungerar på ett filsystem i minnet. Rotfilsystemet tillhandahålls som en tarball. Detta gör att ett program kan "se" en normal Unix-miljö.
ZRT ersätter även C datum- och tidsfunktioner såsom tid
för att ge program en fast och deterministisk miljö. Med fasta ingångar garanteras att varje exekvering ger samma resultat. Även icke- funktionella program blir deterministiska i denna begränsade miljö. Detta gör program lättare att felsöka eftersom deras beteende är fixat.
Integration med Swift
ZeroVM har integrerats med Swift , den distribuerade objektlagringskomponenten i OpenStack . När ZeroCloud-mellanvaran är installerad i Swift kan en klient göra en begäran till Swift som innehåller ett ZeroVM-program. Programmet exekveras sedan direkt på lagringsnoderna. Detta innebär att programmet har direktåtkomst till data.
Historia
ZeroVM utvecklades av LiteStack, en israelisk startup. Den första commiten i zerovm
Git- förvaret lades till i november 2011. LiteStack köptes av Rackspace i oktober 2013. ZeroVM deltog i Techstars Cloud 2013-inkubatorprogrammet och fick $500 000 i startfinansiering. Det första ZeroVM Design Summit hölls i januari 2014 vid University of Texas i San Antonio .
Se även
- Google Native Client
- LXC (LinuX-behållare)
- secomp
- Docker (mjukvara)