J'ai un appareil Android (Dell Venue 8) qui fonctionne avec un processeur Intel x86, et je me demandais s'il y avait une application comme VirtualBox ou VMware qui pouvait faire fonctionner une distros linux 32-Bit, Windows XP 32-Bit, etc, via la virtualisation. Je suis au courant de divers logiciels d'émulation comme Qemu et Bochs, mais je voulais quelque chose qui pourrait directement virtualiser au lieu d'émuler, puisque le périphérique hôte et le système d'exploitation invité sont de la même architecture.
Réponses
Trop de publicités?Je me suis retrouvé en train de trébucher dans les environs de ces forums avec des questions similaires et j'ai décidé de partager quelques informations au cas où un autre passionné d'informatique curieux et errant passerait par là.
Méthode n° 1 : EMULATION
Un enfant a réussi à faire fonctionner XP sur Android en utilisant les outils que vous avez mentionnés au début. Vous pouvez voir dans ses commentaires que la perte de performance est significative. L'un des principaux problèmes ici est l'incapacité à traduire les pilotes. Il y aura également beaucoup de goulots d'étranglement qui se produiront lorsque vous introduirez en douce des éléments non pris en charge.
Méthode #2 : ROOTING ET FLASHING
Il fallait obtenir le Root, déverrouiller le bootloader, flasher une restauration personnalisée, entre autres choses. J'ai réussi à obtenir le multiboot à partir des OS supportés par ARM : Ubuntu Touch, Cyanogen, et stock. Je pourrais probablement lancer Windows 10 dessus si je le voulais.
Méthode n°3 : VIRTUALISATION DU KERNEL
linux-kvm.org/page/Main_Page
En supposant que votre matériel supporte la virtualisation, KVM est une option pour le back-end si vous n'avez pas besoin d'une interface graphique.
Méthode n°4 : HYPERVISEUR BAREMETAL
Il y a un livre blanc sur le sujet, mais je ne peux pas poster le lien à cause de mon nouveau compte, alors voici une copie de la conclusion :
La virtualisation d'une plate-forme mobile moderne implique de traiter des dispositifs tels que la caméra, la boussole, le GPS, etc., pour lesquels il n'existe pas aujourd'hui de pilotes frontaux et dorsaux de PV. Si une seule VM a besoin d'accéder à l'un de ces périphériques à la fois, vous pouvez simplement attribuer le périphérique à la VM, en remappant les régions MMIO et les interruptions correspondantes. Si plusieurs VM ont besoin d'accéder au périphérique simultanément, vous devez écrire une nouvelle paire de pilotes PV frontend et backend. Heureusement, de nombreuses implémentations open source de PV frontend et backend pour différentes classes de périphériques existent déjà dans Linux et d'autres systèmes d'exploitation. Il est probable que quelque chose de similaire existe déjà. La difficulté d'écrire une nouvelle paire de frontaux et backends PV augmente avec la complexité du dispositif que vous essayez de partager. Si le périphérique est simple, comme la boussole, l'écriture d'une nouvelle paire de pilotes sera très facile. Si le dispositif est complexe, tel qu'un accélérateur graphique 3D, l'écriture d'une nouvelle paire de frontaux et de backends sera difficile.
Voici un autre article sur la dynamique KVM/ARM :
systems.cs.columbia.edu/archive/pub/2014/03/kvm-arm-the-design-and-implementation-of-the-linux-arm-hypervisor/
Il semble que pour l'instant nous soyons coincés avec ce que les développeurs de logiciels sont prêts à écrire pour nous, ou avec ce que nous sommes prêts à écrire pour nous-mêmes. Ces systèmes étaient censés être largement propriétaires, une certaine frustration est à prévoir, je suppose.
Vous pouvez essayer LinuxonAndroid .
L'enracinement du téléphone permet de démarrer plusieurs distributions Linux. En théorie, vous devriez être en mesure de le faire avec Déploiement Linux ou des outils similaires.
Cependant, même sans enracinement, vous serez en mesure d'exécuter des binaires Linux et même de simuler une distribution Linux. Il existe un outil appelé Termux sur Google Play Store. Mais je ne sais pas s'il est encore disponible pour les appareils X86. (Il existe des alternatives qui ne nécessitent pas non plus de Rooting : GNURoot Debian et un tas d'applications GNURoot par Corbin Champion, Debian No-Root etc ) Celles-ci sont disponibles pour les appareils ARM et je pense qu'elles sont également disponibles pour X86.
Cependant, si ce n'est pas possible, vous pouvez le faire avec un temps décent pour le piratage et une bonne application émulateur de terminal. Voir Proot-me sur github - Une implémentation de chroot en espace utilisateur qui peut créer de faux rootfs où vous pouvez installer des binaires natifs, en utilisant busybox qui offre dpkg & rpm ..
Les émulateurs de terminal sont connus pour fonctionner avec des binaires simples et petits comme busybox. Cependant, PRoot est la façon dont les applications non Root mentionnées ci-dessus mettent en œuvre la gestion des paquets Linux. Par conséquent, même si ces applications ne sont pas disponibles pour votre plateforme, il n'est pas très difficile pour un geek en vous de mettre en place un environnement Linux natif avec gestion des paquets sur n'importe quelle plateforme .
Remarque : Pour exécuter les binaires à partir d'un shell terminal, il sera nécessaire d'ajouter l'option $path
variable.
En dehors de toutes les options mentionnées, on peut également essayer d'utiliser UserLand l'application. L'application est disponible sur Google play-store pour un téléchargement facile. Il a une configuration facile pour Ubuntu. L'utilisateur n'a pas besoin d'avoir un accès Root pour pouvoir utiliser cette application, c'est donc un avantage. Pour plus d'informations, vous pouvez consulter leur page produit : https://userland.tech/
La virtualisation est désormais possible sur Android, grâce à plusieurs mises à jour et correctifs apportés au SDK. Actuellement, il existe une application qui offre la virtualisation sur Android en exécutant plusieurs "mêmes applications" sur un seul téléphone, appelée Parallel. Elle fonctionne sans manipuler les fichiers système et sans accès Root. Recherchez-la sur Google. Voici artículo l'explique aussi.