Инициатива Multikernel Linux позволит одновременно выполнять некоторое количество экземпляров ядра Linux

3 мин
Инициатива Multikernel Linux позволит одновременно выполнять некоторое количество экземпляров ядра Linux

Команда разработчиков сделала общедоступным репозиторий проекта Multikernel Linux. Он позволяет одновременно выполнять некоторое количество экземпляров ядра Linux.

Этот выпуск построен на Linux 7.0 и обозначен как v7.0-mk2 в репозитории ядра проекта. В настоящее время официально поддерживается только x86_64. Вместо одного ядра Linux, запускающего все процессы, он позволяет нескольким отдельным ядрам работать параллельно на одном и том же оборудовании.

Основная идея проста. Один экземпляр Linux выступает в качестве хоста и управляет пулом процессоров, памяти и устройств PCI. Он может разделить эти ресурсы на отдельные группы и запустить другое ядро ​​Linux в каждой группе. В отличие от виртуальных машин, эти дополнительные ядра не работают на гипервизоре. Каждое из них получает свои собственные физические процессоры, хранилище и устройства и работает непосредственно на оборудовании.

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

В этом релизе проект также поделился результатами сравнения производительности, демонстрирующими, где подход с использованием «голого железа» может превзойти традиционную виртуализацию. В одном из наборов тестов lmbench многоядерный режим сравнивался с хорошо настроенной виртуальной машиной KVM. Оба использовали одну и ту же сборку ядра, два ядра ЦП и 1 ГБ памяти на двухпроцессорной системе Intel Xeon Gold 5418Y. Результаты показали почти одинаковую задержку памяти и пропускную способность, что логично, с учётом эффективность современной аппаратной виртуализации. Более существенные различия проявились в задачах, требующих большого количества переходов и пробуждений ЦП.

Например, тесты показали, что переключение контекста между двумя процессами заняло 1,37 микросекунды с многоядерным режимом по сравнению с 3,42 микросекундами в гостевой системе KVM по умолчанию. Задержка канала связи составила 3,24 микросекунды против 7,06, а задержка сокета Unix — 4,81 против 7,48 микросекунд.

Однако разработчики отмечают, что Multikernel не всегда настолько быстрее KVM. Большая часть разницы обусловлена ​​тем, как управляются простаивающие виртуальные процессоры. В стандартной конфигурации KVM пробуждение простаивающего виртуального процессора означает выход из виртуальной машины и повторный вход в неё. Multikernel, с другой стороны, управляет своими физическими ядрами ЦП напрямую.

Недостаток заключается в том, что эти ядра ЦП выглядят полностью загруженными для хоста и потребляют больше энергии. В ходе испытаний проекта было зафиксировано рост потребления энергии приблизительно на 19 ватт. Предоставление гостевой системе большего контроля над управлением питанием ЦП равным образом помогло снизить задержку, но всё же привело к компромиссам в отношении энергопотребления и ресурсов.

Пока авторы делали акцент на тестировании архитектуры x86_64. Сопровождение других может появиться позже. Архитектурно‑специфические интерфейсы уже разделены с учётом будущих портов, но ни один из них пока официально не поддерживается.

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

Проект Multikernel создан компанией Multikernel Technologies, основанной и возглавляемой сопровождающим в ядре Linux подсистему управления трафиком Конгом Вангом. Для запуска и управления ядрами в Multikernel предложен усовершенствованный вызов kexec, который в отличие от классического kexec не ограничивается заменой работающего ядра и позволяет запускать дополнительные экземпляры ядра, выполняемые параллельно. Для мониторинга и отладки запущенных экземпляров ядра внедрён интерфейс «/proc/multikernel», а для обмена сообщениями между ядрами и координации работы предложен коммуникационный каркас Multikernel IPI.

Читают сейчас

Prusa представила PrusaSlicer 3.0 с новым интерфейсом и поддержкой плагинов

5 часов назад

Prusa представила PrusaSlicer 3.0 с новым интерфейсом и поддержкой плагинов

Команда Prusa Research выпустила первую публичную альфа‑версию слайсера PrusaSlicer 3.0. Авторы переписали интерфейс, переработали систему профилей, добавили поддержку полноценной работы с несколькими

Anthropic обновила Claude – вышли Fable 5.1 и Mythos 5.1

6 часов назад

Anthropic обновила Claude – вышли Fable 5.1 и Mythos 5.1

Anthropic выпустила апдейт своих топовых моделей – Claude Fable 5.1 и Claude Mythos 5.1. Это одна и та же модель под капотом, различающаяся уровнем защитных ограничений: Fable 5.1 доступна всем в цело

Creality представила 3D‑принтер SPARKX i8 с поддержкой многоцветной печати и быстрой сменой филамента

6 часов назад

Creality представила 3D‑принтер SPARKX i8 с поддержкой многоцветной печати и быстрой сменой филамента

Creality представила 3D‑принтер SPARKX i8 с поддержкой четырёхцветной печати. Его главная особенность заключается в системе QuarTeks, в которой прутки филамента подведены практически к самому соплу, б

Базовая релиз MacBook Neo аномально быстро расходует источник SSD из‑за всего 8 ГБ оперативной памяти

6 часов назад

Базовая релиз MacBook Neo аномально быстро расходует источник SSD из‑за всего 8 ГБ оперативной памяти

Автор YouTube‑канала UFD Tech рассказал, что MacBook Neo необычно быстро расходует источник SSD‑накопителя. Всё дело в небольшом объёме оперативной памяти, из‑за которой устройство активно записывает

Anthropic предупредила пользователей Claude об утечке их данных для входа из‑за вредоносного ПО

6 часов назад

Anthropic предупредила пользователей Claude об утечке их данных для входа из‑за вредоносного ПО

Организация Anthropic предупредила, что инфостилеры перехватывают сеансы Claude и открывают злоумышленникам доступ к учётным записям пользователей. Читать далее