82

Можно ли, скажем, запустить VirtualBox в Windows 7 с гостем Linux, а внутри этой машины Linux запустить Bochs?

Причина в том, что я заинтересован в том, чтобы начать разработку ОС, и я обнаружил, что все учебные пособия и прочее намного проще следовать на * nix машинах. Я пытался использовать Cygwin, но я думаю, что это добавляет еще один уровень сложности и не обязательно делает вещи проще.

8 ответов8

63

Короче говоря: да.

Каждая виртуальная машина технически "независима" друг от друга, и с помощью VirtualBox вы можете легко это сделать, поскольку она поддерживается в хост-системах Windows и Linux (эмулируемых или нет). Вы можете просто использовать Windows как свою ОС "базовый хост", запустить Linux на виртуальной машине, а затем использовать эту операционную систему в качестве нового базового хоста для Bochs.

Обратите внимание, что единственным ограничением здесь является ваше оборудование. В зависимости от требований вашей разработки вам может потребоваться больше памяти или обновление до 64-разрядной операционной системы «базовый хост». При этом, если вы выбираете свои дистрибутивы Linux разумно, любая современная система должна быть способна к произвольному вложению, подобному этому.

Вы увидите улучшение производительности, если вы включите поддержку виртуализации x86 на своем компьютере (если ваша материнская плата и процессор поддерживают ее), и AFAIK, вы сможете "передать" эту функцию нескольким вложенным виртуальным машинам. Если у нас есть n виртуальных машин, вложенных друг в друга, это поддерживается, если от 1 й до n-1 й вложенной гостевой ОС поддерживает виртуализацию x86 (базовый хост также должен ее поддерживать). Обращаем ваше внимание на то, что, если вы это сделаете, все еще есть некоторые проблемы с безопасностью , поэтому примите соответствующие меры предосторожности

40

Иногда я запускаю целую виртуальную инфраструктуру VMware vSphere на VMware Workstation, а также виртуальные маршрутизаторы и коммутаторы Cisco и EMC Celerra Virtualized Storage Appliance для целей самообучения и тестирования.

Я называю это «Начальные вычисления», и это может привести к путанице. Это, однако, несколько дешевле, чем использование реальной экипировки.

30

Любой, кто читает этот вопрос, видит принятый ответ и думает, что это также относится к VirtualBox, см. Комментарий @superbatfish по первоначальному вопросу. Он хорошо понимает разницу между виртуализацией и эмуляцией.

В частности, "виртуальная машина с аппаратным обеспечением" не будет доступна в гостевой ОС "верхнего уровня" (то есть на момент написания этой статьи VirtualBox не предоставляет аппаратную виртуальную машину в гостевых ОС). С VirtualBox это означает, что вы можете создавать только 32-битные "вложенные гостевые" ОС, даже если гостевой уровень верхнего уровня является 64-битным, а ваш "настоящий" хост имеет аппаратную виртуальную машину.

Может быть, для вас это и не показательное шоу, но это стоит отметить. Мне это нужно для того, чтобы запустить Vagrant на гостевом компьютере Ubuntu в Windows, для тестирования поваренной книги Chef.

11

Linux-KVM имеет некоторую поддержку для вложенных виртуальных машин. Я спросил на IRC-канале KVM и получил следующую информацию (но не верьте мне на слово, попробуйте сами):

  • Процессоры AMD должны хорошо работать, известно, что гости с Xen и Hyper-V работают,
  • Процессорам Intel нужен последний исходный код KVM Git, и работают только гости с KVM

Я еще не пробовал это сам. Поиск "KVM nested" должен дать вам достаточно информации, чтобы попробовать его самостоятельно.

РЕДАКТИРОВАТЬ: KVM будет работать только на хосте Linux. Я не получил никакой достоверной информации о программном обеспечении для виртуализации Windows относительно правильной поддержки вложенных ВМ. Под «правильным» я подразумеваю, что гипервизор предоставляет гостю расширения виртуализации. Вы всегда можете запустить вложенную виртуальную машину, используя чистый программный гипервизор (например, динамический перевод), но это будет заметно медленнее.

РЕДАКТИРОВАТЬ: Bochs, который вы упомянули, является программным гипервизором. Это означает, что он всегда будет медленным и бесполезным, если гипервизор на хосте выставляет расширения виртуализации гостю (как это делает KVM). Однако большинство других программ виртуализации (KVM, VirtualBox, VMWare) могут использовать эти расширения и будут работать намного лучше, если они будут доступны.

3

Это возможно, но не очень выполнимо, особенно для развития. Вероятно, вам следует рассматривать Linux в качестве вашей родной ОС или использовать второй блок для размещения виртуальных машин.

1

Подробное описание этого процесса находится на этой странице:https://wiki.openstack.org/wiki/XenServer/VirtualBox

В сетевых картах машины VirtualBox вы должны разрешить все в Promiscuous Mode и некоторых других опциях, и вы можете иметь os внутри vm, например, Xenserver внутри vm, например, VirtualBox.

1

Да, вы можете запустить виртуальную машину на виртуальной машине. Я получил компьютер под управлением Windows 7 Ultimate x64, запустил ту же операционную систему на виртуальной машине, а затем запустил 32-разрядную версию (она не могла обрабатывать 64-разрядную версию на 3-м уровне) на 3-м уровне. Это было довольно запаздывающе, но мне удалось добраться до нью-йоркских времен с помощью Internet Explorer. Это может быть сложно, если у вас нет мощного компьютера, но вы используете Linux и Bochs, которые являются легковесными операционными системами, поэтому это должно быть возможно.

-2

Да, это возможно, учитывая, что ваш компьютер достаточно мощный, чтобы справиться с этим.

На моей машине (i7 4770S, 16 ГБ ОЗУ) мне удалось получить уровень виртуальной машины 4.5 (последний сбой в половине случаев).

Я использовал VMware Player 12, потому что VirtualBox не любил эмулировать VM-x, и это было намного медленнее. Сейчас я пытаюсь заставить W2K работать на XP, но VMware не может установить, VirtualBox производит BSOD, поэтому я пытаюсь использовать QEMU.

Смотрите этот скриншот (один из самых красивых скриншотов, которые я когда-либо видел):

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .