Китайската компания ByteDance, развиваща услугата TikTok, публикува в списъка за разпращане на разработчици на ядрото на Linux пачове с реализация на системата Parker (PARtitioned KERnel), позволяваща да се стартират няколко ядра на Linux едновременно на един компютър без използване на традиционна виртуализация. По решаваните задачи Parker напомня на представения преди няколко дни проект Multikernel, но се различава от него по архитектура и реализиране.
В Parker се прилага секциониране на наличните ядра на CPU, паметта и устройствата. Всеки стартиран екземпляр на ядрото се основава на един общ образ на ядрото, но може да използва различни настройки и оптимизации. Първото заредено ядро (Boot Kernel) осъществява разпределение и секциониране на хардуерните устройства. Останалите екземпляри на ядрото на Linux (Application Kernel) работят само с прикрепените към тях ядра на CPU, памет и устройства за вход/изход.
В началния вариант за намаляване на разходите и опростяване на реализирането отсъства управленски механизъм и всички ядра използват една области на изолация (domain), т.е. грешка в който и да е екземпляр на ядрото може да доведе до проблеми в цялата система. В бъдеще плануват да се използват отделни хардуерни възможности за изолиране на екземплярите на ядрото. Като област на приложение Parker се споменава за компютри с голям брой ядра на CPU, при които при мащабиране на задачите възникват проблеми.
За управление в Parker е реализиран интерфейс на база kernfs, а за зареждане на допълнителни екземпляри на ядрото в резервираните области на паметта се използва kexec. Преди стартиране на допълнителни ядра, основното ядро освобождава ядрата на CPU, резервира физическа памет и отделя PCI-устройства за тяхното използване в секционирането на ядрото. За вход/изход зад всяко ядро трябва да бъде прикрепено свое PCIe-устройство, като NVMe-накопител или мрежов адаптер. След стартиране на екземпляра на ядрото, то не може да взаимодействува с другите ядра.
Източник: opennet.ru
