ทำไมโดยทั่วไประบบปิดการทำงานเสมือนจริงโดยค่าเริ่มต้นในการตั้งค่า BIOS?


81

ฉันยังไม่เห็นระบบที่การกำหนดค่าเริ่มต้นเปิดใช้งาน MMU และการจำลองเสมือน I / O โดยตรง บ่อยครั้งสิ่งนี้ทำให้การรีบูตและเข้าสู่ BIOS เพื่อเปิดใช้งานหากคุณต้องการเช่นสนับสนุน 64 บิตบน VMs ของคุณ

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

คำตอบ:


52

มีรูทคิทที่พิสูจน์แล้วของแนวคิดเช่นBlue Pillในขณะที่ย้อนกลับที่สามารถเป็นเจ้าของระบบที่เปิด VT หลังจากการค้นพบนี้ผู้ขายส่วนใหญ่เริ่มส่งสินค้าโดยปิดการใช้งาน VT เพื่อความปลอดภัยทั่วไป


7
+1 ผู้ใช้ VT บนเดสก์ท็อป / แล็ปท็อปเป็นข้อยกเว้น เครื่องจักรที่ไวต่อ virii นั้นเป็นกฎ
Chris S

ทันใดนั้นฉันก็มีความคิดที่สองเกี่ยวกับเครื่อง dev อันทรงพลังตัวใหม่ที่ฉันสร้างขึ้นซึ่งทำงานกับ VMs จำนวนมากพร้อมการเปิดใช้งานการจำลองเสมือนสำหรับฮาร์ดแวร์ ฉันไม่ต้องการ virtualization แต่ฉันคิดว่ามันจะช่วยฉันประหยัดในระยะยาวโดยไม่ต้อง repave ทุกสองสามเดือน ปัญหาใหญ่แค่ไหน?
Paperjam

2
แทบไม่มีอยู่จริง (ตามความคิดเห็นนี้) Blue Pill เป็นข้อพิสูจน์แนวคิด ฉันไม่รู้อะไรแบบนี้ในป่า
MDMarra

1
นี่คือการประเมินปัญหาความปลอดภัยของ Microsoft รวมถึงคำแนะนำในการปิด VT ตามค่าเริ่มต้นในระบบบทบาทลูกค้า: msdn.microsoft.com/en-us/windows/hardware/gg463498.aspx
Jpsy

3
กระดาษของ Microsoft ไม่สามารถใช้ได้บนเว็บไซต์ของพวกเขาอีกต่อไป แต่คุณสามารถอ่านได้ในInternet Archiveถ้าคุณต้องการ
Josh Kelley

5

เบลดเซิร์ฟเวอร์ทั้งหมดที่เราซื้อมีการเปิดใช้งานการจำลองเสมือนโดยค่าเริ่มต้น อาจเป็นเพราะผู้ขายของเราได้ทำการตัดสินใจเชิงพาณิชย์แล้วให้ประหยัดการโทรติดต่อสนับสนุนจำนวนมาก

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


4
การเข้าถึงอุปกรณ์ต่อพ่วงใดที่ส่งผลกระทบนี้ ฉันไม่เคยได้ยินมาก่อน
MDMarra

คุณกำลังพูดถึง VT-d เมื่อคุณพูดถึงการเข้าถึงอุปกรณ์ต่อพ่วง?
Zoredache

ไม่มันเป็น MMU ... ฉันจำได้ว่ามีใครบางคนกำลังสงสัยเกี่ยวกับเรื่องนี้เมื่อเร็ว ๆ นี้ สิ่งที่ต้องทำกับ Rasberry Pi
Sirch

2

โปรดทราบว่าตามหัวข้ออื่น ๆ นี้ดูเหมือนว่าจะมีผลกระทบต่อการแสดง https://superuser.com/questions/545101/why-does-hp-recommend-that-i-keep-hardware-virtualization-off

ดูเหมือนว่าจะเกี่ยวข้องกับฉันเนื่องจากชุดคำสั่งที่ลดลงมีประสิทธิภาพมากขึ้น ฉันไม่คิดว่าการเปลี่ยนตัวเลือก BIOS อาจส่งผลกระทบโดยตรงต่อสิ่งนี้

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


2
มุมประสิทธิภาพจากคำตอบที่เชื่อมโยงไม่สมเหตุสมผล แคชคำสั่งเก็บคำสั่งของโปรแกรมซอฟต์แวร์ หากโปรแกรมไม่ได้ใช้คำแนะนำการจำลองเสมือนจะไม่มีผลกระทบต่อแคชนั้น นอกจากนี้ยังไม่มีรายงานว่ามีหน่วยดำเนินการแยกต่างหากที่จัดการเสมือนจริงหรือส่วนหนึ่งของตัวถอดรหัสคำสั่งที่สามารถข้ามได้ดังนั้นจึงไม่มีความแตกต่างด้านประสิทธิภาพอย่างใดอย่างหนึ่ง
นิมโรด

1

อีกเหตุผลหนึ่งคือฟังก์ชั่นเคอร์เนลผู้ใช้ส่วนใหญ่ (เช่น gettimeofday) ถูกย้ายใน VDSO

ในบางครั้งภายใต้การจำลองเสมือนเส้นทางที่รวดเร็วไม่สามารถเปิดใช้งานได้

ดังนั้นระบบไม่สามารถ:

รับฟังก์ชั่นการทำงานอย่างรวดเร็วของฟังก์ชั่นเหล่านี้

หลีกเลี่ยงการสลับแพงจาก userland ไปยังเคอร์เนลและส่งคืน



0

นอกเหนือจากข้อกังวลด้านความปลอดภัยที่เกิดขึ้นในคำตอบ @MDMarra คุณควรพิจารณาประเด็นเพิ่มเติมสองประการ:

  1. คุณลักษณะที่เป็นทางเลือกที่เปิดใช้งานและมีความเป็นไปได้น้อยที่จะมีการโต้ตอบที่น่ารังเกียจและไม่คาดคิดกับฟังก์ชันอื่น ๆ ซึ่งจำเป็นต้องมีการตรวจสอบเพิ่มเติม ผู้จำหน่ายพีซีเกลียดที่จะใช้ทรัพยากรกับคุณสมบัติที่ไม่ค่อยได้ใช้และการจำลองเสมือนฝั่งไคลเอ็นต์เป็นหนึ่งในนั้น

  2. ฉันสงสัยอย่างยิ่งว่าเนื่องจาก # 1, เฟิร์มแวร์ไคลเอนต์พื้นฐานของ Intel / BIOS Blob ปิดใช้งาน VT ดังนั้นผู้ขายรายใดที่ส่งไคลเอนต์ที่เปิดใช้งาน VT จึงจำเป็นต้องปรับแต่งตัวเลือกนั้นเมื่อเตรียมเฟิร์มแวร์

ที่กล่าวว่าตอนนี้เราอยู่ในปี 2019; ฉันเห็นไคลเอนต์อื่น ๆ ที่เปิดใช้งาน VT เป็นค่าเริ่มต้น เซิร์ฟเวอร์นั้นแตกต่างกันโดยสิ้นเชิง: ฉันไม่เพียง แต่พบว่าเปิดใช้งาน VT เสมอ แต่ VT-d ก็ยังทำงานอยู่

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