Virtualisation complète KVM pour SoC embarqué ARM
La virtualisation des systèmes embarqués a été développée assez récemment. Avec une complexité accrue à la fois du matériel et des logiciels, la virtualisation devient de plus en plus une technologie clé. Les dispositifs à base de processeurs ARM connaissent une expansion rapide dans les smartphones, les tablettes, les netbooks, tous systèmes embarqués, dans les réseaux, les serveurs et dans l'automobile. Les plateformes qui intègrent des architectures de processeurs ARM sont présent aujourd'hui dans la plus part des segments de marché. Alors que la diffusion des processeurs ARM a bénéficié de leurs avantages en matière d'efficacité de consommation d'énergie, ils continuent d'améliorer les performances, défiant ainsi les processeurs x86 dans des nombreuses classes d'applications.
Ceci stimule le développement de nouveaux microserveurs à base d'ARM, en concurrence directe avec les solutions traditionnels dans les marchés des serveurs et des PC, pour lesquels la virtualisations joue un rôle de premier ordre. KVM est un hyperviseur en logiciel libre mis en œuvre dans le noyau linux, qui permet la création de machines virtuelles à l'aide de pilotes de l'espace utilisateur. KVM fonctionne en exposant une interface simple à l'espace utilisateur (comme montré dans la figure ci-dessous), à travers laquelle un processus normal devient une machine virtuelle. Normalement l'émulateur rapide QEMU est utilisé du côté de l'espace utilisateur pour émuler les périphériques d'entrée sortie (E/S), tandis que KVM gère la virtualisation des processeurs et de la mémoire. Virtual Open Systems est en premier ligne dans le développement de KVM sur ARM et de toute extension personnalisée, spécifique à la mise en œuvre architecturale du SoC ARM.
Avantages du logiciel libre KVM comparé à la virtualisation propriétaire
Le facteur de différenciation primaire entre la virtualisation KVM et d'autres techniques de virtualisation est la mise en œuvre efficace utilisé par KVM. En d'autres solutions de virtualisation, le moniteur de machine virtuelle (VMM) ré-met en œuvre tous les principaux services comme l'ordonnanceur, le gestionnaire de mémoire etc. Il en résulte un code relativement grand et complexe. Au contraire, KVM tire parti de la base de code qui existe déjà dans le noyau linux, en assurant ainsi un code simplifié pour l'hyperviseur. Cet aspect a permis à l'hyperviseur KVM d'évoluer à un rythme impressionnant et de devenir l'une des solutions de virtualisation la plus complète et recherchée.
KVM virtualise les processeurs et la mémoire au niveau du noyau, alors que les dispositifs d'entrée/sortie, tels que les interfaces réseau et le stockage, sont émulés dans l'espace utilisateur. Une interface vers l'espace utilisateur est exposé par KVM, de sorte que les dispositifs peuvent être émulés par l'application qui configure la machine virtuelle. En outre, la même approche peut être étendue à la virtualisation de GPU, des pilotes matériels et des couches d'interfaces standard d'API telles que OpenGL et OpenMAX. Par conséquent aujourd'hui KVM-sur-ARM est très populaire pour les raisons suivantes:
- Support pour tout système d'exploitation d'invité. L'hyperviseur en logiciel libre KVM utilise la virtualisation matérielle pour supporter presque tout système d'exploitation d'invité avec une performance quasi totale.
- Une solution en logiciel libre permet d'éviter les effets de verrouillage des fournisseurs. En effet, des solutions propriétaire de virtualisation se basent sur le versements de redevances; en outre, le coût de développement et la mise à jour du code pour des futures architectures de processeurs sont coûteux.