The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"В рамках проекта HermiTux развивается unikernel, бинарно сов..."
Отправлено opennews, 07-Апр-19 08:33 
Группа исследователей из Политехнического университета Виргинии (США), компании Qualcomm и Рейнско-Вестфальского технического университета Ахена (Германия) развивает (https://www.ssrg.ece.vt.edu/papers/vee2019.pdf) легковесное ядро HermiTux (https://ssrg-vt.github.io/hermitux/), соответствующее парадигме "unikernel". HermiTux позволяет напрямую запускать приложения поверх гипервизора без дополнительных прослоек, обеспечивая бинарную совместимость с приложениями для Linux на уровне ABI. Код написан на языке Си и распространяется (https://github.com/ssrg-vt/hermitux-kernel) под лицензией BSD.


HermiTux предоставляет минимальное окружение операционной системы со своим ядром, которое  потребляет существенно меньше ресурсов, чем при создании окружений на базе штатного ядра Linux, и позволяет очень  быстро запускать приложения поверх гипервизора - время загрузки не превышает 0.1 сек. В тестах производительности HermiTux отстал от окружений с обычным ядром Linux примерно на 3%, что обусловлено накладными расходами на проброс ввода/вывода на сторону хост-системы. Потребление памяти в тестовом окружении составило 9 Мб, что в 10 раз меньше, чем при использовании ядра Linux (потребление Docker составило около 2 Мб за счёт использования общего с хост-окружением ядра без применения полноценной виртуализации).

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

Для сокращения задержек в процессе обработки системных вызовов реализован опциональный механизм переопределения (rewrite) обращений к системным вызовам в вызов типовых функций ядра, позволяющий обойтись без выполнения достаточно ресурсоёмкой инструкции syscall (так как в HermiTux  используется общее адресное пространство нет смысла в использовании вызова syscall). Для статически связанных приложений возможна замена в исполняемом файле инструкций syscall на вызовы функций.  Для динамически связанных приложений замена осуществляется на уровне стандартной библиотеки.

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


Приложение выполняется в общем адресном пространстве (HermiTux рассчитан на запуск поверх гипервизора одного приложения). Предоставляется базовая поддержка многопоточности (Pthreads Embedded).
В качестве файловой системы предлагается MiniFS, в которой файлы размещаются в ОЗУ (ramdisk) и эмулируются некоторые элементы виртуальных ФС (/dev/zero, /dev/cpuinfo и т.п.).  


TCP/IP стек основан (https://github.com/ssrg-vt/lwip-hermitux) на наработках проекта LWIP (https://savannah.nongnu.org/projects/lwip/), а в качестве стандартной Си-библиотеки используется модифицированный вариант проекта Musl (https://github.com/ssrg-vt/hermitux-musl). HermiTux не требует пересборки приложений и позволяет запускать как скомпилированные исполняемые файлы (статически и динамически связанные), так и
приложения на интерпретируемых языках (Python, Lua и т.п.).

URL: https://news.ycombinator.com/item?id=19593497
Новость: https://www.opennet.ru/opennews/art.shtml?num=50473

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру