คุณสามารถรันเครื่องจำลอง (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.