꾸준한 개발자

계속적인 성장을 추구하는 개발자입니다. 꾸준함을 추구합니다.

계속 쓰는 개발 노트

운영체제 (OS)

가상 머신(Virtual Machine)

gold_dragon 2021. 4. 25. 00:37

하나의 하드웨어에 다수의 운영체제를 설치하고, 개별 컴퓨터처럼 동작하도록 하는 프로그램입니다.

Virtual Machine Type1 (native / bare metal)

하이퍼 바이저(VMM)는 운영체제와 응용 프로그램을 물리적 하드웨어에서 분리하는 프로세스입니다. 하이퍼바이저 또는 버추얼 머신 모니터라고 하는 소프트웨어가 Hardware에서 직접 구동합니다.

Virtual Machine Type2

하이퍼바이저 또는 버추얼 머신 모니터라고 하는 소프트웨어가 Host OS상위에 설치됩니다.

전가상화

각 가상머신이 하이퍼바이저를 통해서 하드웨어와 통신합니다. 하이퍼바이저가 마치 하드웨어인 것처럼 동작하기 때문에 가상머신의 OS는 자신이 가상 머신인 상태인지 모릅니다. VMM이 통역사 역할을 하게 됩니다.

반가상화

각 가상머신에서 직접 하드웨어와 통신합니다. 각 가상머신에 설치되는 OS는 가상머신인 경우, 이를 인지하고 각 명령에 하이퍼바이저 명령을 추가해서 하드웨어와 통신합니다. VMM은 운영체제와 같이 리소스 관리를 해주게 됩니다.

 

최근에는 HW 성능 개선으로 전가상화 기술을 선호하고 있습니다.

VMWare

대중적인 가상머신 프로그램으로써 type2 가상머신입니다.

KVM

AWS(아마존 클라우드 컴퓨팅 서비스) 등에서 사용하는 type1 가상머신입니다.

Docker

가상머신은 컴퓨터 하드웨어를 가상화하기 때문에, 하이퍼바이저 사용 및 추가 OS 필요 등 성능 저하 이슈가 있습니다. Docker의 경우 운영체제 레벨에서 별도로 분리된 실행환경을 제공합니다. 마치 리눅스 처음 설치했을 때와 유사한 실행환경을 만들어주는 리눅스 컨테이너 기술을 갖고 있습니다.

Java Virtual Machine

응용 프로그램 코드 실행을 가상 환경에서 실행해주는 가상머신입니다.

'운영체제 (OS)' 카테고리의 다른 글

부팅의 이해  (0) 2021.04.24
파일 시스템의 이해  (0) 2021.04.24
가상 메모리 - 세그멘테이션  (0) 2021.04.23
페이지 교체 정책  (0) 2021.04.23
가상 메모리 - 페이징 시스템  (0) 2021.04.22