Question Pouvez-vous exécuter un émulateur de machine (Bochs) dans une machine virtuelle?


Est-il possible, par exemple, d'exécuter VirtualBox sur Windows 7 avec un invité Linux, et dans cette machine Linux, d'exécuter Bochs?

La raison en est que je suis intéressé par le développement de systèmes d'exploitation, et j'ai trouvé que tous les tutoriels et autres choses sont beaucoup plus faciles à suivre sur les machines * nix. J'ai essayé d'utiliser Cygwin, mais je pense que cela ajoute une autre couche de complexité et ne rend pas nécessairement les choses plus faciles.


82
2017-07-19 17:33


origine


Le double démarrage est Linux et Windows est relativement facile à réaliser et le résultat final est beaucoup plus rapide. Le seul inconvénient réel est que vous devez redémarrer pour changer de système d'exploitation. - lyallcooper
@AUAnonymous: Je le sais, mais je veux continuer à utiliser Windows. - Javier
C'est toujours une option si vous ne parvenez pas à faire fonctionner les VM ou si elles ne fonctionnent pas trop bien. - lyallcooper
Je vais faire valoir que cette question est mal titrée. Bochs n'est pas un logiciel de virtualisation au même titre que VirtualBox et VMWare. C'est un émulateur. Il n'offre aucune virtualisation de processeur. La distinction ici n’est pas simplement pédante. Vous pouvez vous attendre à ce qu'un émulateur comme bochs fonctionne avec une confiance assez élevée. L'exécution d'un véritable logiciel de virtualisation "imbriqué" dans une machine virtuelle est un problème beaucoup plus délicat. Par exemple, cette fonctionnalité était uniquement implémenté dans VMWare dès Fusion 4. - superbatfish
VirtualMachine-ception: D Vous risquez de perdre de vue le nombre de niveaux contenus dans les machines virtuelles. Ce moment où vous vous rendez compte que vous venez de corrompre votre disque dur physique au lieu de l’un des disques virtuels imbriqués que vous deviez tester: P - developerbmw


Réponses:


Longue histoire courte: Oui.

Chaque machine virtuelle est techniquement "indépendante" les unes des autres et avec VirtualBoxVous pouvez facilement le faire, car il est pris en charge sur les systèmes d'exploitation hôtes Windows et Linux (émulés ou non). Vous pouvez simplement utiliser Windows comme système d'exploitation "hôte de base", exécuter Linux sur une machine virtuelle, puis utiliser cette système d'exploitation en tant que nouvel hôte de base pour Bochs.

Notez que votre seule limitation est votre matériel. Selon les exigences de votre développement, vous aurez peut-être besoin de plus de mémoire ou d'une mise à niveau vers un système d'exploitation «hôte de base» 64 bits. Cela étant dit, si vous choisissez judicieusement vos distributions Linux, tout système moderne devrait pouvoir effectuer une imbrication arbitraire comme celle-ci.

Vous verrez une amélioration des performances si vous activez virtualisation x86 support sur votre ordinateur (si votre carte mère et le processeur le supportent), et AFAIK, vous pouvez "passer" cette fonctionnalité à plusieurs machines virtuelles imbriquées. Si nous avons n les machines virtuelles imbriquées les unes dans les autres, ceci est supporté tant que 1st au n-1e L'OS invité imbriqué prend en charge la virtualisation x86 (l'hôte de base doit également le prendre en charge). Notez qu'il y a encore quelques problèmes de sécurité pour savoir si vous faites cela, prenez les précautions appropriées.


63
2017-07-19 18:49



Il semble que cela fonctionne réellement. Après tout, si j'avais besoin de vitesse, je n'utiliserais pas Bochs en premier. Bien que ce ne soit pas le plus relevé, je pense que votre réponse est la plus complète et pertinente, alors je l'accepterai. - Javier
Est-ce juste moi ou cette réponse ne semble pas être à propos de la course plusieurs machines virtuelles, pas imbriqué ceux? - Thomas Padron-McCarthy
@ Thomas Padron-McCarthy, je était parler de imbriqués. J'ai modifié la réponse pour être plus explicite à cet égard. - Breakthrough
Bochs n'est pas le meilleur testeur pour cette question générale, car il s'agit d'un émulateur et non d'une VM. (Voir mon commentaire sur l'OP.) - superbatfish


J'exécute parfois une infrastructure virtuelle VMware vSphere complète dans VMware Workstation, avec des routeurs et des commutateurs Cisco virtuels et EMC Celerra Virtualized Storage Appliance, à des fins d'auto-apprentissage et de test.

Je l'appelle «Inception Computing», et cela peut être assez compliqué. Il est cependant un peu moins cher que d'utiliser le véritable équipement.


40
2017-07-19 19:40



Cela devrait prouver la viabilité de ceci. vinf.net/2010/02/25/... - Mike Soule
@Mike: les détails de votre lien sous ESXi dans ESX, mais j'ai utilisé certains liens, comme TechHead, qui est l'un des principaux sites qui m'a amené à la virtualisation. De nombreuses informations sur l'exécution d'une infrastructure vSphere dans VMware Workstation sont également disponibles: google.co.uk/... - paradroid
Vous savez que le terme «création» ne se réfère pas au concept [chose dans une chose], n'est-ce pas? - ekillaby
@countfloortiles: C'est une référence au film, bien sûr. - paradroid
@paradroid vous devriez avoir nommé "CompCeption" ou "VirtuaCeption". - 9KSoft


Pour ceux qui lisent cette question, voient la réponse acceptée et pensent que cela s'appliquera également à VirtualBox. commentaire de @superbatfish sur la question originale. Il fait un bon point sur la différence entre virtualisation et émulation.

Plus précisément, "VM assistée par matériel" ne sera pas disponible dans le système d’exploitation invité "de niveau supérieur" (c’est-à-dire, au moment de la rédaction de ce document, VirtualBox ne fournit pas de VM matérielle dans les systèmes d'exploitation invités). Avec VirtualBox, cela signifie que vous ne pouvez créer que des systèmes d'exploitation "imbriqués" 32 bits, même si l'invité de niveau supérieur a un bit 64 et que votre "véritable" hôte possède une machine virtuelle.

Ne peut pas être un spectacle pour vous, mais il est intéressant de noter. J'avais besoin de ceci pour exécuter Vagrant sur un invité Ubuntu dans Windows, pour tester les livres de recettes Chef.


30
2018-05-29 16:27



Avez-vous pu lancer Vagrant sur un invité Ubuntu dans un hôte Windows? - wisbucky
@wisbucky oui, je pourrais l'exécuter en mode 32 bits, mais pas en 64 bits. Étant donné que tous mes systèmes de production sont en 64 bits, ce n’était pas un test parfait mais fonctionnait quand même assez bien. - Toby J
À moins que je ne me trompe, vous pouvez maintenant lancer des boîtes Vagrant 64 bits dans la machine virtuelle Ubuntu en utilisant le fournisseur Docker pour Vagrant, car les conteneurs ne reposent pas sur la virtualisation matérielle: vagrantup.com/docs/docker. La boîte Vagrant que vous utilisez devra supporter cela, cependant. - Brendan
@Brendan, sauf si vous devez exécuter des programmes 64 bits spécifiques, puis utiliser le conteneur Docker par rapport à la boîte virtuelle 32 bits, est-ce que la performance est la même ou est-ce exact? - serup


Linux-KVM prend en charge certains ordinateurs virtuels imbriqués. J'ai demandé sur le canal IRC KVM et j'ai obtenu les informations suivantes (mais ne me croyez pas, essayez-le vous-même):

  • Les processeurs AMD devraient bien fonctionner, les invités avec Xen et Hyper-V sont connus pour fonctionner,
  • Les processeurs Intel ont besoin du dernier code source KVM Git, et seuls les invités avec KVM fonctionnent

Je n'ai pas encore essayé cela. Une recherche pour "KVM imbriqué" devrait vous donner suffisamment d'informations pour l'essayer vous-même.

EDIT: KVM ne fonctionnera que sur un hôte Linux. Je n'ai pas eu d'informations fiables sur le logiciel de virtualisation Windows concernant la prise en charge correcte des machines virtuelles imbriquées. Par «bon», je veux dire que l'hyperviseur expose les extensions de virtualisation à l'invité. Vous pouvez toujours exécuter une machine virtuelle imbriquée en utilisant un hyperviseur logiciel pur (par exemple, une traduction dynamique), mais cela sera nettement plus lent.

EDIT: Bochs, que vous avez mentionné, est un hyperviseur exclusivement logiciel. Cela signifie qu’il sera toujours lent et qu’il n’est pas pertinent si l’hyperviseur sur l’hôte expose des extensions de virtualisation à l’invité (comme le fait KVM). La plupart des autres solutions de virtualisation (KVM, VirtualBox, VMWare) peuvent toutefois utiliser ces extensions et fonctionneront mieux si elles sont disponibles.


11
2017-07-19 18:36



Pour votre deuxième édition: Donc, si je ne fais que lancer Bochs (et que je ne m'en soucie pas trop si c'est lent), dois-je m'inquiéter du truc KVM? - Javier
Si vous exécutez Bochs à l'intérieur de la machine virtuelle, ce sera aussi lent que si vous l'exécutiez sur du matériel (en supposant que votre matériel possède des extensions de virtualisation, à savoir AMD-v ou VT-x et qu'elles soient activées dans le BIOS). encore plus lent, comme tout dans la VM). - Ambroz Bizjak
En ce qui concerne la virtualisation Windows ... cela semble possible, mais (à partir de juin 2016) ne fonctionne qu'avec HyperV-on-HyperV, avec les versions de système d'exploitation "Windows Insider" et sur le matériel Intel. De msdn.microsoft.com/en-us/virtualization/hyperv_on_windows/ - Mark


C'est possible, mais pas très réalisable, surtout pour le développement. Vous devriez probablement envisager d’exécuter Linux en tant que système d’exploitation natif, ou d’obtenir une deuxième zone pour héberger les machines virtuelles.


3
2017-07-19 17:47



Je comprends que cela risque d'être compliqué, mais que voulez-vous dire exactement par "pas très faisable"? - Javier
Je parierais que @peelman signifie: "C'est trop lent pour des raisons pratiques." Je ne l'ai pas essayé moi-même. - CarlF
@carlf précisément. - peelman


La description détaillée de ce processus est sur cette page: https://wiki.openstack.org/wiki/XenServer/VirtualBox

Dans les cartes réseau VirtualBox, vous devez définir autoriser tout en mode Promiscuous et plusieurs autres options et vous pouvez avoir os dans vm, par ex. Xenserver dans vm, par exemple VirtualBox.


1
2018-02-08 02:17





Oui, vous pouvez exécuter une machine virtuelle sur une machine virtuelle. Ce que j'ai fait a été d'obtenir un ordinateur Windows 7 Ultimate x64, d'exécuter le même système d'exploitation sur la machine virtuelle, puis d'exécuter une version 32 bits (il ne pouvait pas gérer 64 bits sur la 3ème couche). C'était assez laggy mais j'ai réussi à atteindre les temps new york sur internet explorer avec elle. Cela peut être difficile si vous n'avez pas un ordinateur puissant, mais vous utilisez Linux et Bochs, qui sont des systèmes d'exploitation légers, donc cela devrait être possible.


1
2017-08-09 01:02





Oui, c'est possible, étant donné que votre ordinateur est assez puissant pour le gérer.

Sur ma machine (i7 4770S, 16 Go de RAM), j'ai réussi à obtenir un niveau de VM-ception-ness de 4,5 (le dernier casse la moitié du temps).

J'ai utilisé VMware Player 12, car VirtualBox n'aimait pas émuler VM-x, et il était relativement lent. En ce moment, j'essaie de faire fonctionner W2K sur XP, mais VMware ne peut pas installer, VirtualBox produit des BSOD, donc j'essaie d'utiliser QEMU.

Voir cette capture d'écran (une des plus belles captures d'écran que j'ai jamais vues):

enter image description here


-2
2017-11-03 00:46



Quelles nouvelles informations cette réponse fournit-elle? - Ramhound