ฉันได้ผนวกคำตอบของฉันไว้ด้านล่าง แต่ฉันได้เก็บคำตอบดั้งเดิมไว้เพื่ออ้างอิง
TL: DR: เครื่องเสมือนเป็นเครื่องมือและในขณะที่พวกเขาให้ความสามารถในการใช้งานระบบปฏิบัติการหนึ่งระบบในอีกระบบหนึ่งคุณจะต้องตระหนักถึงสิ่งที่คุณต้องการใช้งานหลักของคอมพิวเตอร์เพื่อใช้งานระบบอย่างเต็มประสิทธิภาพ .
ดูเหมือนคำถามของคุณจะถูกเบี่ยงเบนไปทางกราฟิกและอินเทอร์เฟซที่เป็นไปได้ของการใช้เครื่องเสมือนจริงดังนั้นฉันจะตอบเกี่ยวกับความเป็นไปได้ที่นั่น
ปัญหาหลักคือเพื่อความปลอดภัยในการจัดการระบบปฏิบัติการเกสต์เข้าถึงอุปกรณ์ (และป้องกันไม่ให้ระบบปฏิบัติการเกสต์จากการเหยียบย่ำโฮสต์และสิ่งต่าง ๆ ) อุปกรณ์ทั้งหมดที่คุณต้องการใช้จะต้อง "ถูกเลียนแบบ"
สิ่งนี้หมายความว่าการ์ดกราฟิกที่ระบบปฏิบัติการเกสต์ของคุณสามารถมองเห็นไม่ใช่กราฟิกการ์ดเดียวกันกับที่โฮสต์ระบบปฏิบัติการของคุณเห็น คุณอาจสามารถเปิดใช้งานคุณลักษณะต่างๆเช่นการแสดงผลแบบ 3 มิติในผู้เยี่ยมชม แต่สิ่งนี้ได้รับการจัดการโดยไดรเวอร์ระดับกลางในแขกของคุณซึ่งส่งคำขอไปยังโฮสต์อย่างปลอดภัยเพื่อให้การแสดงผล 3D นั้นมี
เป็นที่น่าสงสัยอย่างมากว่าฟีเจอร์เช่นที่จำเป็นในการเล่นแผ่นบลูเรย์อย่างแน่นหนากับจอแสดงผล HDMI ที่รองรับนั้นถูกจำลองโดยไดรเวอร์การ์ดแสดงผลดังนั้นจึงอาจไม่ทำงาน
โดยพื้นฐานแล้วสิ่งใดก็ตามที่ต้องการการสนับสนุนฮาร์ดแวร์บนโฮสต์ของคุณนั้นไม่น่าจะทำงานได้ดีหากเป็นแขกของคุณ ฉันไม่ทราบว่า WiDi ทำงานอย่างไร แต่หากต้องการการเข้าถึงโดยตรงไปยังหน่วยความจำการ์ดวิดีโอของคุณเพื่อที่จะแบ่งปันไปยังโทรทัศน์แล้วมันจะไม่ทำงานจนกว่าคุณจะใช้จากระบบปฏิบัติการโฮสต์ (Linux)
นอกเหนือจากนั้นในแง่ของประสิทธิภาพ VM สามารถเข้าใกล้กับสิ่งที่มันจะเป็นหากเป็นระบบปฏิบัติการหลัก แต่จะมีบทลงโทษในแง่ของการเข้าถึงอุปกรณ์ฮาร์ดไดรฟ์หรือการช่วงชิงทรัพยากรอื่น ๆ ที่โฮสต์ใช้อยู่
แรกเริ่ม...
ในตอนแรกเรามีคอมพิวเตอร์คอมพิวเตอร์เครื่องนั้นสามารถเรียกใช้ระบบปฏิบัติการเดียวเท่านั้น ระบบปฏิบัติการนั้นมีแนวโน้มที่จะทำงานได้ดีบนตัวประมวลผลเฉพาะและฮาร์ดแวร์อื่น ๆ ที่อยู่ในเครื่องกับระบบปฏิบัติการอื่น ๆ ที่สามารถทำงานได้ไม่ดีถ้าหากทั้งหมดบนฮาร์ดแวร์ดั้งเดิมที่มีอยู่
เพื่อให้ผู้ใช้สามารถใช้ซอฟต์แวร์สำหรับแพลตฟอร์มหนึ่งโดยเฉพาะบนแพลตฟอร์มอื่น (ตัวอย่างเช่นการใช้ซอฟต์แวร์ Pre-OSX MacOS บน Commodore Amiga) จำเป็นต้องใช้มากกว่า "การติดตั้งซอฟต์แวร์" เครื่องทั้งสองนี้ใช้สถาปัตยกรรมโปรเซสเซอร์ที่แตกต่างอย่างสิ้นเชิงและฮาร์ดแวร์เสริม ไม่มีทางที่ระบบปฏิบัติการเดียวจะสามารถทำงานบนฮาร์ดแวร์ของเครื่องอื่นได้
การแข่งขัน
การจำลองเป็นเหมือนลูกพี่ลูกน้องกับเวอร์ชวลไลเซชันพวกมันเกี่ยวข้องกันและมีเป้าหมายที่คล้ายกัน คนหนึ่งให้กำเนิดคนอื่นเหมือนที่เคยเป็นมา
สิ่งเหล่านี้หมายความว่าแพลตฟอร์มฮาร์ดแวร์ที่แตกต่างคือถ้าคุณต้องการใช้ซอฟต์แวร์หนึ่งชิ้นจากระบบปฏิบัติการอื่นบนเครื่องของคุณทุกอย่างเกี่ยวกับเครื่องนั้นจะต้องได้รับการวิเคราะห์เพื่อดูว่ามันทำงานอย่างไรและจากนั้นเขียนโค้ดที่ทำงานใน เช่นเดียวกับส่วนของฮาร์ดแวร์ นี้จะต้องทำทุกชิ้นโปรเซสเซอร์คอนโทรลเลอร์กราฟิกคอนโทรลเลอร์หน่วยความจำทุกอย่าง
จากนั้นทุกชิ้นส่วนเหล่านี้จะใส่กันและแต่ละชิ้นจะถูกลอกเลียนแบบบิตของฮาร์ดแวร์ที่เราเรียกว่านี้เครื่องเทิดทูน จากนั้นเราจะเรียกใช้ระบบปฏิบัติการที่ด้านบนของเครื่องจำลองนี้
ปัญหาคือว่าวิธีนี้ช้า ค่อนข้างง่ายที่คุณโชคดีถ้าคุณสามารถทำความเร็ว 1 / 10th ของฮาร์ดแวร์ดั้งเดิมได้ คุณต้องการเครื่องที่เร็วกว่าเครื่องจำลองแบบเป้าหมายหลายเท่าเพื่อใช้งานคอมพิวเตอร์จำลองที่ใดก็ได้ใกล้ความเร็วเต็ม
แล้วมีอะไรเปลี่ยนแปลง?
นี่คือสิ่งที่ยอดเยี่ยม ไม่มากนัก การเปลี่ยนแปลงครั้งใหญ่เพียงอย่างเดียวคือแพลตฟอร์มฮาร์ดแวร์ที่ได้มาตรฐาน เราหยุดรับฮาร์ดแวร์ที่กำหนดเองสำหรับทุก OS และ OS ทั้งหมดถูกย้ายไปหรือถูกสร้างขึ้นบนแพลตฟอร์มมาตรฐานเดียว
องค์ประกอบที่ประกอบขึ้นเป็น Mac ทุกวันนี้ส่วนประกอบที่เหมือนกันซึ่งประกอบเป็นพีซี ลีนุกซ์วิ่งบนฮาร์ดแวร์พีซีเสมอดังนั้นจึงไม่มีอะไรใหม่
เป็นเวลานานในขณะที่การจำลองยังคงเป็นมาตรฐานหากคุณต้องการใช้งานซอฟต์แวร์จากระบบปฏิบัติการหนึ่งไปยังอีกระบบหนึ่ง หรือคุณสามารถดูอัลบูตและเรียกใช้ระบบปฏิบัติการทั้งระบบตามที่คุณต้องการ แต่สิ่งนี้ทำให้เจ็บปวดและน่ารำคาญถ้าคุณต้องการเข้ารหัสจาก Linux ในการเล่นเกมใน Windows
แล้ว ..
มีแนวคิดว่าเนื่องจากฮาร์ดแวร์อ้างอิงเหมือนกันทำไมทั้งสอง OS จึงไม่สามารถแชร์ได้
เราลงเอยด้วย QEMU และ WiNE และโซลูชันซอฟต์แวร์ที่คล้ายคลึงกัน QEMU เป็นที่ชื่นชอบมานานสำหรับการลอกเลียนแบบเครื่องจักรในขณะที่ WiNE อนุญาตให้แอปพลิเคชัน Windows ทำงานบน Linux โดยการดักจับและแก้ไขการเรียก OS API ของพวกเขาและปล่อยให้โค้ดทำงานบนโปรเซสเซอร์
QEMU ทำสิ่งที่คล้ายกับ WiNE แต่ทำในระดับที่ต่ำกว่ามาก มันยังคงเป็นอีมูเลเตอร์ได้อย่างมีประสิทธิภาพ แต่สำหรับทุกการเรียกฮาร์ดแวร์ที่ทำให้พวกเขาใช้วิธีการ "แก้ไขและเปลี่ยนเส้นทาง" เพื่อให้การโทรใด ๆ ไปที่แพลตฟอร์มฮาร์ดแวร์จำลองของตัวเองแทน เพราะรหัสการทำงานส่วนใหญ่ในโปรแกรมไม่ได้เกี่ยวข้องกับการเรียกใช้ฮาร์ดแวร์ (ส่วนใหญ่เป็นสตรีมการคำนวณอย่างง่ายพร้อมการโทรเมื่อสิ้นสุดการแสดงผล)
นี้ส่งผลในการเพิ่มความเร็วทันทีเกือบโปรแกรมในตอนนี้ทุกคนไม่ได้จริงๆเทิดทูนเครื่อง โปรแกรมที่ทำงานช้าลงขึ้นอยู่กับจำนวนที่พวกเขาเข้าถึงฮาร์ดแวร์ "เสมือน" มากกว่าที่จะเลียนแบบเครื่องได้ดีเพียงใด แทนที่จะวิ่งที่ 1 / 10th ของความเร็วตอนนี้พวกเขาก็วิ่งด้วยความเร็วเกือบเท่าเดิม
ดังนั้นหากเราใช้โปรเซสเซอร์ในขณะนี้เหตุใดกราฟิกการ์ดของฉันจึงไม่ทำงาน
ปัญหาเดียวของ Virtual Machine ใหม่เหล่านี้คือโดยธรรมชาติแล้วระบบปฏิบัติการจะถือว่ามันมีการควบคุมโดยตรงของฮาร์ดแวร์ทั้งหมดที่อยู่ในคอมพิวเตอร์เพื่อให้พวกเขาสามารถให้คุณสมบัติเช่นการจัดการหน่วยความจำและการควบคุมการเข้าถึงฮาร์ดแวร์
สิ่งนี้หมายความว่าเป็นอย่างไรที่เครื่องเสมือนไม่สามารถหลีกเลี่ยงการจำลองได้อย่างสมบูรณ์ในวิธีการอย่างน้อยที่สุด พวกเขายังคงต้องเลียนแบบฟังก์ชั่นบางอย่างในซอฟต์แวร์เช่นกราฟิกการ์ดหรือการ์ดเครือข่ายจะต้องนำเสนอไปยังระบบปฏิบัติการที่ทำงานในเครื่องเสมือนเพื่อให้ระบบปฏิบัติการ "แขก" คิดว่ามันมีการควบคุมเต็มรูปแบบของฮาร์ดแวร์นั้น ระบบปฏิบัติการหลัก (ตามข้อกำหนดด้านความปลอดภัย) จะต้องป้องกันตัวเองจากโปรแกรมที่เข้าถึงฮาร์ดแวร์โดยตรงและจะมีข้อ จำกัด ในระบบปฏิบัติการของแขก
เพื่อที่จะทำสิ่งนี้พวกเขาต้องเลียนแบบชิ้นส่วนของฮาร์ดแวร์ "เสมือน" สำหรับทุกสิ่งในคอมพิวเตอร์ ตอนนี้โค้ดทั้งหมดนั้นถูกใช้งานโดยโปรเซสเซอร์ดังนั้นจึงไม่ช้า แต่ฮาร์ดแวร์เสมือนแต่ละชิ้นเหล่านั้นต้องถูกเขียนลงในซอฟต์แวร์และสิ่งนี้ทำให้เกิดการลงโทษเล็กน้อยทั้งในด้านประสิทธิภาพการทำงาน .
หมายความว่าการ์ดกราฟิกเสมือนของคุณไม่สามารถและจะไม่มีคุณสมบัติเช่นเดียวกับกราฟิกการ์ดจริงของคุณ เพื่อให้ได้ประสิทธิภาพสูงสุดฮาร์ดแวร์เสมือนสามารถเขียนเพื่อรองรับฟีเจอร์ที่ใช้มากที่สุดและการเรนเดอร์ 3D เป็นไปได้ในเครื่องเสมือน แต่ก็ยังไม่เหมือนกับฮาร์ดแวร์จริง
สิ่งนี้หมายความว่าระบบปฏิบัติการโฮสต์ได้รับตัวเลือกฮาร์ดแวร์ที่ดีที่สุดในขณะที่ระบบปฏิบัติการแขกรับตัวเลือกฮาร์ดแวร์ทั่วไป
เครื่องเสมือนนั้นไม่ดีเท่าฮาร์ดแวร์จริง ๆ มันเป็นเพียงเครื่องมือที่ช่วยให้ทำงานกับเครื่องมือจากระบบหนึ่งไปยังอีกระบบหนึ่งได้ง่ายขึ้น
แล้วฉันจะทำยังไงดี?
คุณต้องเลือกสิ่งที่คุณต้องการให้วัตถุประสงค์หลักของคอมพิวเตอร์ของคุณเป็น
หากคุณต้องการเล่นเกมล่าสุดบนการ์ดจอพลังสูงของคุณและใช้พลังการ์ดกราฟิกเดียวกันในการเล่นภาพยนตร์ 1080p เต็มรูปแบบไปยังทีวี HDMI 400 นิ้วของคุณ แต่บางครั้งต้องการทำโปรแกรม Linux บางครั้ง Windows อาจเป็นทางออกที่ดีที่สุดของคุณ กับ Linux ในฐานะแขก
หากคุณต้องการทำงานบนเคอร์เนล Linux สร้างไดรเวอร์ฮาร์ดแวร์สำหรับอุปกรณ์ในคอมพิวเตอร์ของคุณและบางครั้งเขียนซอฟต์แวร์สำหรับ Windows และทดสอบบนระบบ Windows "มาตรฐาน" ที่ดีถ้าเป็นไปได้คุณอาจใช้ Linux ได้ดีกว่า ในฐานะโฮสต์และ Windows ในฐานะแขก
หากคุณชอบความสะดวกในการใช้งาน Mac แต่ต้องการตั้งโปรแกรมสำหรับ Windows (หรือมีแพ็คเกจซอฟต์แวร์ที่คุณต้องการใช้เฉพาะ Windows เท่านั้น) นั่นก็เป็นตัวเลือกด้วยเช่นกัน
ฉันไม่ได้บอกว่าลีนุกซ์ไม่สามารถเล่นเกมได้หรือ MacOS นั้นไม่ได้มีไว้สำหรับโปรแกรมเมอร์เพราะมันอาจเป็นเรื่องโกหก มันเป็นเพียงแค่ว่าคนคนหนึ่งที่สามารถพูดได้ที่ OS อาจจะเหมาะสมกับสิ่งที่คุณต้องการจะทำคือคุณ
จริงๆคุณต้องเข้าใจสิ่งที่คุณต้องการในเครื่องของคุณจะทำครั้งแรก จากนั้นคุณก็จะสามารถทำสิ่งที่เครื่องเสมือนจริงสามารถทำเพื่อคุณได้
เพื่อตอบคำถามของคุณ:
Will the graphics and video rendering quality will be just as good?
ไม่กราฟิกการ์ดที่จำลองอาจมีคุณสมบัติบางอย่างของการ์ดกราฟิกโฮสต์ แต่อาจไม่รองรับคุณสมบัติที่ซับซ้อนเช่นการเร่งความเร็ววิดีโอฮาร์ดแวร์หรือคุณสมบัติการเขียนโปรแกรม CUDA
Will there be any hardware issue such as using HDMI or WiDi?
อีกครั้งคุณสมบัติพิเศษเหล่านี้จะไม่เป็นคุณสมบัติของฮาร์ดแวร์เสมือนจริงที่มีอยู่
Will applications run just as smoothly as long as enough RAM is allocated?
แอปพลิเคชันส่วนใหญ่ (ตราบใดที่พวกเขาไม่ต้องการคุณสมบัติฮาร์ดแวร์ที่เฉพาะเจาะจง) จะทำงานเกือบเร็วเท่ากับที่ใช้บนฮาร์ดแวร์จริงตราบใดที่คุณไม่ต้องอดอาหารโฮสต์หรือแขกของหน่วยความจำ