83 votes

Peut-on exécuter un émulateur de machine (Bochs) à l'intérieur d'une machine virtuelle ?

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

La raison en est que je souhaite me lancer dans le développement de systèmes d'exploitation, et j'ai constaté que tous les tutoriels et autres 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.

63voto

Breakthrough Points 33693

Pour faire court : oui .

Chaque machine virtuelle est techniquement "indépendante" d'une autre, et avec VirtualBox Vous pouvez facilement le faire, car il est pris en charge par 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 dans une VM, puis utiliser la fonction que comme nouveau système d'exploitation de base pour Bochs.

Notez que votre seule limite ici est votre matériel. En fonction des exigences de votre développement, vous pouvez avoir besoin de plus de mémoire ou d'une mise à niveau vers un système d'exploitation "base-hôte" 64 bits. Ceci étant dit, si vous choisissez judicieusement vos distros Linux, tout système moderne devrait être capable d'une telle imbrication arbitraire.

Vous constaterez une amélioration des performances si vous activez virtualisation x86 sur votre ordinateur (si votre carte mère et votre CPU le prennent en charge), et, à ma connaissance, vous pouvez "faire passer" cette fonction dans plusieurs machines virtuelles imbriquées. Si nous avons n Les machines virtuelles imbriquées les unes dans les autres sont prises en charge à condition que le système d'exploitation de l'entreprise soit en mesure d'assurer le fonctionnement de la machine virtuelle. 1 st à la n-1 th Le système d'exploitation invité imbriqué prend en charge la virtualisation x86 (l'hôte de base doit également la prendre en charge). Notez qu'il y a encore des certains problèmes de sécurité à connaître si vous faites cela, alors prenez les précautions appropriées.

40voto

paradroid Points 22121

Il m'arrive d'exécuter toute une infrastructure virtuelle VMware vSphere dans VMware Workstation, ainsi que des routeurs et des commutateurs virtuels Cisco et un dispositif de stockage virtualisé EMC Celerra, à des fins d'auto-apprentissage et de test.

Je l'appelle "Inception Computing", et ça peut être assez déroutant. C'est cependant un peu moins cher que d'utiliser le vrai matériel.

32voto

Tobias J Points 1192

Pour tous ceux qui lisent cette question, voient la réponse acceptée, et pensent que cela s'appliquera également à VirtualBox, veuillez voir commentaire de @superbatfish sur la question originale. Il fait une bonne remarque sur la différence entre la virtualisation et l'émulation.

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

Ce n'est peut-être pas un obstacle pour vous, mais cela vaut la peine d'être noté. J'en avais besoin pour exécuter Vagrant sur un invité Ubuntu sous Windows, pour tester le livre de recettes Chef.

11voto

Ambroz Bizjak Points 4595

Linux-KVM a un certain support pour les machines virtuelles imbriquées. J'ai posé la question sur le canal IRC de KVM et j'ai obtenu les informations suivantes (mais ne me croyez pas sur parole, essayez vous-même) :

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

Je ne l'ai pas encore essayé moi-même. Une recherche sur "KVM nested" devrait vous donner assez d'informations pour l'essayer vous-même.

EDIT : KVM fonctionnera uniquement sur un hôte Linux. Je n'ai pas obtenu d'informations fiables sur les logiciels de virtualisation Windows concernant la prise en charge correcte des VM imbriquées. Par "correct", j'entends que l'hyperviseur expose les extensions de virtualisation à l'invité. Vous pouvez toujours exécuter une VM imbriquée à l'aide d'un hyperviseur purement logiciel (par exemple, la traduction dynamique), mais cela sera sensiblement plus lent.

EDIT : Bochs, que vous avez mentionné, est un hyperviseur uniquement logiciel. Cela signifie qu'il sera toujours lent, et qu'il est sans importance si l'hyperviseur sur l'hôte expose des extensions de virtualisation à l'invité (comme le fait KVM). La plupart des autres logiciels de virtualisation (KVM, VirtualBox, VMWare) peuvent cependant utiliser ces extensions et seront bien plus performants si elles sont disponibles.

3voto

ajushi Points 466

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 boîte pour héberger les VM.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X