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 системних викликів) .

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

Для статично пов'язаних додатків, можна замінити оператори syscall викликами функцій у виконуваному файлі.

Для динамічно пов'язаних програм заміна виконується на рівні стандартної бібліотеки.

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

Ермітукс

Особливості HermiTux

Ермітукс використовує легкий гіпервізор на основі KVM, який завантажує двійковий файл Linux разом з мінімальним шаром операційної системи в межах єдиного адресного простору віртуальної машини. Під час виконання системні дзвінки, зроблені додатком, фіксуються ядром HermiTux.

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

З точки зору захисту, зазначена модульність дозволяєІЗамість фільтрування використовуються невикористані системні дзвінки (наприклад, через seccomp) до повністю виключити їх із ядра.

Додаток працює у спільному адресному просторі (HermiTux призначений для запуску поверх одного гіпервізора програми).

Забезпечена основна підтримка різьблення (Pthreads Embedded).

Як файлова система пропонується MiniFS, в якому файли розміщуються в оперативній пам'яті (RAM-диску), а деякі елементи віртуальних файлових систем (/ dev / zero, proc / cpuinfo тощо) емулюються.

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

HermiTux не вимагає повторної збірки програм і дозволяє запускати як скомпільовані виконувані файли (статично та динамічно пов'язані), так і програми на інтерпретованих мовах (Python, Lua тощо).

Посилання на проект.


Залиште свій коментар

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

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.