<div class='slidealt'>Projets de recherche de virtualisation <a title='kvm en logiciel libre pour ARM multicoeur' href='/fr/innovation/'>pour les systèmes embarqués et le cloud</a></div> <div class='slidealt'>Solutions de virtualisation pour systèmes <a title='solutions en logiciels libres de virtualisation pour ARMv7-ARMv8' href='/fr/solutions/'>hétérogènes multicoeur ARM</a></div> <div class='slidealt'>Faites appelle à des <a title='services de full virtualisation pour kvm sur coeur ARM' href='/fr/services/'>services de virtualisation sur mesure</a></div> <div class='slidealt'>Expérimentez des extensions de <a title='virtualisation pour plateformes hétérogènes à base de processeurs ARM' href='/fr/produits/'>virtualisation KVM</a></div> <div class='slidealt'>Virtualisation KVM des E/S's pour coeurs ARMv7, ARMv8 <a title='extensions de virtualisation de plateforme VFIO des E/S par kvm sur arm en logiciel libre' href='/fr/solutions/guides/vfio-sur-arm/'>par extensions VFIO/IOMMU</a></div>

Virtualisation KVM Android sur FastModels

Un guide pour créer une machine virtuelle d'invité Android dans l'environnement de développement ARM FastModels

Ce guide de Virtual Open Systems explique comment virtualiser le système d'exploitation Android Jelly Bean dans un environnement de développement FastModels ARM Cortex-A15. Un invité Android est virtualisé par l'hyperviseur KVM sur ARM s'exécutant sur un système d'exploitation Android Jelly Bean hôte.

Introduction à la virtualisation KVM Android

La prolifération des tablettes et des smartphones a révolutionné le marché du mobile. Une grand partie des produits mobiles, tablettes et smartphones, à base de processeurs ARM utilise le système d'exploitation Android. Avec la version Jelly Bean d'Android, Google à unifié les tablettes et les appareils mobiles, en intégrant les fonctionnalités de Honeycomb et apportant des multiples améliorations dans le système d'exploitation. En outre, une génération de tablette et produits mobiles basés sur ARM Cortex-A15 MPCore a été introduit sur le marché à l'heure de la rédaction de ce guide. L'architecture ARM multicoeurs fournit un pipeline superscalaire "out-of-ordre" cadencé jusqu'à 2,5 GHz et prend en charge le jeu d'instructions ARMv7. Cortex-A15 est le premier processeur ARM qui supporte la Virtualisation par l'Assistance Matérielle (HAV) et les Extensions de Large Physical Address (LPAE).

Grâce à ces caractéristiques, ARM Cortex-A15 est adapté à la fois pour le marché des consommateurs et pour les tâches de serveurs légers, comme celle de l'exécution d'un serveur web, ou bien dans le cas d'une utilisation en micro-serveur pour le cloud computing. Dans ce contexte, représente une technologie omniprésente dans les centres de données des entreprises et des infrastructures de cloud computing. La virtualisation présente un niveau d'indirection entre le contexte logique et physique. Une telle indirection s'est avéré extrêmement puissante et efficace. Dans les plateformes modernes, pour les marchés grand public et des serveurs, cette indirection est utilisée de plusieurs façons. Par exemple dans un hyperviseur, où une couche logicielle dissocie un système d'exploitation et ses applications à partir de la couche matérielle, ou dans une Machine Virtuelle (VM), qui est une couche de logiciel émulant une plateforme matérielle.

Pour le développement de logiciels pour ces plateformes modernes basés sur Cortex-A15 utilisant les technologies de la virtualisation, il a été fourni une représentation virtuelle du matériel avant la disponibilité même de la plateforme réel. En utilisant des technologies telles que les FastModels de ARM, les concepteurs de logiciels peuvent développer par anticipation différents scénarios d'applications. Ainsi les FastModels peuvent aider les ingénieurs à déboguer, optimiser et analyser les applications logicielles et les couches du système d'exploitation, comme Android. Dans ce document, nous allons décrire comment installer et démarrer un hôte Android Jelly Bean et son invité sur ARM FastModels (voir aussi la vidéo demo de la virtualisation d'Android sur FastModels).

KVM-sur-ARM

KVM (Kernel-based Virtual Machine) est un hyperviseur en logiciel libre, largement utilisé pour réaliser la virtualisation matérielle complète (et éventuellement la paravirtualisation). KVM repose sur le noyau Linux pour l'ordonancement des processus et la gestion de la mémoire, pour gérer les machines virtuelles. Plutôt que effectuer l'émulation par lui-même, il utilise un programme pilote en espace utilisateur, comme par exemple QEMU (Quick Emulator), pour mettre en place l'espace d'adressage et des périphériques pour ses machines virtuelles.

KVM peut profiter d'extensions matérielles spécifiques à la CPU, tels que Intel VT, AMD-V et ARM, pour optimiser et accélérer le processus de la virtualisation. Le processeur ARM Cortex-A15 est le premier processeur ARM utilisant des extensions de virtualisation matérielle, pour lesquelles KVM a été porté. Virtual Open Systems est actif dans le développement du port KVM pour les plus récents processeurs d'ARM multicoeurs, comme les architectures Cortex-A15, big.LITTLE, ARMv7 et ARMv8.

Composants requis

Les composants suivants seront décrits ou fournis, pour mener à bien ce guide:

bullet Installation et configuration de la plateforme de simulation Le simulateur FastModels d'ARM est nécessaire pour générer un modèle de Cortex-A15 Versatile Express.

bullet Un noyau Linux Android prêt Nous fournissons un noyau pré-compilé qui va démarrer Android sur la plateforme de simulation.

bullet Les fichiers d'espace utilisateur Android Jelly Bean OS Les binaires pré-compilés (v4.1.1) d'Android Open Source Project (AOSP) pour démarrer le système d'exploitation hôte.

bullet QEMU et un invité Android Utiliser QEMU en liaison avec KVM, pour démarrer Android comme un invité dans le hôte Android.

Cortex-A15

Le processeur Cortex-A15 MPCore est le premier processeur de la série ARM-A à introduire des extensions de virtualisation matérielle, avec meilleures performances (jusqu'à 40% plus rapide que A9) et les caractéristiques standard de faible consommation de l'architecture ARM. Les caractéristiques principales incluent:

bullet La virtualisation complète à l'aide des extensions de couche matérielle

bullet Les extensions de Large Physical Address (LPAE)

bullet Virgule flottante VFPv4

bullet Extensions NEON SIMD avancée

bullet 1-4x SMP dans un seul cluster des processeurs et jusqu'à 2 clusters par puce

/static/vosapp/images/guides/kvm_android_on_fastmodels/images/cortex-a15-block.png

Diagramme du Cortex-A15

Versatile Express

La famille des plateformes de développement Versatile Express fournit un environnement favorable pour le prototypage et la conception de nouvelles générations de système-sur-puce. Grâce à son architecture modulaire et souple, et aux interfaces à haut débit, des applications logicielles et matérielles peuvent être développées et déboguées rapidement et efficacement.

/static/vosapp/images/guides/kvm_android_on_fastmodels/images/Versatile_Express_system_block.png

Diagramme de Versatile Express

Présentation de la Plateforme

bullet Carte mère: Se compose de plusieurs périphériques et l'addition éventuelle de cartes filles plug-in.

bullet CoreTile: Bloc CPU supportant des processeurs Cortex-A15, Cortex-A9 et Cortex-A5.

bullet LogicTiles: Les blocs optionnels des cartes filles pour améliorer la facilité d'utilisation de la plateforme, offrant diverses fonctionnalités customisable.

/static/vosapp/images/guides/kvm_android_on_fastmodels/images/model_block_diagram.png

Plateforme Versatile Express

Les Composants Périphériques

Parmi les principaux composants périphériques de la plateforme Versatile Express il est utile de mentionner :

bullet PL011 UART (communication série)

bullet Terminal Telnet

bullet PL031 Horloge temps réel

bullet PS2 Souris et Clavier

bullet PL111 LCD Couleur (Le rendement logiciel, sans GPU)

bullet L'Interface de la Carte MultiMedia (MMCI)

bullet SP804 Timer

bullet SP805 Watchdog timer

bullet PL390 Contrôleur d'Interruption Générique (GIC)

bullet SMSC91C111 Contrôleur Ethernet

bullet PL041_AACI interface audio (partiellement mises en oeuvre)

Identifiant ou inscription pour visualiser l'information complète