BIOS 설정에서 시스템이 기본적으로 가상화를 비활성화하는 이유는 무엇입니까? 64 비트 지원을 원할 경우

기본 구성이 MMU 및 직접 I / O 가상화를 가능하게하는 시스템은 아직 보지 못했습니다. 예를 들어 VM에서 64 비트 지원을 원할 경우 재부팅하기 위해 BIOS를 재부팅하고 활성화해야하는 경우가 종종 있습니다.

이것이 켜져 있고 가상화를 사용하지 않는 경우 발생하는 상당한 프로세서 오버 헤드가 있습니까? 그렇지 않은 경우 기본적으로 해제 된 이유는 무엇입니까?



답변

VT가 켜진 시스템을 소유 할 수있는 Blue Pill 과 같은 개념 증명 루트킷 이있었습니다. 이 발견 후 대부분의 공급 업체는 일반적인 보안 예방 조치로 VT를 비활성화 한 상태로 장치를 배송하기 시작했습니다.


답변

우리가 구매하는 모든 서버 블레이드는 기본적으로 가상화를 활성화합니다. 공급 업체가 많은 지원 요청을 절약하기 위해 상업적 결정을했기 때문일 수 있습니다.

프로세서 적중으로 인해 사용 불가능하지는 않지만 사용중인 용도에 따라 사용 불가능합니다. 이러한 기능을 활성화하면 주변 장치 액세스에 영향을 줄 수 있으므로 기본적으로 꺼져있을 수 있습니다.


답변

이 다른 스레드에 따르면,이 또한 성능에 약간의 영향을 갖고있는 것 같아요 있습니다
https://superuser.com/questions/545101/why-does-hp-recommend-that-i-keep-hardware-virtualization-off을

줄어든 명령 세트가 더 효율적이므로 나에게 관련이있는 것 같습니다. BIOS 옵션을 변경하면 직접 영향을 줄 수 있다고 생각하지 않았습니다.

그 영향이 중대한 지 여부는 알 수 없었지만,이 기능과 잠재적 인 보안 결함을 고려할 때 기본적으로 이러한 기능을 거의 사용하지 않는 것이 좋은 선택 인 것 같습니다.


답변

또 다른 이유는 gettimeofday와 같은 대부분의 사용자 커널 기능이 VDSO에서 이동되기 때문입니다.

때때로 가상화에서이 빠른 경로를 사용할 수 없습니다.

따라서 시스템은 다음을 수행 할 수 없습니다.

이 기능을 빠르게 실행

userland에서 kernel로 값 비싼 전환을 피하고 리턴


답변

@MDMarra 답변에서 제기 된 보안 문제 외에도 두 가지 추가 사항을 고려해야합니다.

  1. 사용 가능한 선택적 기능은 다른 기능과의 불쾌하고 예기치 않은 상호 작용을 일으킬 가능성이 적으며 추가 검증이 필요합니다. PC 공급 업체 는 거의 사용하지 않는 기능에 리소스를 사용하는 것을 싫어 하며 클라이언트 측 가상화도 그 중 하나입니다.

  2. # 1로 인해 인텔 기본 클라이언트 펌웨어 / BIOS Blob에 VT가 비활성화되어있는 것 같습니다. 따라서 VT 지원 클라이언트를 제공하는 공급 업체는 펌웨어를 준비 할 때 해당 옵션을 사용자 정의해야합니다.

즉, 현재 2019 년입니다. 기본적으로 VT가 활성화 된 클라이언트가 더 있습니다. 서버는 완전히 다른 문제입니다. 항상 VT가 활성화되어있을뿐만 아니라 VT-d도 종종 활성화됩니다.