문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 가상머신 (문단 편집) ==== [[에뮬레이션]], [[가상화]], 반가상화 ==== 모든 부품의 모든 기능을 소프트웨어적으로 구현하는 방식을 [[에뮬레이션]]이라고 부른다. 이 방식은 정의 상 가장 속도가 떨어지는 방식이나, 범용성은 가장 뛰어나다. 예를 들면, [[Bochs]]를 사용하면 ARM 계열의 스마트폰 위에서 x86 가상 머신을 만들어 윈도우 등의 x86 운영체제를 설치할 수 있으며, [[QEMU]]를 사용하면 x86 플랫폼에서 ARM 계열 가상 머신을 만들어서 안드로이드를 설치할 수 있다. 반면, CPU 등 주요 부품의 구현에서 하드웨어의 기능 지원을 받으면 [[가상화]]라고 부른다. 이러한 가상화는 속도가 빠르다는 장점이 있으나, 해당 하드웨어 기능에 크게 종속되기 때문에 범용성이 상대적으로 떨어진다. 예를 들면, CPU를 가상화 형식으로 구현하면 실제 컴퓨터의 CPU가 처리할 수 있는 기계어 세트에서 크게 벗어나는 가상 CPU를 지원할 수 없게 된다. 마지막으로, 완전한 에뮬레이션/가상화를 포기하고, 가상 머신 내에 설치될 OS에 수정을 가하거나 전용 드라이버를 사용하여 하드웨어에 직접 접근하는 방안을 별도로 마련하는 방법이 있으며, 이는 반가상화라 부른다. 이 방안은 속도가 가장 빠르나, 하드웨어 기능 뿐만이 아니라 운영체제 및 드라이버에도 종속성이 생기기 때문에 범용성은 가장 떨어진다. CPU를 예시로 들면, 가상 머신 내부에서 가상 CPU 모델을 구축하여 가상 머신에서 명령어가 수행될 때마다 가상 CPU가 처리할 내용을 모델에 따라 업데이트하는 방식은 에뮬레이션에 해당하고, 가상 머신의 명령어를 대부분 실제 CPU에서 직접 실행하나, 일부 특수 케이스에 해당하는 명령어들만 별도 처리를 하는 방식은 가상화에 해당한다. 그리고 문제가 있는 기계어 부분을 미리 다른 명령어로 대체하고, 관련 기능을 사용할 땐 하이퍼바이저와 별도 통신 채널을 활용하는 등의 기법이 반가상화에 해당한다. CPU 가상화에서, Binary Translation과 같이 가상 머신에서 실행하는 기계어 코드를 동적으로 수정하는 방식과, 하드웨어 자체에서 제공하는 가상화 지원 기능을 활용하는 방법이 있다. 현재 나오는 대부분의 x86/x64 CPU 는 CPU 및 RAM 에 대한 가상화를 돕는 기능을 지원하며, VT-x 등이 이에 해당한다. 더 간단히 요약하자면 > 에뮬레이션 | 모든 걸 소프트웨어적으로 구현 > 가상화 | 주요 부품의 구현에서 하드웨어적 지원을 받음 > 반가상화 | 100% 완벽한 에뮬레이션, 가상화를 포기한 방법 퍼포먼스와 범용성을 비교하면 아래와 같다. > 퍼포먼스 (속도) > 에뮬레이션 < 가상화 < 반가상화 > 범용성 > 반가상화 < 가상화 < 에뮬레이션저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기