Virtual Machine¶
개요¶
가상 머신(Virtual Machine, VM)이란 물리적인 컴퓨팅 환경을 논리적으로 모방하여 구현한 것이다. 가상 머신은 실제 하드웨어와는 직접적인 통신이 없는 가상의 시스템이고, 내부의 소프트웨어가 외부 환경에서 벗어날 수 없고, 자원에 제한을 받는다. (샌드박스) 하드웨어에서 가상 머신의 자원을 분리하고 적절히 프로비저닝하여 가상 머신에서 사용할 수 있도록 하는 소프트웨어로 Hypervisor 가 있다.
가상 머신을 사용하는 이유¶
소량의 컴퓨팅 자원을 필요로 하는 애플리케이션들을 대규모의 물리적 컴퓨터에 배치하기 위해서
분리된 환경을 제공하여 다른 시스템에서 실행되는 대상을 방해하지 않기 위해서
개발 중 테스트 혹은 일회성 목적으로 사용하기 위해서
또, 가상 머신을 사용하면 실제 시스템과 다른 ISA(Instruction Set Achitecture)를 제공할 수 있으므로, 하나의 시스템 안에 여러 다른 시스템을 구축할 수 있다.
참고
- ISA란 뭔가요?
프로세서가 인식해서 기능을 이해하고 실행할 수 있는 명령어들의 집합을 말한다. 최하위 레벨의 프로그래밍 인터페이스로, 프로세서가 실행할 수 있는 모든 명령어들을 포함한다. CISC {x86}, RISC {ARM, MIPS} 등
가상 머신의 종류¶
- 시스템 가상 머신 (하드웨어 가상 머신)
물리 호스트 컴퓨터를 논리적으로 여러 컴퓨터로 나눈다.
가상화를 제공하는 소프트웨어 계층을 Hypervisor 라고 한다.
- 프로세스 가상 머신 (응용 프로그램 가상 머신)
운영체제 위에서 하나의 프로세스를 위한 응용 프로그램을 실행한다.
응용 프로그램이 시스템 환경에 관계 없이 실행되도록 추상화한다.
자바 JVM, 마이크로소프트 .NET 등