Первый Прототип: Unikernels Как Этап Эволюции Linux

В начале июля группа инженеров из Red Hat и Бостонского университета опубликовала технический документ, в котором предложили заменить монолитное ядро Linux на архитектуру Unikernels. Мы решили изучить материал и обсудить реакцию ИТ-сообщества на это предложение.



Первый прототип: Unikernels как этап эволюции Linux

Фото - Имонн Магуайр — Unsplash



Unikernels как альтернатива

Известно, что Linux использует монолитное ядро .

Он контролирует процессы, сетевые функции, периферийные устройства и доступ к файловой системе.

Однако, как пишут авторы статьи из Red Hat и Бостонского университета ( Страница 1 ), эта структура имеет свои недостатки.

В частности, высокопроизводительные приложения вынуждены использовать такие фреймворки, как ДПДК И СПДК получить беспрепятственный доступ к устройствам ввода-вывода, минуя ядро.

В облаке также возникают определенные трудности.

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

Каждая виртуальная машина управляется полноценной операционной системой.

В результате вычислительные ресурсы сервера используются не самым оптимальным образом.

Альтернативный подход — юникеры — может улучшить ситуацию.

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

Этот «бинарный файл» затем можно использовать для загрузки системы.

Такой подход позволяет специализировать функционал ОС под нужды конкретного приложения.

Ресурсы такой системы расходуются более эффективно.

Unikernels также имеют более высокую производительность по сравнению с архитектурой монолитного ядра.

Причина — упрощение путей ввода-вывода, поскольку все данные и файлы располагаются в едином адресном пространстве.

Также нет необходимости переключать контекст между пространством пользователя и пространством ядра.

Команда инженеров из Бостонского университета и Red Hat разработала прототип Linux на основе юникеров.

Операционная система называется Unikernel Linux (UKL).



Что сделали инженеры?

Как говорят разработчики( стр.

3 ), они изменили всего одиннадцать и добавили двадцать новых строк кода в ядре Linux v5.0.5 и glibc .

«Классическое» ядро остается работоспособным — пользователь может выбрать метод сборки (UKL или нет).

Авторы создали небольшую библиотеку UKL, в которую поместили специальные «заглушки», маскирующие неиспользуемые системные вызовы.

Они также модифицировали основной компоновщик, чтобы определить новый тип сегментов, например TLS (локальное хранилище потоков) из двоичных файлов ELF. Процесс сборки также был изменен, чтобы объединить код приложения, библиотеку glibc и UKL в один двоичный файл.

Инженеры работают над исправлением ряда недостатков.

Например, они планируют переехать.

ТЛС -memory из пространства ядра и отказаться от vmalloc при управлении распределением памяти, чтобы упростить систему.



Мнения

Разработчики Red Hat Они говорят что UKL может стать полноценной альтернативой для запуска процессов, работающих с железом напрямую (минуя ядро).

Авторы оригинальной статьи утверждают ( стр.

2 ), что служба кэширования memcached работает на 200 % быстрее под Unikernels, чем под Linux.

В целом инициатива авторов оригинальной статьи положительна.

ответил и ИТ-сообщество.

Резиденты Hacker News отметили, что архитектура Unikernels существенно повысит безопасность программной среды.

Если приложение будет взломано, хакер получит доступ только к его двоичному файлу.



Первый прототип: Unikernels как этап эволюции Linux

Фото - Джек Янг — Unsplash Один из резидентов Hacker News даже предложенный Радикальное решение — переписать ядро Linux для юникеров с нуля на Rust. По его словам, язык решит проблему с большим количеством ошибки, связанные с безопасностью памяти.

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

Хотя один энтузиаст уже пишу его операционная система на Rust. Источники могут быть найти на GitHub .



Другие реализации

UKL — не единственная реализация операционной системы на основе юникеров.

Например, подобное решение развивается группа инженеров из Технологического института Вирджинии, Qualcomm и RWTH Ахенского университета в Германии.

Их легкое ядро называется HermiTux .

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

Потребление памяти в тестовой среде составляет 9 МБ, что в десять раз меньше, чем у классического ядра Linux. Также имеет смысл отметить ОС МиражОС , разработанный в OCaml. Ядро может работать поверх гипервизоров Xen, KVM, BHyve и VMM (OpenBSD), а также на мобильных платформах.

Система поддерживает несколько десятков библиотек на языке OCaml для выполнения сетевых операций (DNS, SSH, OpenFlow, HTTP, XMPP), работы с хранилищем и параллельной обработки данных.

Можно сказать, что MirageOS — один из первых успешных проектов Unikernels. Интересно, что его блог также реализован как одноядерный.

Эти операционные системы уже используются в производственных средах многими организациями — например, Кембриджский университет , IBM, Ericsson и Docker .

Не исключено, что к этим операционным системам вскоре присоединится новая — Unikernel Linux.


О чем мы пишем в корпоративном блоге: Теги: #linux #разработка Linux #Виртуализация #iaas #облачные вычисления #системный анализ и проектирование #конфигурация Linux #itglobal.com #unikernels
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.