HermiTux: двоичное ядро, совместимое с приложениями Linux

Эрмитукс

Группа исследователей из Политехнического университета Вирджинии (СОЕДИНЕННЫЕ ШТАТЫ АМЕРИКИ), Qualcomm и Технический университет Ахена Рейн-Вестфалия (Германия) они развиваются легкое ядро Эрмитукс, что соответствует парадигме одноядерного ядра.

HermiTux - это предназначен для запуска приложений непосредственно на гипервизоре без необходимости в дополнительных слоях, который обеспечивает двоичную совместимость с приложениями Linux на уровне ABI.

Код HermiTux Он написан на языке программирования C и распространяется под лицензией BSD..

HermiTux обеспечивает минимальную среду операционной системы с собственным ядром (unikernel), которое потребляет гораздо меньше ресурсов чем при создании окружений на основе обычного ядра Linux.

С этим позволяет быстро запускать приложения на гипервизоре: время запуска не превышает 0,1 секунды.

В тестах производительности HermiTux, примерно на 3% отставало в средах с обычным ядром Linux из-за накладных расходов на перенаправление ввода-вывода на сторону хоста.

Потребление памяти в тестовой среде составило 9 МБ, что в 10 раз меньше, чем при использовании ядра Linux (потребление Docker составляло около 2 МБ из-за использования общего ядра со средой хоста без использования полной виртуализации).

О HermiTux

Эрмитукс выделяется тем, что предназначен для запуска немодифицированных приложений создан для Linux, это осуществляется за счет поддержки формата ELF, реализация системных вызовов Linux и эмуляция виртуальных файловых систем.

На текущем этапе разработки HermiTux это реализует 83 системных вызова. Всего ядро ​​Linux обеспечивает более 350 системных вызовов, но лишь небольшая часть из них используется в реальных приложениях (для охвата 90% программ обычных дистрибутивов достаточно реализовать 200 системных вызовов).

Чтобы уменьшить задержки во время обработки системных вызовов, реализован дополнительный механизм для переопределения (перезаписи) системных вызовов для вызова типичных функций ядра.

Для статически связанных приложений можно заменить операторы системных вызовов вызовами функций в исполняемом файле.

Для динамически связанных приложений замена выполняется на уровне стандартной библиотеки.

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

Эрмитукс

Возможности HermiTux

Эрмитукс использует легкий гипервизор на основе KVM, который загружает двоичный файл Linux вместе с минимальным уровнем операционной системы на одной виртуальной машине с адресным пространством. Во время выполнения системные вызовы, выполняемые приложением, захватываются ядром HermiTux.

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

С точки зрения защиты, указанная модульность позволяет, иВместо фильтрации неиспользуемые системные вызовы (например, через seccomp) на полностью исключить их из ядра.

Приложение работает в общем адресном пространстве (HermiTux разработан для работы поверх одного гипервизора приложения).

Предоставляется базовая поддержка потоковой передачи (Pthreads Embedded).

В качестве файловой системы предлагается MiniFS., в котором файлы размещаются в оперативной памяти (RAM disk) и эмулируются некоторые элементы виртуальных файловых систем (/ dev / zero, proc / cpuinfo и т. д.).

Стек TCP / IP основан на проекте LWIP, а модифицированная версия проекта Musl используется как стандартная библиотека C.

HermiTux не требует повторной сборки приложений и позволяет запускать как скомпилированные исполняемые файлы (статически и динамически связанные), так и приложения на интерпретируемых языках (Python, Lua и т. Д.).

Ссылка на проект.


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.