Pour discuter, les dĂ©veloppeurs du noyau Linux ont proposĂ© une sĂ©rie de patches dĂ©veloppĂ©s par le projet Multikernel, qui a rĂ©cemment Ă©tĂ© classĂ© comme logiciel libre et sera maintenant dĂ©veloppĂ© avec la communautĂ©. Multikernel permet d'exĂ©cuter plusieurs instances indĂ©pendantes du noyau Linux sur un seul ordinateur physique, ayant un accĂšs direct aux ressources matĂ©rielles et pouvant ĂȘtre utilisĂ©es pour exĂ©cuter plusieurs environnements systĂšme isolĂ©s. Le projet a Ă©tĂ© créé par l'entreprise Multikernel Technologies, fondĂ©e et dirigĂ©e par Cong Wang, qui supervise la sous-systĂšme de contrĂŽle de trafic (TC, Traffic Control) dans le noyau Linux.
Pour le démarrage et la gestion des noyaux, un appel amélioré kexec a été proposé, qui, contrairement à l'ancien kexec, n'est pas limité au remplacement du noyau en cours d'exécution et permet de démarrer des instances supplémentaires du noyau exécutées en parallÚle. Un interface « /proc/multikernel » a été mis en place pour le monitoring et le débogage des instances de noyau en cours d'exécution, et un framework de communication Multikernel IPI a été proposé pour les échanges de messages entre les noyaux et la coordination des opérations.

Multikernel est présenté comme une nouvelle architecture d'isolation, occupant une niche entre la virtualisation par hyperviseur et l'isolation par conteneurs basée sur un noyau commun. Contrairement à la virtualisation, Multikernel ne nécessite pas l'utilisation d'un hyperviseur, simplifie la création d'environnements pour le lancement isolé d'applications spécifiques et permet d'atteindre des performances élevées sans les frais généraux de la virtualisation. Contrairement aux conteneurs, Multikernel assure un haut niveau d'isolation et permet d'utiliser un noyau distinct dans chaque environnement isolé.

Les performances lors de l'utilisation de Multikernel sont évaluées comme proches de celles d'une exécution sur un matériel séparé. Cela a été réalisé en éliminant les frais généraux associés à la virtualisation, causés par les gestionnaires de changement de contrÎle entre les machines virtuelles (VM exit), la traduction IOMMU et l'intervention de l'hyperviseur dans l'exécution des opérations privilégiées. Une allocation dynamique des ressources est supportée pour les environnements lancés, garantissant des performances prévisibles.
L'exĂ©cution simultanĂ©e de plusieurs noyaux s'effectue sans virtualisation, en utilisant un processeur SMP qui rĂ©partit les CPU disponibles entre les instances des noyaux Linux. Chaque instance de noyau Linux est attachĂ©e Ă un ou plusieurs cĆurs de CPU allouĂ©s pour son exĂ©cution, tout en partageant les autres ressources matĂ©rielles.
Les principaux avantages de Multikernel :
- Amélioration de l'isolation contre les défaillances des environnements exécutés.
- Sécurité accrue grùce à la séparation au niveau du noyau.
- Utilisation plus efficace des ressources par rapport aux machines virtuelles traditionnelles basées sur des hyperviseurs tels que KVM et Xen.
- PossibilitĂ© potentielle de mettre Ă jour le noyau sans arrĂȘter le fonctionnement grĂące au mĂ©canisme KHO (Kernel Hand Over).
- Prise en charge de l'intégration avec des infrastructures cloud standard et possibilité de transition transparente depuis des systÚmes de virtualisation traditionnels et d'isolation par conteneurs.
- Compatibilité complÚte avec les applications existantes et les interfaces systÚmes Linux. Multikernel modifie uniquement le noyau de maniÚre ciblée, en préservant la compatibilité totale au niveau de l'API.
Source : opennet.ru
