คุณสามารถรันเครื่องจำลอง (Bochs) ภายในเครื่องเสมือนได้หรือไม่?


82

มันเป็นไปได้ที่จะพูดใช้ VirtualBox บน Windows 7 กับแขกลินุกซ์และภายในเครื่องที่ลินุกซ์เรียกใช้ Bochs?

เหตุผลก็คือฉันสนใจที่จะเริ่มต้นพัฒนาระบบปฏิบัติการและฉันพบว่าบทเรียนและเนื้อหาทั้งหมดนั้นง่ายต่อการติดตามบนเครื่อง * nix ฉันลองใช้ Cygwin แต่ฉันคิดว่ามันเพิ่มความซับซ้อนอีกระดับและไม่จำเป็นต้องทำให้เรื่องง่ายขึ้น


1
การบูทสองระบบคือ Linux และ Windows นั้นทำได้ง่ายและผลลัพธ์ที่ได้นั้นก็จะเร็วขึ้นมาก ข้อเสียจริงเพียงข้อเดียวที่คุณต้องรีบูตเพื่อเปลี่ยนระบบปฏิบัติการ
lyallcooper

@AUAnonymous: ฉันรู้ แต่ฉันต้องการใช้ Windows ต่อไป
Javier

เป็นเพียงตัวเลือกเสมอถ้าคุณไม่จัดการเพื่อให้ VMs ทำงานหรือว่ามันทำงานได้ไม่ดีนัก
lyallcooper

12
ฉันจะโต้แย้งว่าคำถามนี้มีชื่อว่าไม่ดี Bochs ไม่ใช่ซอฟต์แวร์การจำลองเสมือนในลักษณะเดียวกับ VirtualBox และ VMware มันเป็นโปรแกรมจำลอง มันไม่มีการจำลองเสมือนของ CPU ความแตกต่างที่นี่ไม่เพียงอวดความรู้ คุณสามารถคาดหวังว่าอีมูเลเตอร์เช่น bochs จะทำงานภายใน VM ด้วยความมั่นใจสูง การใช้งานซอฟต์แวร์การจำลองเสมือนที่แท้จริง "ซ้อน" ใน VM เป็นปัญหาที่ยุ่งยากกว่ามาก ตัวอย่างเช่นคุณลักษณะนี้มีการใช้งานใน VMWare ตั้งแต่ Fusion 4เท่านั้น
superbatfish

2
VirtualMachine-ception: D คุณมีความเสี่ยงที่จะสูญเสียการติดตามจำนวนระดับที่ลึกล้ำในเครื่องเสมือนของคุณ ช่วงเวลานั้นเมื่อคุณรู้ว่าคุณเพิ่งสร้างความเสียหายให้กับฟิสิคัลฮาร์ดดิสก์ของคุณแทนที่จะเป็นหนึ่งในเวอร์ชวลเสมือนที่คุณต้องการทดสอบ: P
developerbmw

คำตอบ:


63

ยาวสั้นเรื่อง: ใช่

เครื่องเสมือนแต่ละเครื่องนั้น "อิสระ" ทางเทคนิคและด้วยVirtualBoxคุณสามารถทำได้อย่างง่ายดายเนื่องจากได้รับการสนับสนุนบนระบบปฏิบัติการโฮสต์ Windows และ Linux (จำลองหรือไม่) คุณสามารถใช้ Windows เป็นระบบปฏิบัติการ "base-host" ของคุณรัน Linux ใน VM แล้วใช้ระบบปฏิบัติการนั้นเป็นโฮสต์พื้นฐานใหม่สำหรับ Bochs

โปรดทราบว่าข้อ จำกัด เพียงอย่างเดียวของคุณที่นี่คือฮาร์ดแวร์ของคุณ ขึ้นอยู่กับข้อกำหนดของการพัฒนาของคุณคุณอาจต้องการหน่วยความจำเพิ่มเติมหรืออัพเกรดเป็นระบบปฏิบัติการ "โฮสต์ฐาน" 64- บิต ดังที่กล่าวไว้ว่าถ้าคุณเลือก distros Linux ของคุณอย่างชาญฉลาดระบบที่ทันสมัยใด ๆ ควรมีความสามารถในการทำรังตามอำเภอใจเช่นนี้

คุณจะเห็นประสิทธิภาพที่ดีขึ้นหากเปิดใช้งานการรองรับการจำลองเสมือน x86บนคอมพิวเตอร์ของคุณ (หากเมนบอร์ดและ CPU ของคุณรองรับ) และ AFAIK คุณสามารถ "ส่งผ่าน" คุณสมบัตินี้ไปยังเครื่องเสมือนหลายเครื่องซ้อนกันได้ ถ้าเรามีnเครื่องเสมือนที่ซ้อนกันใน eachother นี้ได้รับการสนับสนุนตราบเท่าที่1เซนต์ไป n-1THบุคคล OS ซ้อนกันมีการสนับสนุนการทำงานแบบเสมือน x86 (เจ้าภาพฐานยังต้องสนับสนุนมัน) โปรดทราบว่ายังมีปัญหาด้านความปลอดภัยที่ต้องระวังหากคุณทำเช่นนี้ดังนั้นให้ใช้ความระมัดระวังที่เหมาะสม


2
ดูเหมือนว่าใช้งานได้จริง ท้ายที่สุดถ้าฉันต้องการความเร็วฉันจะไม่ใช้ Bochs ตั้งแต่แรก แม้ว่าจะไม่ได้รับการโหวตมากที่สุดฉันรู้สึกว่าคำตอบของคุณนั้นสมบูรณ์และตรงประเด็นมากขึ้นดังนั้นฉันจะยอมรับมัน
Javier

มันเป็นแค่ฉันหรือไม่คำตอบนี้ดูเหมือนจะเกี่ยวกับการใช้งานเครื่องเสมือนหลายเครื่องไม่ใช่เครื่องซ้อนกัน ?
Thomas Padron-McCarthy

@Thomas Padron-McCarthy ฉันกำลังพูดถึงสิ่งที่ซ้อนอยู่ ฉันแก้ไขคำตอบเพื่อให้ชัดเจนยิ่งขึ้นในเรื่องนี้
พัฒนา

7
Bochs ไม่ใช่กรณีทดสอบที่ดีที่สุดสำหรับคำถามทั่วไปนี้เนื่องจากเป็นอีมูเลเตอร์ไม่ใช่ VM (ดูความคิดเห็นของฉันใน OP.)
superbatfish

คำตอบนี้ไม่ขัดแย้งกับคำตอบของTobyJและคำขอคุณสมบัติ VirtualBox ที่ยังไม่ได้แก้ไขซึ่งคำตอบของเขาเชื่อมโยงไปถึงหรือไม่
ChrisW

40

บางครั้งฉันใช้โครงสร้างพื้นฐานเสมือน VMware vSphere ทั้งหมดภายใน VMware Workstation พร้อมด้วยเราเตอร์และสวิตช์เสมือนของ Cisco และ EMC Celerra Virtualized Storage Appliance เพื่อการเรียนรู้ด้วยตนเองและการทดสอบ

ฉันเรียกมันว่า 'Inception Computing' และอาจทำให้สับสนได้ อย่างไรก็ตามมันค่อนข้างถูกกว่าการใช้อุปกรณ์จริง


1
สิ่งนี้ควรพิสูจน์ความมีชีวิตของสิ่งนี้ vinf.net/2010/02/25/…
Mike Soule

1
@ ไมค์: รายละเอียดลิงก์ของคุณใช้ ESXi ภายใน ESX แต่ฉันได้ใช้ลิงก์บางอย่างเช่น TechHead ซึ่งเป็นหนึ่งในเว็บไซต์หลักที่ทำให้ฉันเข้าสู่ระบบเสมือนจริงในตอนแรก มีข้อมูลมากมายเกี่ยวกับการใช้งานโครงสร้างพื้นฐาน vSphere ภายใน VMware Workstation เช่นกัน: google.co.uk/…
Paradroid

2
คุณรู้ไหมว่าคำว่า "การลงทะเบียนเรียน" ไม่ได้หมายถึงแนวคิด [สิ่งภายในสิ่ง] ใช่ไหม?
ekillaby

7
@countfloortiles: มันมีการอ้างอิงถึงภาพยนตร์แน่นอน
Paradroid

1
@paradroid คุณควรตั้งชื่อว่า "CompCeption" หรือ "VirtuaCeption"
Mohd Abdul Mujib

32

สำหรับทุกคนที่อ่านคำถามนี้เห็นคำตอบที่ยอมรับแล้วและคิดว่าสิ่งนี้จะนำไปใช้กับ VirtualBox ได้เช่นกันโปรดดูความคิดเห็นจาก @superbatfishตามคำถามเดิม เขาสร้างจุดที่ดีเกี่ยวกับความแตกต่างระหว่างการจำลองเสมือนและการจำลอง

โดยเฉพาะ "VM ช่วยฮาร์ดแวร์" จะไม่สามารถใช้ได้ในระบบปฏิบัติการ guest "ระดับบนสุด" (นั่นคือในขณะที่เขียนนี้VirtualBox ไม่ได้ให้ VM ฮาร์ดแวร์ในระบบปฏิบัติการแขก ) ด้วย VirtualBox หมายความว่าคุณสามารถสร้างระบบปฏิบัติการ "แขกที่ซ้อนกัน" แบบ 32 บิตได้แม้ว่าผู้เยี่ยมชมระดับสูงสุดคือ 64 บิตและโฮสต์ "ของจริง" ของคุณมีฮาร์ดแวร์ VM

อาจไม่ใช่การโชว์เคสให้คุณ แต่มันก็คุ้มค่าที่จะสังเกต ฉันต้องการสิ่งนี้เพื่อเรียกใช้ Vagrant บนแขก Ubuntu ใน Windows สำหรับการทดสอบตำราพ่อครัว


คุณสามารถรัน Vagrant บนแขกของ Ubuntu ในโฮสต์ Windows ได้หรือไม่
wisbucky

2
@wiscucky ใช่ฉันสามารถเรียกใช้ในโหมด 32 บิต แต่ไม่ใช่ 64- บิต เนื่องจากระบบการผลิตทั้งหมดของฉันเป็นแบบ 64 บิตมันจึงไม่ใช่การทดสอบที่สมบูรณ์แบบ แต่ก็ยังใช้งานได้ดีพอ
Toby J

3
เว้นแต่ฉันเข้าใจผิดว่าตอนนี้คุณสามารถเรียกใช้กล่องจรจัด 64 บิตภายในอูบุนตู VM โดยใช้ผู้ให้บริการเทียบท่าสำหรับคนจรจัดตั้งแต่ภาชนะบรรจุที่ไม่ต้องพึ่งพาระบบเสมือนจริงของฮาร์ดแวร์: vagrantup.com/docs/docker แม้ว่ากล่อง Vagrant ที่คุณใช้จะต้องให้การสนับสนุน
เบรนแดน

@Brendan ถ้าคุณไม่จำเป็นต้องเรียกใช้โปรแกรม 64 บิตเฉพาะจากนั้นใช้ container docker เทียบกับการใช้งาน virtual box 32 บิตประสิทธิภาพการทำงานนั้นฉลาดเหมือนกันหรือไม่?
serup

11

Linux-KVM มีการสนับสนุนบางอย่างสำหรับเครื่องเสมือนซ้อนกัน ฉันขอช่อง KVM IRC แล้วและได้รับข้อมูลต่อไปนี้ (แต่อย่าใช้คำของฉันลองด้วยตัวคุณเอง):

  • ซีพียู AMD ควรทำงานได้ดีแขกที่มี Xen และ Hyper-V ทำงานได้ดี
  • CPU ของ Intel ต้องการซอร์สโค้ด KVM Git ล่าสุดและมีเพียงแขกที่มีงาน KVM เท่านั้น

ฉันยังไม่ได้ลองตัวเอง การค้นหา "KVM ซ้อนกัน" ควรให้ข้อมูลมากพอที่จะลองด้วยตัวคุณเอง

แก้ไข: KVM จะทำงานบนโฮสต์ Linux เท่านั้น ฉันไม่ได้รับข้อมูลที่น่าเชื่อถือเกี่ยวกับซอฟต์แวร์การจำลองเสมือนของ Windows ที่เกี่ยวข้องกับการสนับสนุน VM ที่ซ้อนกัน โดย 'เหมาะสม' ฉันหมายความว่าไฮเปอร์ไวเซอร์เปิดเผยส่วนขยายเสมือนจริงแก่แขก คุณสามารถเรียกใช้ VM ที่ซ้อนกันได้ตลอดเวลาโดยใช้ Hypervisor ซอฟต์แวร์แท้ๆ (เช่นการแปลแบบไดนามิก) แต่จะช้าลงอย่างเห็นได้ชัด

แก้ไข: Bochs ซึ่งคุณพูดถึงเป็นไฮเปอร์ไวเซอร์เฉพาะซอฟต์แวร์ ซึ่งหมายความว่าจะช้าเสมอและไม่เกี่ยวข้องหาก hypervisor บนโฮสต์ทำให้ส่วนขยายการจำลองเสมือนแก่แขก (เช่นเดียวกับที่ KVM ทำ) ซอฟต์แวร์การจำลองเสมือนอื่น ๆ ส่วนใหญ่ (KVM, VirtualBox, VMWare) สามารถใช้ประโยชน์จากส่วนขยายเหล่านั้นและจะทำงานได้ดีกว่ามากหากมีให้ใช้งาน


ในการแก้ไขครั้งที่สองของคุณ: ดังนั้นถ้าฉันเพิ่งจะใช้ Bochs (และฉันไม่สนใจมากเกินไปถ้ามันช้า) ฉันต้องกังวลเรื่อง KVM หรือไม่?
Javier

หากคุณกำลังใช้ Bochs ภายในเครื่องเสมือนมันจะช้าเท่ากับที่คุณรันบนฮาร์ดแวร์ (สมมติว่าฮาร์ดแวร์ของคุณมีส่วนขยายการจำลองเสมือนเช่น AMD-v หรือ VT-x และเปิดใช้งานใน BIOS มิฉะนั้นจะเป็น ช้าลงเช่นเดียวกับทุกอย่างใน VM)
Ambroz Bizjak

เกี่ยวกับการจำลองเสมือนของ Windows ... ดูเหมือนว่าจะเป็นไปได้ แต่ (ณ เดือนมิถุนายน 2559) ใช้งานได้กับ HyperV-on-HyperV เท่านั้นด้วยการสร้างระบบปฏิบัติการ "Windows Insider" และฮาร์ดแวร์ของ Intel จากmsdn.microsoft.com/en-us/virtualization/hyperv_on_windows/…
ทำเครื่องหมาย

3

เป็นไปได้ แต่ไม่เป็นไปได้โดยเฉพาะอย่างยิ่งสำหรับการพัฒนา คุณควรดูที่ใช้ Linux เป็นระบบปฏิบัติการดั้งเดิมของคุณหรือรับกล่องที่สองเพื่อโฮสต์ VMs


ฉันเข้าใจว่ามันมีความซับซ้อน แต่คุณหมายถึงอะไรโดย "ไม่เป็นไปได้"
Javier

1
ฉันจะเดิมพันว่า @peelman หมายถึง: "มันช้าเกินไปสำหรับการใช้งานจริง" ฉันไม่ได้ลองเอง
CarlF

@carlf อย่างแม่นยำ
ปอกเปลือก

1

คำอธิบายโดยละเอียดของกระบวนการนี้อยู่ในหน้านี้: https://wiki.openstack.org/wiki/XenServer/VirtualBox

ในการ์ดเครือข่ายเครื่อง VirtualBox คุณต้องตั้งค่าอนุญาตทั้งหมดในโหมด Promiscuous และตัวเลือกอื่น ๆ และคุณสามารถมีระบบปฏิบัติการภายใน vm เช่น Xenserver ภายใน vm เช่น VirtualBox


1

ใช่คุณสามารถเรียกใช้เครื่องเสมือนในเครื่องเสมือน สิ่งที่ฉันทำคือซื้อคอมพิวเตอร์ Windows 7 Ultimate x64 รันระบบปฏิบัติการเดียวกันบนเครื่องเสมือนจากนั้นเรียกใช้รุ่น 32 บิต (ไม่สามารถจัดการ 64 บิตบนชั้นที่ 3) ในชั้นที่สาม มันค่อนข้างล่าช้า แต่ฉันก็สามารถไปที่นิวยอร์กครั้งบน internet explorer ได้ นี่อาจเป็นเรื่องยากหากคุณไม่มีคอมพิวเตอร์ที่มีประสิทธิภาพ แต่คุณใช้ Linux และ Bochs ซึ่งเป็นระบบปฏิบัติการที่มีน้ำหนักเบาดังนั้นจึงควรเป็นไปได้


-2

ใช่เป็นไปได้เนื่องจากคอมพิวเตอร์ของคุณมีประสิทธิภาพเพียงพอที่จะจัดการได้

บนเครื่องของฉัน (i7 4770S, RAM 16GB) ฉันจัดการเพื่อให้ได้ระดับ VM-ception-ness ที่ 4.5 (อันสุดท้ายล้มเหลวครึ่งหนึ่งของเวลา)

ฉันใช้ VMware Player 12 เพราะ VirtualBox ไม่ชอบเลียนแบบ VM-x และมันช้ากว่าเดิม ตอนนี้ฉันกำลังพยายามทำให้ W2K ทำงานบน XP ได้ แต่ VMware ไม่สามารถติดตั้งได้ VirtualBox จะสร้าง BSOD ดังนั้นฉันจึงลองใช้ QEMU

ดูภาพหน้าจอนี้ (หนึ่งในภาพหน้าจอที่สวยที่สุดที่ฉันเคยเห็น):

ป้อนคำอธิบายรูปภาพที่นี่


คำตอบนี้มีข้อมูลอะไรใหม่
Ramhound
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.