HermiTux: XNUMX unikernel binari compatible amb les aplicacions de Linux

HermiTux

Un grup d'investigadors de la Universitat Politècnica de Virgínia (EUA), Qualcomm i la Universitat Tècnica Rin-Westfàlia d'Aachen (Alemanya) estan desenvolupant el nucli lleuger HermiTux, Corresponent a l'paradigma de unikernel.

HermiTux està destinat a permetre executar aplicacions directament sobre l'hipervisor sense la necessitat d'haver de recórrer a capes addicionals, la qual que proporciona compatibilitat binària amb aplicacions Linux en el nivell ABI.

El codi de HermiTux està escrit en el llenguatge de programació C i aquest és distribuït sota la llicència BSD.

HermiTux proporciona un entorn de sistema operatiu mínim amb el seu propi nucli (unikernel), que consumeix molts menys recursos que a l'crear entorns basats en un nucli de Linux normal.

Amb això això li permet iniciar aplicacions ràpidament sobre l'hipervisor: el temps d'arrencada no supera els 0,1 segons.

En les proves de rendiment de HermiTux, Aproximadament el 3% es va retardar en els entorns amb un nucli de Linux regular, a causa de la sobrecàrrega de reenviament d'E / S a la banda de l'amfitrió.

El consum de memòria a l'entorn de prova va ser de 9 MB, que és 10 vegades menor que quan es fa servir el nucli de Linux (el consum de Docker va ser d'aproximadament 2 MB causa de l'ús d'un nucli comú amb l'entorn de sistema principal sense utilitzar la virtualització completa).

sobre HermiTux

HermiTux es destaca per estar destinat a tenir la capacitat d'executar aplicacions no modificades creades per a Linux, això es realitza a través del suport per al format ELF, La implementació de trucades a sistema Linux i l'emulació de sistemes d'arxius virtuals.

En l'etapa actual de desenvolupament de HermiTux, aquest implementa 83 trucades a sistema. En total, el nucli de Linux proporciona més de 350 trucades a sistema, però només una petita part d'elles s'usa en aplicacions reals (per cobrir el 90% dels programes de les distribucions regulars, és suficient per implementar 200 trucades a sistema) .

Per reduir les demores durant el processament de les trucades a sistema, s'implementa un mecanisme opcional per redefinir (reescriure) les crides a sistema per cridar a les funcions típiques de l'nucli.

Per a aplicacions relacionades estàticament, és possible reemplaçar les instruccions de syscall amb crides a funcions en un arxiu executable.

Les aplicacions relacionades dinàmicament, el reemplaçament es realitza en el nivell de biblioteca estàndard.

A més, s'han preparat eines per analitzar les trucades a sistema involucrades en arxius executables que li permeten recopilar una imatge mínima de HermiTux que inclou només el codi necessari per processar només les trucades a sistema utilitzades en l'aplicació.

HermiTux

Característiques de HermiTux

HermiTux utilitza un hipervisor lleuger basat en KVM que carrega el binari de Linux juntament amb una capa mínima de el sistema operatiu d'aquí a una única màquina virtual d'espai d'adreces. En temps d'execució, les crides a sistema realitzades per l'aplicació són capturades pel nucli de HermiTux.

Opcionalment, HermiTux proporciona un mecanisme per reescriure la invocació de trucades de sistema en trucades de funció comuns a el nucli, el que redueix significativament la latència de trucades de el sistema.

Des del punt de vista de la protecció, aquesta modularitat permetIn lloc de filtrar, les trucades de sistema no utilitzades (Per exemple, a través de seccomp) per excloure-completament de l'nucli.

L'aplicació s'executa en un espai d'adreces compartit (HermiTux està dissenyat per executar-se sobre l'hipervisor d'una sola aplicació).

Es proporciona suport bàsic de roscat (Pthreads Embedded).

Com a sistema d'arxius, es proposa MiniFS, En el qual els arxius es col·loquen a la RAM (ramdisk) i es emulen alguns elements dels sistemes d'arxius virtuals (/ dev / zero, proc / cpuinfo, etc.).

La pila TCP / IP es basa en el projecte LWIP, i una versió modificada de el projecte Musl s'utilitza com una biblioteca C estàndard.

HermiTux no requereix tornar a enganxar les aplicacions i li permet executar tant arxius executables compilats (relacionats estàtica i dinàmicament) com a aplicacions en llenguatges interpretats (Python, Lua, etc.).

Link de el projecte.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.