Чи можете ви запустити емулятор машини (Bochs) всередині віртуальної машини?


82

Чи можливо, скажімо, запустити VirtualBox в Windows 7 з гостем Linux, а всередині цієї машини Linux запустити Bochs?

Причиною є те, що мені цікаво почати розробку ОС, і я виявив, що всі підручники та інше набагато простіше дотримуватися на * nix-машинах. Я спробував використовувати Cygwin, але я думаю, що це додає ще один складний рівень і не обов’язково полегшує справи.


1
Подвійне завантаження Linux та Windows зробити досить просто, а кінцевий результат працює набагато швидше. Єдиний справжній мінус, який вам доведеться перезавантажити для переключення ОС.
lyallcooper

@AUAnonymous: Я це знаю, але хочу продовжувати працювати з Windows.
Хав'єр

Це завжди завжди варіант, якщо вам не вдається налагодити роботу візків або якщо вони працюють не надто добре.
lyallcooper

12
Я буду стверджувати, що це питання погано названо. Bochs - це не програмне забезпечення для віртуалізації в тому ж сенсі, що і VirtualBox та VMWare. Це емулятор. Він не пропонує віртуалізації процесора. Відмінність тут не просто педантична. Ви можете очікувати, що емулятор, наприклад, Bochs, працюватиме в VM з досить високою впевненістю. Запуск справжнього програмного забезпечення для віртуалізації, «вкладеного» у віртуальний комп'ютер, є набагато складнішою проблемою. Наприклад, ця функція була реалізована лише у VMWare станом на Fusion 4 .
superbatfish

2
VirtualMachine-ception: D У вас є небезпека втратити дані про те, скільки рівнів знаходиться у віртуальних машинах. Того моменту, коли ти зрозумієш, що ти просто зіпсував фізичний жорсткий диск замість одного з вкладених віртуальних, на яких мав бути випробуваний: P
developerbmw

Відповіді:


63

Довга коротка історія: так .

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

Зверніть увагу, що вашим єдиним обмеженням тут є обладнання. Залежно від вимог вашої розробки, вам може знадобитися більше пам'яті або оновлення до 64-бітної операційної системи "базовий хост". Якщо говорити, якщо ви оберете свій дистрибутив Linux розумно, будь-яка сучасна система повинна бути здатна до довільного вкладення, як це.

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


2
Здається, це насправді працює. Зрештою, якби мені потрібна швидкість, я б не використовував Bochs в першу чергу. Хоча я не є найбільш прихильним, я вважаю, що ваша відповідь є більш повною і суттєвою, тому я прийму її.
Хав'єр

Це тільки я, чи не здається, що ця відповідь стосується роботи декількох віртуальних машин, а не вкладених ?
Томас Падрон-Маккарті

@Thomas Padron-McCarthy, я був говорити про вкладені з них. Я змінив відповідь, щоб бути більш чітким щодо цього.
Прорив

7
Bochs - не найкращий тест для цього загального питання, оскільки це емулятор, а не VM. (Дивіться мій коментар до ОП.)
superbatfish

Чи не суперечить ця відповідь відповіддю TobyJ та невирішеним запитом функції VirtualBox, на який посилається його відповідь?
ChrisW

40

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

Я називаю це «початковими обчисленнями», і це може стати досить заплутаним. Однак це дещо дешевше, ніж використання реальної передачі.


1
Це повинно довести життєздатність цього. vinf.net/2010/02/25/…
Майк

1
@Mike: Ваша інформація про посилання, що працює під ESXi в ESX, але я використовував деякі з цих посилань, як-от TechHead, який є одним з головних сайтів, який в першу чергу завів мене у віртуалізацію. Також є багато інформації про запуск інфраструктури vSphere у VMware Workstation: google.co.uk/…
paradroid

2
Ви знаєте, що термін "зародження" не стосується поняття [річ всередині речі], правда?
ekillaby

7
@countfloortiles: Звичайно, це посилання на фільм.
парадороїд

1
@paradroid ви мали назвати "CompCeption" або "VirtuaCeption".
Мохд Абдул Муджіб

32

Кожен, хто читає це питання, бачить прийняту відповідь і думає, що це стосуватиметься і VirtualBox, будь ласка, дивіться коментар від @superbatfish до оригінального питання. Він гарно говорить про різницю між віртуалізацією та емуляцією.

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

Можливо, для вас це не буде шоустоппер, але це варто зазначити. Мені це було потрібно для того, щоб запустити Vagrant в гості Ubuntu всередині Windows, для тестування кухарської книги Chef.


Отже, чи вдалося вам запустити Vagrant на гість Ubuntu всередині хоста Windows?
вісбукі

2
@wisbucky так, я міг би запустити його в 32-бітному режимі, але не в 64-бітному. Оскільки всі мої виробничі системи 64-бітні, це не був ідеальним тестом, але все ще працював досить добре.
Toby J

3
Якщо я не помиляюся, тепер ви можете запустити 64-розрядні коробки Vagrant у програмі Vbuntu VM за допомогою постачальника Docker для Vagrant, оскільки контейнери не покладаються на апаратну віртуалізацію: vagrantup.com/docs/docker . Хоча вікно Vagrant, яке ви використовуєте, має підтримувати це.
Брендан

@Brendan, якщо вам не потрібно запускати конкретні 64-бітні програми, то використання мультимедійного контейнера порівняно з 32-бітовою віртуальною скринькою, наскільки ефективність однакова, чи це?
серуп

11

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

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

Я ще цього не пробував. Пошук за "KVM вкладеним" повинен дати вам достатньо інформації, щоб спробувати його самостійно.

EDIT: KVM працюватиме лише на хості Linux. Я не отримав достовірної інформації про програмне забезпечення для віртуалізації Windows щодо належної підтримки вкладеної VM. Під "належним" я маю на увазі, що гіпервізор виставляє гостям розширення віртуалізації. Ви завжди можете запустити вкладений VM, використовуючи чистий програмний гіпервізор (наприклад, динамічний переклад), але це буде помітно повільніше.

EDIT: Bochs, про який ви згадали, - гіпервізор лише для програмного забезпечення. Це означає, що це буде завжди повільно, і це нерелевантно, якщо гіпервізор на хості виставить гостям розширення віртуалізації (як це робить KVM). Більшість інших програм для віртуалізації (KVM, VirtualBox, VMWare), однак, можуть скористатися цими розширеннями та матимуть набагато кращі результати, якщо вони будуть доступні.


До вашої другої редакції: Отже, якщо я просто збираюся запускати Bochs (і я не надто переймаюся, якщо це повільно), чи потрібно мені турбуватися про KVM?
Хав'єр

Якщо ви запускаєте Bochs у віртуальній машині, він буде настільки ж повільним, як якщо б ви запустили його на апаратному забезпеченні (якщо припустимо, що на вашому апаратному забезпеченні є розширення для віртуалізації, тобто AMD-v або VT-x, і вони включені в BIOS; інакше це буде ще повільніше, як і все в VM).
Ambroz Bizjak

Що стосується віртуалізації Windows, то, здається, це можливо, але (станом на червень 2016 року) працює лише з HyperV-на-HyperV, зі складаннями ОС Windows Insider та з обладнанням Intel. Від msdn.microsoft.com/en-us/virtualization/hyperv_on_windows/…
Марк

3

Це можливо, але не дуже можливо, особливо для розвитку. Напевно, ви повинні дивитися на роботу Linux як на рідну ОС або отримання другого поля для розміщення VM.


Я розумію, що це, ймовірно, складно, але що саме ви маєте на увазі під "не дуже здійсненним"?
Хав'єр

1
Я б сказав, що @peelman означає: "Це занадто повільно для практичних цілей". Я сам цього не пробував.
КарлФ

@carlf точно.
peelman

1

Детальний опис цього процесу знаходиться на цій сторінці: https://wiki.openstack.org/wiki/XenServer/VirtualBox

У мережевих картках VirtualBox машинного типу потрібно встановити, щоб дозволити всі в режимі проміску та декількох інших опцій, і ви можете мати os всередині vm, наприклад Xenserver всередині vm, наприклад VirtualBox.


1

Так , ви можете запустити віртуальну машину у віртуальній машині. Що я зробив, це придбати комп'ютер Windows 7 Ultimate x64, запустити ту саму ОС на віртуальній машині, а потім запустити 32-бітну версію (вона не могла обробити 64 біт на 3-му шарі) на 3-му шарі. Це було досить мляво, але мені вдалося дістатися до Нью-Йорк часів на Internet Explorer з ним. Це може бути складно, якщо у вас немає потужного комп’ютера, але ви працюєте з Linux та Bochs, які є легкими операційними системами, тому це повинно бути можливим.


-2

Так , можливо, враховуючи, що ваш комп'ютер достатньо потужний, щоб ним впоратися.

На моїй машині (i7 4770S, 16 Гб оперативної пам’яті) мені вдалося отримати рівень VM-ception-ness 4,5 (останній випадає з половини часу).

Я використовував VMware Player 12, тому що VirtualBox не любив емуляцію VM-x, і це було реально повільніше. Зараз я намагаюся змусити W2K працювати на XP, але VMware не може встановити, VirtualBox виробляє BSOD, тому я намагаюся використовувати QEMU.

Дивіться цей знімок екрана (один з найкрасивіших скріншотів, який я коли-небудь бачив):

введіть тут опис зображення


Яку нову інформацію надає ця відповідь?
Рамхаунд
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.