Представен е първият публичен релиз на проекта Multikernel Linux (mklinux-v7.0-mk2), който развива вариант на ядрото Linux, добавяйки възможността за изпълнение на няколко независими инстанции на ядрото на един физически компютър без използването на хипервизор и виртуализация. Всяка инстанция на ядрото има директен достъп до хардуерните ресурси и може да се използва за стартиране на отделни изолирани системни среди. Първият релиз е базиран на ядро Linux 7.0 и съдържа настройка на компилация „CONFIG_MULTIKERNEL“, при деактивиране на която ядрото става напълно аналогично на стандартното ядро 7.0. Поддържа се само архитектура x86_64.
Multikernel се представя като нов механизъм за изолация, заемащ ниша между виртуализацията с помощта на хипервизор и контейнерната изолация на базата на общо ядро. В отличие от виртуализацията, Multikernel не изисква използването на хипервизор, опростява създаването на среди за изолирано стартиране на отделни приложения и позволява постигане на висока производителност без разходи за виртуализация. В отличие от контейнерите, Multikernel осигурява високо ниво на изолация и позволява използване на отделно ядро в всяка изолирана среда, като аварийното завършване или експлоатацията на уязвимост в една от тях не засяга останалите среди.

Хостовото ядро осигурява разпределение на наличните CPU, памет и PCI устройства между паралелно работещите допълнителни инстанции на ядрото. Всяка инстанция работи на отделно выделено ядро CPU, работи с закріпените за него устройства и има достъп до отделена област на физическата памет. Същевременно изпълнението на няколко ядра се извършва без виртуализация, използвайки SMP обработчик, който разпределя наличните CPU. Поддържа се динамично разпределение на ресурсите на стартираните среди и осигуряване на предвидима производителност.
Благодарение на изключването на разходите, присъщи на виртуализацията, производителността при използване на Multikernel се оценява като близка до производителността на изпълнението на самостоятелно оборудване. При използване на Multikernel няма фаза на предаване на управление между виртуалните машини (VM exit), не се използват страници на второ ниво на паметта, отделен модел на устройства и транслация на IOMMU. В сравнение с хипервизора KVM при използване на Multikernel се наблюдава увеличение на производителността на различни системни повиквания и функции от 1.07 до 2.5 пъти (fork + exit — 1.07x, write() — 1.39x, AF_UNIX — 1.55x, Pipe — 2.18x, превключване на контекста — 2.50x), пропускната способност и закъсненията при работа с памет съответстват на същото ниво.

Източник: opennet.ru
