----virtual machine----
- 물리적으로 존재하는 컴퓨터가 아닌, 다른 컴퓨터가 만들어내는 가상의 컴퓨터를 말한다.
즉, 컴퓨터 안에 있는 컴퓨터인 셈이다. 그래서 가상 머신으로 돌린 컴퓨터에서 가상 머신을 돌리는 것도 가능하다. (이걸 왜 함..?)
-------용어 설명-------
emulation (에뮬레이션)
모든 부품의 기능을 소프트웨어적으로 구현하는 방식을 에뮬레이션이라고 부른다. 가장 속도가 떨어지는 방식이나, 범용성은 가장 뛰어나다.
가상화
emulation과 달리 CPU 등 주요 부품의 구현에서 하드웨어의 기능 지원을 받으면 가상화라고 부른다. 속도가 빠르다는 장점이 있으나, 해당 하드웨어 기능에 크게 종속되어 범용성이 상당히 떨어진다.
ex . CPU를 가상화 형식으로 구현하면 실제 컴퓨터의 CPU가 처리할 수 있는 기계어 세트에서 크게 벗어나는 가상 CPU를 지원할 수 없다.
+ 반 가상화도 있으나 속도가 가장 빠르고 범용성이 가장 떨어진다는 것만 알고 넘어가자.
-------사용 목적-------
컴퓨터 안에 다른 컴퓨터를 만든다는 특성상, 용도가 무궁무진하다.
주된 이유는 서버 통합. 최소의 물리적 리소스를 이용해 효율적인 배포 및 관리가 가능하다. (ex. 클라우드 서비스)
하나의 컴퓨터로 동시에 서로 다른 2개 이상의 운영체제를 실행하고 싶을 때 (특히 서로 호환 되지 않는)
하나의 컴퓨터의 자원을 여러 명에게 나누어 주고 싶은데, 각 사용자 간의 상호 간섭을 없애고 싶을 때 (클라우드 등에서 사용하는 가상 머신이 해당됨)
컴퓨터의 다른 부분에는 영향을 주지 않는 독립 환경을 만들고 싶을 때 (내 컴퓨터에 하면 위험할 것 같은거 해볼 수 있음 ex. 웹하드, 토렌트, etc...)