Docker로 작업을 시작하고 몇 시간 동안 작동하려고 시도한 후 BIOS가이를 차단하고 BIOS 설정을 조정해야한다는 것을 알았습니다. BIOS가 어떻게 든 마더 보드와 관련이 있다고 들었습니다.
BIOS가 어떻게 이런 종류의 프로세스를 차단하여 운영 체제를 방해 할 수 있습니까?
Docker로 작업을 시작하고 몇 시간 동안 작동하려고 시도한 후 BIOS가이를 차단하고 BIOS 설정을 조정해야한다는 것을 알았습니다. BIOS가 어떻게 든 마더 보드와 관련이 있다고 들었습니다.
BIOS가 어떻게 이런 종류의 프로세스를 차단하여 운영 체제를 방해 할 수 있습니까?
답변:
CPU가 프로그램을 차단하고있는 것은 아닙니다. 낮은 수준의 앱 개념이 없습니다. 문제는 Linux 이외의 운영 체제에서 Docker 는 하드웨어 가상화가 필요할 수 있다는 것입니다. OS를 지정하지 않았지만 약간의 스누핑을 수행하여 Windows를 사용하고 있음을 발견했습니다.
하드웨어 가상화는 이름에서 알 수 있듯이 CPU가 가상화에 도움을주는 CPU 기능입니다. 많은 컴퓨터에서 BIOS에서 활성화해야합니다. 이것은 부분적으로 보안 문제 를 방지 하기 위한 것 입니다. 기본적으로 적극적으로 차단되지 않고 효과적으로 부재했던 기능을 사용하려고했기 때문에 프로그램을 시작할 수 없습니다.
a tiny bit of snooping
Ha..ha
Ben N 답변은 가장 유용하고 명확한 답변입니다.
그러나 여전히 궁금한 사람들을 위해 여기에 전체 이야기가 있습니다.
가상화는 CPU의 하드웨어 지원으로 이루어집니다. 가상화 된 OS는 호스트 하나를 방해하므로 동일한 리소스에 대해 경쟁하므로 게스트가 하드웨어에 대한 액세스를 제어 할 수 없도록하는 메커니즘이 필요합니다. 소프트웨어, 속도가 느린 기술 또는 CPU의 도움으로 다운 될 수 있습니다.
하드웨어 지원 가상화는 특정 선택적 지침으로 구현되며 인텔 매뉴얼 3B 파트 3의 23, 24, 25, 26, 27 및 28 장에서 읽을 수 있습니다 . 소프트웨어는 사용하기 전에 먼저이 지침이 지원되는지 확인해야합니다.
보안상의 이유로 CPU에는 특수 레지스터가 있으며 , IA32_FEATURE_CONTROL 이라는 MSR 은 활성화 또는 비활성화하는 기능을 나타내는 비트를 보유합니다.
인용
비트 0은 잠금 비트입니다. 이 비트가 지워지면 VMXON은 일반 보호 예외를 발생시킵니다. 잠금 비트가 설정되면이 MSR에 대한 WRMSR은 일반 보호 예외를 발생시킵니다. MSR은 파워 업 리셋 조건이 될 때까지 수정할 수 없습니다 . 시스템 BIOS는이 비트를 사용하여 VMX 지원을 비활성화하기위한 BIOS 설정 옵션을 제공 할 수 있습니다. 플랫폼에서 VMX 지원을 활성화하려면 BIOS가 잠금 비트뿐만 아니라 비트 1, 비트 2 또는 둘 다 (아래 참조)를 설정해야합니다.
기본 사항은 일단 레지스터가 잠기면 전원을 켤 때까지 잠금을 해제 할 수 없다는 것 입니다.
BIOS / UEFI가 먼저 나오므로, 적절한 비트를 지우고 레지스터를 잠그면 가상화가 비활성화되어 OS가이를 방지 할 수 있습니다. 이 방법으로 가상화 기능이 비활성화되면 CPU는 옵션 확장 기능이 누락되어 실제로 사용되는 경우 오류가 발생하여 소프트웨어가 하드웨어 가상화를 사용할 수 없다고보고합니다.