시스템을 위한 가상 기계
시스템 가상 머신은 CPU와 메모리, 장치 등의 인터페이스를 제공해 게스트 운영 체제가 실행되게 할 수 있다. 물리 자원의 사용은 호스트와 가상화 소프트웨어가 관리한다. 게스트에 보이는 자원과 실제 물리 자원의 관계는 구현에 따라 다르다.
프로그램을 위한 실행 환경
언어 실행기에서 바이트코드를 처리하는 가상 머신은 운영 체제 전체를 실행하는 장치와 다른 범위의 개념이다. 하나의 프로그램을 위한 명령 집합과 실행 규칙을 제공할 수 있다. VM이라는 이름만으로 항상 별도 운영 체제가 있다고 생각해서는 안 된다.
가상화와 에뮬레이션
호스트의 하드웨어 지원을 활용하는 방식과 다른 명령 집합을 소프트웨어로 에뮬레이션하는 방식은 특성이 다르다. 같은 가상 머신이라는 표현 아래에서도 가능한 조합과 실행 비용은 달라질 수 있다.
격리와 자원 공유
가상 실행 환경은 분리된 시스템을 구성하는 데 쓰이지만 자원과 구현에 따른 경계가 있다. 가상 머신을 만들었다는 사실만으로 모든 설정 오류나 보안 문제가 사라지는 것은 아니다. 컨테이너처럼 커널을 공유하는 방식과도 구분해야 한다.