−25%

på Windows vid årsbetalning, till 31/10. Till paketen

EQVPS
Kom igång

Firecracker-microVM:er på ren svenska: en riktig VM som startar på en bråkdel av en sekund

10 okt. 2026 · 5 min läsning · EQVPS Team

Om du har läst något om att köra AI-genererad kod säkert har du stött på ordet microVM, oftast bredvid Firecracker. Det förklaras antingen som ”en lättviktig VM” (sant, men inte till hjälp) eller med ett diagram över kärnans inälvor. Här är versionen mittemellan.

Två äldre alternativ, och varför inget passar

Börja med de två saker som en microVM ligger mellan.

En container är en grupp vanliga processer på din maskin som kärnan har gått med på att ljuga för. Namespaces visar dem ett eget filsystem, en egen processlista och ett eget nätverk; cgroups begränsar hur mycket CPU och minne de får använda. Den startar på millisekunder eftersom inget nytt startas upp. Men alla containrar på en värd pratar med samma kärna. En kärnbugg som går att nå från en container är en väg ut ur alla.

En virtuell maskin har en egen kärna. Värdens CPU kör gästen via hårdvaruvirtualisering (KVM på Linux) som om den hade en egen dator. Gränsen är hypervisorn, som exponerar betydligt mindre än en kärnas hundratals systemanrop. Priset är vikt. En klassisk VM emulerar en hel PC: firmware, en PCI-buss, USB-styrenheter, ett grafikkort, ibland ett ljudkort. Den startar genom allt detta, tar sekunder till minuter, och varje instans bär på tiotals eller hundratals megabyte overhead.

En liknelse som håller hyfsat: containrar är lägenheter i samma hus, med gemensam grund, gemensamma rör och gemensamma ledningar. VM:er är separata hus. Hus är säkrare grannar, men ingen bygger ett för ett besök som varar i 20 sekunder.

Vad Firecracker tar bort

Firecracker är en virtual machine monitor (programmet som sätter upp och kör en VM ovanpå KVM), skriven i Rust och släppt som öppen källkod 2018. Den byggdes för ett enda jobb: att köra enorma mängder kortlivade arbetslaster som inte litar på varandra på delad hårdvara. Den kommer dit mest genom att ta bort saker:

  • Ingen firmware, ingen hårdvarudetektering. Kärnan laddas direkt i minnet och startas. Ingen letar efter enheter som inte finns.
  • En pytteliten enhetsmodell. Ett nätverkskort, en blockenhet, en seriell konsol och några till, alla virtio (enheter utformade för virtuella maskiner i stället för imitationer av fysiska). Ingen USB, ingen grafik, ingen PCI.
  • En liten, minnessäker kodbas. Mindre kod som emulerar enheter betyder färre ställen för en bugg som låter gästen nå värden.
  • En bur runt själva VMM:en. Varje Firecracker-process körs i en chroot, med seccomp-filter på sina egna systemanrop och cgroups på sina resurser. Om något bröt sig ut ur gästen skulle det hamna i en bur, inte på värden.

Projektets egna publicerade siffror är användarutrymme på så lite som 125 ms och under 5 MiB minnesoverhead per microVM. Det är bästa labbvärden; en riktig sandbox behöver också få disk och nätverk uppsatta och en agent inuti som är redo att ta emot kommandon, och därför är vår klar på ungefär en sekund. Det är ändå tillräckligt nära containerhastighet för att skapa en per uppgift och slänga den efteråt.

Container kontra microVM i praktiken

ContainerFirecracker-microVM
Kärnadelad med värdenegen
Gräns mot värdensystemanrop till en delad kärnahypervisor + liten VMM
Starttidmillisekunder~0.1–1 s
Overhead per instansmycket litennågra MiB
Enheterdet värden exponerarnätverk, disk, konsol
GPUmöjligtnej
Passar föregen kod, paketera apparopålitlig kod, flerhyresgästlaster

Raden som spelar roll är den andra. Med en container blir frågan ”kan den här koden ta sig ut?” till ”finns det en nåbar bugg någonstans i värdens kärna?”. Med en microVM blir den ”finns det en bugg i hypervisorn eller i en handfull virtuella enheter?”. Den andra ytan är betydligt mindre, och det är den som molnplattformar redan försvarar för sin egen flerhyresgästhosting.

Vad du ger upp

En microVM är ingen gratis uppgradering.

  • Inga GPU:er och inga skärmar. Den är till för att köra kod, inte för skrivbord eller grafik.
  • Färre enheter, mindre flexibilitet. Allt som förväntar sig riktig hårdvara eller en lång lista kärnmoduler kommer inte att trivas.
  • Gränser behöver fortfarande regler. En microVM med öppen utgående trafik kan fortfarande skicka trafik du inte vill ha; en med dina API-nycklar inuti kan fortfarande läcka dem. Isolering skyddar värden från gästen, inte dina hemligheter från koden du gav dem till.

Hur våra sandboxar använder den

Varje EQVPS-sandbox är en Firecracker-microVM med egen kärna, från 0.25 vCPU och 512 MB upp till 8 vCPU och 16 GB. Den har Python 3.12, Node.js 22, bash, git och curl, utgående internet och inga inkommande portar. Tillfälliga sandboxar raderas när du är klar; persistenta behåller sin disk, och att pausa en skriver en ögonblicksbild av microVM:en till disk så att den inte kostar något förrän den återupptas. Pausade ögonblicksbilder sparas i 14 dagar. Därefter tas sandlådan bort och dess id svarar 410 sandbox_deleted.

Vi valde microVM:er framför containrar av ett skäl: koden som körs i en sandbox är per definition kod som ingen har granskat. Utdata från en AI-agent, en främlings pull request, ett benchmark med tusen program skrivna av en modell. För det är en egen kärna den gräns som är värd att betala för. Detaljerna i det vi byggt runt den — tariffer, kvoter, gränsen på 55 sekunder för synkrona kommandon — finns i sandboxdokumentationen.

Vill du jämföra den här gränsen med de andra alternativen mer ingående ställer isoleringsnivåer för opålitlig kod processer, containrar, microVM:er och fullständiga VM:er sida vid sida. Och om det var sekundpriset som fångade ditt intresse visar hur debitering per sekund faktiskt fungerar uträkningen.

FAQ

Är en microVM en container?

Nej. En container är en grupp processer på värdens kärna, åtskilda med namespaces och cgroups. En microVM kör en egen kärna på virtuell hårdvara, och gränsen mot värden är hypervisorn. Den startar nästan lika snabbt som en container bara för att nästan allt en klassisk VM emulerar har tagits bort.

Varför startar den så snabbt?

Det finns inget BIOS och ingen hårdvarudetektering. VMM:en laddar kärnan direkt och erbjuder bara en handfull virtuella enheter: nätverk, blocklagring, en seriell konsol och några till. Mindre att emulera betyder mindre att starta.

Vad kan en microVM inte göra?

Ingen GPU-passthrough, ingen grafisk skärm och bara en minimal uppsättning enheter. Den är byggd för att köra kod och tjänster, inte skrivbord eller hårdvarutunga arbetslaster.

Är den säkrare än en container?

Den tar bort den största delade ytan: värdens kärna. Kod inuti måste ta sig förbi hypervisorn och VMM:en, som är betydligt mindre än en kärnas gränssnitt för systemanrop. Det är ingen magi: resursgränser, nätverksregler och inga hemligheter inuti behövs fortfarande.

Kan jag köra Docker i en microVM?

Tekniskt kan en microVM köra allt som dess kärna stöder, men våra sandboxar levereras utan Docker. Behöver din arbetslast containrar, kör den på en VPS.

Kommentarer

Inga kommentarer än. Bli först.

Lämna en kommentar

Kommentarer modereras innan de visas.