QEMU 공식 소개에 따르면문서:
가상화기로 사용되는 경우 QEMU는 호스트 CPU에서 직접 게스트 코드를 실행하여 기본에 가까운 성능을 달성합니다.
내 질문은 이 동작이 우리가 하이퍼바이저라고 부르는 프로그램(VirtualBox, KVM 등)과 어떻게 다릅니까? "호스트 CPU"에서도 "게스트 코드"를 실행하고 있지 않습니까? 또 어디에서 운영할까요?
고쳐 쓰다:
다음 그림이 나타나면 (원천)가 정확하다면 QEMU는 하이퍼바이저와 같은 전체 운영 체제가 아닌 애플리케이션을 실행하지만 서로 다른 아키텍처 유형 간의 변환을 수행하는 것으로 나타났습니다(예: ARM용으로 작성된 프로그램은 x86에서 실행될 수 있음).
위의 내용을 고려하여 실행 시나리오는 다음과 같습니다.
a) 특정 아키텍처(예: ARM)를 위한 완전한 운영 체제
b) 다른 아키텍처를 가진 호스트(예: amd64)
둘 다 공존해야 해
QEMU(아키텍처 간 매핑 수행)
그리고
KVM(하드웨어 하이퍼바이저 역할)
당신이 필요로 할?
답변1
인용한 구절은 문서의 이전 단락과 대조되어야 합니다.
QEMU를 머신 에뮬레이터로 사용하면 한 머신(예: ARM 보드)용으로 만들어진 운영 체제와 프로그램을 다른 머신(예: PC)에서 실행할 수 있습니다. 동적 번역을 사용하면 매우 좋은 성능을 얻을 수 있습니다.
문서에서는 바이너리 코드 변환을 포함하기 때문에 속도가 느린 에뮬레이터로 사용되는 QEMU와 가상화기로 사용되는 QEMU 간의 차이점을 강조합니다.
다이어그램으로 판단하면 불완전합니다. QEMU는 다목적이며 게스트 운영 체제를 실행하여 전체 시스템을 에뮬레이트하거나, 게스트 운영 체제를 다시 실행하여 전체 시스템을 가상화하거나, 게스트만 실행하여 호스트 운영 체제에서 CPU를 에뮬레이션 또는 가상화하는 데 단독으로 사용할 수 있습니다. 응용 프로그램. KVM과 함께 사용되는 장치를 에뮬레이트하는 데에도 사용할 수 있습니다.