Virtualisation du noyau

La virtualisation du noyau est l'une des nombreuses méthodes par lesquelles le noyau d'un système d'exploitation (OS) est adapté pour prendre en charge différents utilisateurs exécutant des applications simultanément sur une seule machine. Le noyau est le noyau essentiel d'un système d'exploitation qui fournit des services de base à toutes les autres parties du système d'exploitation. La virtualisation est un moyen de créer plusieurs systèmes virtuels qui partagent des ressources informatiques physiques, telles que des cycles de processeur, de l'espace mémoire, de la bande passante réseau, etc. Dans le modèle de virtualisation classique, un hyperviseur isole les systèmes d'exploitation et les applications du matériel informatique sous-jacent, permettant à la machine hôte d'exploiter plusieurs machines virtuelles (VM) indépendantes en tant qu'invitées, qui partagent les ressources de l'hôte. La virtualisation du noyau peut être basée sur des hyperviseurs ou des conteneurs. Voici quelques exemples de virtualisation du noyau :

KVM (kernel-based virtual machine) est un QEMU (quick emulator) modifié qui utilise les extensions des processeurs de virtualisation (Intel-VT et AMD-V) pour se connecter aux VM. KVM utilise le noyau Linux comme hyperviseur. Le logiciel est fourni avec le système d'exploitation Linux et peut être installé en même temps que le noyau Linux. La virtualisation d'OS est une méthode de virtualisation du noyau basée sur des conteneurs dans laquelle un système d'exploitation est adapté de manière à fonctionner comme plusieurs systèmes discrets pour prendre en charge différents utilisateurs exécutant des applications simultanément sur une seule machine. La virtualisation d'OS permet de déployer et d'exécuter des applications distribuées sans lancer une VM entière pour chaque application. Plusieurs conteneurs sont au contraire exécutés sur un hôte de contrôle, et un seul noyau est utilisé. Les projets de conteneurs Linux

, tels que LXD, LXC et LXCFS, impliquent des images autonomes, complètes avec leurs propres environnements d'exécution, fonctionnant au niveau du système d'exploitation plutôt que comme une VM complète. Les conteneurs permettent de créer des environnements Linux isolés avec une VM simplifiée au niveau du système d'exploitation qui dispose d'un processeur, d'une mémoire et d'un stockage dédiés. Il est ainsi possible de restreindre l'utilisation de toutes les ressources par les programmes.