가상화 관련 질문입니다. ( KVM , Qeum )

trymp의 이미지


가상화와 관련해서 공부하고 있습니다.

두기지 질문사항이 있는데요.

KVM 과 Qemu 가 있는 것으로 알고 있는데요.

이 두개가 같이 쓰이는 것이 아니고 따로 쓰이는 것인가요?

그리고 OS 나 app 가 지금 가상화에서 돌고 있다는 것을 판단할 수 있다고 하는데,

KVM 을 쓰면 OS 나 app 가 가상화에 돌고 있지 않고 실제 HW 상에서 도는 것으로

완벽하게 속일 수 있는 건가요???

가상화에 대한 지식이 부족해서 고수님들의 조언 부탁드립니다.

익명 사용자의 이미지

우선 QEMU는 독립적으로 사용될 수 있습니다. 여러가지 CPU를 Bianry Translation 기술을 사용하여 에뮬레이션 해줍니다.

QEMU에서는 모든 명령어를 번역해야 하기 때문에 OS를 설치하여 사용할 경우 기존 VMware와 같은 Hypervisor보단 속도가 느립니다.

그리고 KVM은 CPU 가상화 기술(VT-X)을 이용하는 리눅스 모듈 형태의 Hypervisor 입니다. 순수 KVM 코드에서는

I/O나 VGA, 사운드와 같은 다양한 하드웨어를 에뮬레이션 해주는 기능이 없습니다. 따라서 KVM에서는 이와같은

부분들을 QEMU를 이용하여 사용하고 있습니다. 즉 KVM은 QEMU에서 필요한 기능을 사용하는 구조로 같이 사용된다고 말할 수 있습니다.

그리고 마지막므로 KVM은 OS나 App가 실제 하드웨어에서 수행되는 것처럼 논리적으로 완변하게 속일 수 있습니다.

하지만 각 가상화 기술에서 제공하는 디바이스 드라이버를 사용하는지 체크하던가, 특정 작업을 수행했을때 리얼 머신보다

처리속도가 느려진졌다는 사실 등으로 가상머신이란 것을 알아챌 수는 있을 겁니다.

trymp의 이미지

^^