HermiTux: свръхлеко ядро, бинарно съвместимо с Linux

HermiTux:  ,    Linux.td_uid_42_5ca9e1261f682_rand.td-a-rec-img{text-align:left}.td_uid_42_5ca9e1261f682_rand.td-a-rec-img img{margin:0 auto 0 0}

Специалистите от университета на Вирджиния, от компанията Qualcomm и университета Аахен (Германия) разработват изключително лекото ядро HermiTux, съответстващо на парадигмата unikernel. Лекото ядро HermiTux два възможност за директното стартиране на приложения чрез хипервайзора, без каквито и да било допълнително софтуерни слоеве, осигуряващо бинарна съвместимост с Linux приложенията на ниво ABI. Кодът е написан на програмния език С и се разпространява под BSD лиценза.

HermiTux предоставя минимално необходимото за работата на една операционна система и изразходва съществено по-малко ресурси в сравнение със стандартното Linux ядро. HermiTux стартира изключително бързо приложенията чрез хипервайзора – в рамките на 0,1 секунда. В тестовете за производителност HermiTux изостава от стандартното Linux ядро с около 3%, което се дължи на времето, необходимо за прехвърлянето на входно/изходните операции към хост системата. Но консумацията на памет при тестовете е около 9 MB, което е 10 пъти по-малко в сравнение с Linux Kernel (Docker използва около 2 MB благодарение на общото с хост средата ядро, без да се налага прилагането на пълноценна виртуализация).

HermiTux:  ,    Linux

Възможността за стартирането на немодифицирани Linux приложения се осъществява чрез поддръжката на ELF формата, реализацията на системните извиквания на Linux и виртуалните файлови системи. На сегашния етап на развитие HermiTux реализира 83 системни извиквания. В Linux ядрото са реализирани над 350 системни извиквания, но в реалните приложения се използва малка част от тях – за обхващането на 90% от софтуера в различните дистрибуции е достатъчно реализирането на 200 системни извиквания.

.td_uid_41_5ca9e1261f285_rand.td-a-rec-img{text-align:left}.td_uid_41_5ca9e1261f285_rand.td-a-rec-img img{margin:0 auto 0 0}

HermiTux:  ,    Linux

За намаляване на таймингите при обработването на системните извиквания, е реализиран механизъм за замяна на използването на системните извиквания с директното извикване на типовите функции на ядрото. По този начин се избягва използването на лакомата за ресурси инструкция syscall. Това е възможно, понеже в HermiTux се използва общо адресно пространство и няма смисъл от употребата на syscall. За статично свързаните приложения замяната се извършва на ниво стандартната библиотека.

HermiTux:  ,    Linux

Освен това, подготвен е инструментариум за анализ на системните извиквания в изпълнимите файлове, което дава възможност за компилирането на минимално HermiTux ядро, включващо единствено кода, необходим само за обработката на използваните в приложенията системни извиквания.

HermiTux предлага базова многопоточност (Pthreads Embedded). Файловата система е MiniFS, в която файловете се разполага в оперативната памет (ramdisk), като са емулирани някои елементи от виртуалните файлови системи (/dev/zero, /dev/cpuinfo и други).

HermiTux:  ,    Linux

TCP/IP стека се базира на проекта LWIP, а в качеството на стандартна Си библиотека се използва модифициран вариант на Musl. При използването на HermiTux не се налага каквото и да било преобразуване или прекомилиране на файловете. Поддържат се както всички компилирани изпълними файлове, така и приложенията за интерпретаторните програмни езици – Python, Lua и т.н.

Коментари
Все още няма коментари
Статистика
Прегледи 139
Коментари 0
Рейтинг
Добавена на07 Апр 2019
ИзточникKaldata

Тагове
Linux, HermiTux