HermiTux: një unikernel binar i pajtueshëm me aplikacionet Linux

Hermituks

Një grup studiuesish nga Universiteti Politeknik i Virxhinias (SHBA), Universiteti Teknik i Qualcomm dhe Aachen Rhine-Westphalia (Gjermani) ato po zhvillohen bërthama e lehtë Hermituks, që korrespondon me paradigmën unikernel.

HermiTux është synuar të lejojë ekzekutimin e aplikacioneve direkt në hypervisor pa nevojë për shtresa shtesë, i cili siguron pajtueshmëri binare me aplikacionet Linux në nivelin ABI.

Kodi HermiTux Shtë shkruar në gjuhën programuese C dhe shpërndahet nën licencën BSD.

HermiTux siguron një mjedis minimal të sistemit operativ me bërthamën e vet (unikernel), e cila harxhon shumë më pak burime sesa kur krijoni ambiente të bazuara në një kernel normal Linux.

Me të kjo ju lejon të nisni shpejt aplikacionet në hypervisor: koha e fillimit nuk kalon 0,1 sekonda.

Në testet e performancës HermiTux, rreth 3% kanë ngecur në ambiente me një bërthamë të rregullt Linux, për shkak të shpenzimeve të përgjithshme të dërgimit të I / O në anën pritëse.

Konsumi i kujtesës në mjedisin e provës ishte 9 MB, e cila është 10 herë më pak sesa kur përdorni kernelin Linux (konsumi i Docker ishte rreth 2 MB për shkak të përdorimit të një bërthame të përbashkët me mjedisin host pa përdorur virtualizimin e plotë).

Rreth HermiTux

Hermituks spikat se synohet të ketë aftësinë për të ekzekutuar aplikacione të pamodifikuara krijuar për Linux, kjo bëhet përmes mbështetjes për formatin ELF, implementimi i thirrjeve të sistemit Linux dhe përngjasimi i sistemeve skedare virtuale.

Në fazën aktuale të zhvillimit të HermiTux, kjo zbaton 83 thirrje të sistemit. Në total, kerneli Linux ofron më shumë se 350 thirrje të sistemit, por vetëm një pjesë e vogël e tyre përdoret në aplikacione reale (për të mbuluar 90% të programeve të shpërndarjeve të rregullta, mjafton të zbatosh 200 thirrje të sistemit).

Për të zvogëluar vonesat gjatë përpunimit të thirrjeve të sistemit, zbatohet një mekanizëm opsional për të ripërcaktuar (rishkruar) thirrjet e sistemit për të thirrur funksione tipike të kernelit.

Për aplikime të lidhura statikisht, është e mundur të zëvendësohen deklaratat syscall me thirrjet e funksioneve në një skedar të ekzekutueshëm.

Për aplikimet e lidhura në mënyrë dinamike, zëvendësimi bëhet në nivelin standard të bibliotekës.

Përveç kësaj, janë përgatitur mjete për të analizuar thirrjet e sistemit të përfshira në skedarë të ekzekutueshëm që ju lejojnë të mbledhni një imazh minimal HermiTux që përfshin vetëm kodin e nevojshëm për të përpunuar vetëm thirrjet e sistemit të përdorura në aplikacion.

Hermituks

Karakteristikat e HermiTux

Hermituks përdor një hipervizor të lehtë të bazuar në KVM që ngarkon binarin Linux së bashku me një shtresë minimale të sistemit operativ brenda një makine virtuale të hapësirës së vetme të adresave. Në kohën e ekzekutimit, thirrjet e sistemit të bëra nga aplikacioni kapen nga kerneli HermiTux.

Opsionale, HermiTux siguron një mekanizëm për të rishkruar thirrjen e thirrjeve të sistemit në thirrjet e zakonshme të funksionit të kernelit, duke ulur ndjeshëm vonesën e thirrjeve të sistemit.

Nga këndvështrimi i mbrojtjes, modulariteti në fjalë lejonDheNë vend të filtrimit, thirrjet e sistemit të papërdorura (për shembull, përmes seccomp) në përjashtoni ato plotësisht nga bërthama.

Aplikacioni ekzekutohet në një hapësirë ​​të përbashkët adresash (HermiTux është krijuar për të ekzekutuar në krye të një mbikëqyrësi të vetëm të një aplikacioni).

Ofrohet mbështetja themelore e ndërprerjes (Pthreads Embedded).

Si sistem skedari, MiniFS është propozuar, në të cilin vendosen skedarët në RAM (disk RAM) dhe imitohen disa elemente të sistemeve skedare virtuale (/ dev / zero, proc / cpuinfo, etj.).

Grumbulli TCP / IP bazohet në projektin LWIP dhe një version i modifikuar i projektit Musl përdoret si bibliotekë standarde C.

HermiTux nuk kërkon ndonjë bashkim të aplikacioneve dhe ju lejon të ekzekutoni skedarë të ekzekutueshëm të përpiluar (të lidhur statikisht dhe dinamikisht) dhe aplikacione në gjuhë të interpretuar (Python, Lua, etj.).

Lidhja e projektit.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.