Bisakah Anda menjalankan emulator mesin (Bochs) di dalam mesin virtual?

82

Apakah mungkin untuk, katakanlah, menjalankan VirtualBox pada Windows 7 dengan tamu Linux, dan di dalam mesin Linux itu menjalankan Bochs?

Alasannya adalah karena saya tertarik untuk memulai pengembangan OS, dan saya telah menemukan bahwa semua tutorial dan hal-hal lebih mudah untuk diikuti pada mesin * nix. Saya mencoba menggunakan Cygwin, tetapi saya pikir itu menambah lapisan kompleksitas dan tidak membuat semuanya menjadi lebih mudah.

Javier
sumber
1
Dual booting adalah Linux dan Windows relatif mudah dilakukan, dan hasil akhirnya berjalan jauh lebih cepat. Satu-satunya downside adalah Anda harus reboot untuk beralih OS.
lyallcooper
@AUAnonim: Saya tahu itu, tapi saya ingin tetap menjalankan Windows.
Javier
Itu selalu merupakan opsi jika Anda tidak berhasil membuat VM bekerja atau jika mereka tidak bekerja dengan baik.
lyallcooper
12
Saya akan berpendapat bahwa pertanyaan ini tidak memiliki judul yang bagus. Bochs bukan perangkat lunak virtualisasi dalam arti yang sama dengan VirtualBox dan VMWare. Ini adalah emulator. Tidak menawarkan virtualisasi CPU. Perbedaan di sini bukan hanya bersifat mendidik. Anda dapat mengharapkan emulator seperti telur bekerja di dalam VM dengan kepercayaan yang cukup tinggi. Menjalankan perangkat lunak virtualisasi sejati "bersarang" di VM adalah masalah yang jauh lebih rumit. Misalnya, fitur ini hanya diterapkan di VMWare pada Fusion 4 .
superbatfish
2
VirtualMachine-ception: D Anda memiliki risiko kehilangan jejak berapa banyak level dalam mesin virtual Anda. Saat itu ketika Anda menyadari bahwa Anda baru saja merusak hard disk fisik Anda dan bukannya salah satu yang bersarang virtual yang seharusnya Anda uji pada: P
developerbmw

Jawaban:

63

Singkat cerita: ya .

Setiap mesin virtual secara teknis "independen" satu sama lain, dan dengan VirtualBox , Anda dapat dengan mudah melakukan ini, karena didukung pada sistem operasi host Windows dan Linux (ditiru atau tidak). Anda hanya bisa menggunakan Windows sebagai "dasar-tuan" OS, menjalankan Linux di VM, dan kemudian menggunakan yang sistem operasi sebagai dasar-host baru untuk Bochs.

Perhatikan bahwa satu-satunya batasan Anda di sini adalah perangkat keras Anda. Tergantung pada persyaratan pengembangan Anda, Anda mungkin memerlukan lebih banyak memori, atau upgrade ke sistem operasi "host-host" 64-bit. Yang sedang berkata, jika Anda memilih distro Linux Anda dengan bijak, setiap sistem modern harus mampu bersarang sewenang-wenang seperti ini.

Anda akan melihat peningkatan kinerja jika Anda mengaktifkan dukungan virtualisasi x86 di komputer Anda (jika motherboard dan CPU Anda mendukungnya), dan AFAIK, Anda dapat "melewati" fitur ini ke beberapa mesin virtual bersarang. Jika kita memiliki nmesin virtual bersarang di eachother, ini didukung asalkan 1st ke n-1th bersarang OS tamu memiliki dukungan untuk virtualisasi x86 (dasar tuan rumah juga harus mendukung itu). Harap perhatikan bahwa masih ada beberapa masalah keamanan yang harus diperhatikan jika Anda melakukan ini, jadi lakukan tindakan pencegahan yang sesuai.

Penerobosan
sumber
2
Sepertinya itu benar-benar berfungsi. Lagi pula, jika saya membutuhkan kecepatan, saya tidak akan menggunakan Bochs di tempat pertama. Meskipun bukan yang paling terpilih, saya merasa jawaban Anda lebih lengkap dan to the point, jadi saya akan menerimanya.
Javier
Apakah hanya saya, atau bukankah jawaban ini sepertinya menjalankan beberapa mesin virtual, bukan yang bersarang ?
Thomas Padron-McCarthy
@Thomas Padron-McCarthy, saya sedang berbicara tentang orang-orang bersarang. Saya mengubah jawaban menjadi lebih eksplisit dalam hal ini.
Terobosan
7
Bochs bukan test-case terbaik untuk pertanyaan umum ini, karena ini adalah emulator, bukan VM. (Lihat komentar saya di OP.)
superbatfish
Bukankah jawaban ini bertentangan dengan jawaban TobyJ dan permintaan fitur VirtualBox yang belum terselesaikan yang mana jawabannya terhubung?
ChrisW
40

Saya kadang-kadang menjalankan seluruh infrastruktur virtual VMware vSphere dalam VMware Workstation, bersama dengan router dan switch Cisco virtual dan EMC Celerra Virtualized Storage Appliance, untuk belajar mandiri dan tujuan pengujian.

Saya menyebutnya 'Inception Computing', dan itu bisa sangat membingungkan. Namun itu agak lebih murah daripada menggunakan gigi asli.

paradroid
sumber
1
Ini harus membuktikan kelayakan ini. vinf.net/2010/02/25/…
Mike Soule
1
@ Mike: Detail tautan Anda menjalankan ESXi di dalam ESX, tapi saya telah menggunakan beberapa tautan, seperti TechHead, yang merupakan salah satu situs utama yang membuat saya melakukan virtualisasi. Ada banyak informasi tentang menjalankan infrastruktur vSphere di dalam VMware Workstation juga: google.co.uk/…
paradroid
2
Anda tahu bahwa istilah "permulaan" tidak merujuk pada konsep [sesuatu dalam suatu benda], bukan?
ekillaby
7
@countfloortiles: Ini referensi ke film, tentu saja.
paradroid
1
@paradroid Anda seharusnya memberi nama "CompCeption" atau "VirtuaCeption".
Mohd Abdul Mujib
32

Bagi siapa pun yang membaca pertanyaan ini, melihat jawaban yang diterima, dan berpikir ini juga berlaku untuk VirtualBox, silakan lihat komentar dari @superbatfish pada pertanyaan awal. Dia membuat poin bagus tentang perbedaan antara virtualisasi dan persaingan.

Secara khusus, "hardware assisted VM" tidak akan tersedia di OS tamu "top-level" (yaitu, pada saat penulisan ini, VirtualBox tidak menyediakan VM hardware di OS tamu ). Dengan VirtualBox, ini berarti Anda hanya dapat membuat OS "nested guest" 32-bit, bahkan jika tamu tingkat atas 64 bit dan host "asli" Anda memiliki VM perangkat keras.

Mungkin bukan showstopper untuk Anda, tetapi perlu diperhatikan. Saya membutuhkan ini untuk menjalankan Vagrant pada tamu Ubuntu di dalam Windows, untuk pengujian buku masak Chef.

Tobias J
sumber
Jadi, apakah Anda dapat menjalankan Vagrant di Ubuntu guest di dalam host Windows?
wisbucky
2
@wisbucky ya, saya bisa menjalankannya dalam mode 32-bit, tetapi tidak 64-bit. Karena semua sistem produksi saya 64-bit, itu bukan tes yang sempurna tetapi masih bekerja dengan cukup baik.
Tobias J
3
Kecuali saya salah, Anda sekarang dapat menjalankan kotak Vagrant 64-bit di dalam VM Ubuntu dengan menggunakan penyedia Docker untuk Vagrant, karena kontainer tidak bergantung pada virtualisasi perangkat keras: vagrantup.com/docs/docker . Kotak Vagrant yang Anda gunakan harus mendukung itu.
Brendan
@ Brendan, kecuali Anda harus menjalankan program 64bit tertentu, kemudian menggunakan buruh pelabuhan dibandingkan dengan menjalankan kotak virtual 32bit, apakah kinerja bijak sama atau bukan?
serup
11

Linux-KVM memiliki beberapa dukungan untuk mesin virtual bersarang. Saya telah bertanya di saluran IRC KVM dan mendapatkan informasi berikut (tapi jangan terima kata-kata saya, coba sendiri):

  • CPU AMD harus bekerja dengan baik, tamu dengan Xen dan Hyper-V diketahui bekerja,
  • CPU Intel membutuhkan kode sumber KVM Git terbaru, dan hanya tamu yang bekerja dengan KVM

Saya belum mencobanya sendiri. Pencarian untuk "KVM bersarang" akan memberi Anda cukup info untuk mencobanya sendiri.

EDIT: KVM hanya akan berjalan di host Linux. Saya belum mendapatkan info tepercaya tentang perangkat lunak virtualisasi Windows mengenai dukungan VM yang tepat. Maksudnya 'benar' maksud saya bahwa hypervisor mengekspos ekstensi virtualisasi kepada tamu. Anda selalu dapat menjalankan VM bersarang menggunakan hypervisor perangkat lunak murni (mis. Terjemahan dinamis), tetapi itu akan jauh lebih lambat.

EDIT: Bochs, yang Anda sebutkan, adalah hypervisor khusus perangkat lunak. Ini berarti bahwa itu akan selalu lambat, dan itu tidak dapat dihapus jika hypervisor pada host mengekspos ekstensi virtualisasi ke tamu (seperti KVM tidak). Sebagian besar softare virtualisasi lainnya (KVM, VirtualBox, VMWare) dapat menggunakan ekstensi itu dan akan berkinerja lebih baik jika tersedia.

Ambroz Bizjak
sumber
Untuk edit kedua Anda: Jadi, jika saya hanya akan menjalankan Bochs (dan saya tidak terlalu peduli jika lambat), apakah saya perlu khawatir tentang hal KVM?
Javier
Jika Anda menjalankan Bochs di dalam mesin virtual, itu akan menjadi lambat seperti jika Anda menjalankannya pada perangkat keras (dengan asumsi perangkat keras Anda memiliki ekstensi virtualisasi, yaitu AMD-v atau VT-x dan mereka diaktifkan di BIOS; jika tidak maka bahkan lebih lambat, karena semuanya di VM).
Ambroz Bizjak
Mengenai virtualisasi Windows ... tampaknya mungkin, tetapi (per Juni 2016) hanya berfungsi dengan HyperV-on-HyperV, dengan build "Windows Insider", dan pada perangkat keras Intel. Dari msdn.microsoft.com/en-us/virtualization/hyperv_on_windows/…
Mark
3

Itu mungkin, tetapi tidak terlalu layak, terutama untuk pengembangan. Anda mungkin harus melihat menjalankan Linux sebagai OS asli Anda, atau mendapatkan kotak kedua untuk meng-host VM.

pengupas
sumber
Saya mengerti bahwa ini mungkin rumit, tetapi apa yang sebenarnya Anda maksud dengan "tidak terlalu layak"?
Javier
1
Saya berani bertaruh bahwa @peelman berarti: "Terlalu lambat untuk tujuan praktis." Saya belum mencobanya sendiri.
CarlF
@carlf tepatnya.
peelman
1

Penjelasan terperinci dari proses ini ada di halaman ini: https://wiki.openstack.org/wiki/XenServer/VirtualBox

Dalam kartu jaringan mesin VirtualBox Anda harus mengatur memungkinkan semua dalam Mode Promiscuous dan beberapa opsi lain dan Anda dapat memiliki os di dalam vm misalnya Xenserver di dalam vm misalnya VirtualBox.

42n4
sumber
1

Ya , Anda dapat menjalankan mesin virtual di mesin virtual. Apa yang saya lakukan adalah mendapatkan komputer Windows 7 Ultimate x64, menjalankan OS yang sama pada mesin virtual, kemudian menjalankan versi 32 bit (tidak dapat menangani 64 bit pada lapisan ke-3) pada lapisan ke-3. Itu cukup lamban tetapi saya berhasil sampai ke new york times di internet explorer dengannya. Ini mungkin sulit jika Anda tidak memiliki komputer yang kuat, tetapi Anda menjalankan Linux dan Bochs, yang merupakan Sistem Operasi yang ringan, jadi itu harus dimungkinkan.

FluorescentGreen5
sumber
-2

Ya , itu mungkin, mengingat komputer Anda cukup kuat untuk menanganinya.

Di komputer saya (i7 4770S, 16GB RAM) saya berhasil mendapatkan level VM-ception-ness 4,5 (yang terakhir crash setengah dari waktu).

Saya menggunakan VMware Player 12, karena VirtualBox tidak suka meniru VM-x, dan itu ternyata lebih lambat. Saat ini, saya mencoba untuk membuat W2K bekerja di XP, tetapi VMware tidak dapat menginstal, VirtualBox menghasilkan BSOD jadi saya mencoba menggunakan QEMU.

Lihat tangkapan layar ini (salah satu tangkapan layar terindah yang pernah saya lihat):

masukkan deskripsi gambar di sini

zdimensi
sumber
Informasi baru apa yang diberikan jawaban ini?
Ramhound