가상머신(VM) 이란 무엇이고, 왜 필요한 걸까?
: 어플리케이션 프로그램은 특정 ISA + OS 에 맞춰서 설계된다. 예를 들어서 매킨토시 앱은 PowerPC + MacOS 위에서만 돌아갈 수 있고, 리눅스 앱은 x86+Linux 위에서만 돌아갈 수 있다. 가상머신은 이러한 어플리케이션을 돌리는 데 있어서 생기는 한계점을 없애기 위해 등장하였다. 가상머신은 하나의 기기로 다양한 컴퓨팅(특히 네트워크 관련)이 가능하도록 하며, single OS 보다 더 보안에 강하다.(Portability , Flexibility 를 높이는!)
가상머신(VM)의 기본 원리와 종류
: 가상머신은 실제 호스트에 어플리케이션을 얹기 위해서 한 레벨의 소프트웨어를 만든다. 가상머신의 종류에는 각 프로세스를 가상화하는 Process VM, 하나의 완전한 시스템 (예를 들어 OS) 자체를 가상화하는 System VM 으로 나뉜다.
① 프로세스 VM은 왼쪽 사진과 같이 ISA + OS 위에 소프트웨어 레벨을 더함으로써 어플리케이션이 작동할 수 있도록 한다. 이 소프트웨어 레벨을 Runtime 이라고 부른다.
- 예시로 Java VM (JVM)이 있다.
② 시스템 VM은 왼쪽 사진과 같이 하드웨어 ISA와 맞지 않는 OS 를 돌리기 위해 사용된다. 이 소프트웨어 레벨을 Virtual Machine Manager, VMM 이라고 부른다.
- 예를 들어 맥에서 윈도우를 돌리려고 할때! 시스템 VM 이 돌아간다.
시스템 VM 위로는 여러 OS 를 가상화 시킬 수도 있다. 아래 그림에서 ①번은 하나의 VMM이 여러 OS 를 돌리는 걸 의미한다. 예를 들어 맥에서 여러개의 리눅스를 돌릴 수 있다. ②번은 가상 머신 내에 또 다른 가상머신을 두어 다른 두개의 OS 를 얹는 경우를 보여준다.
시스템 VM 은 Hosted, Stand-alone 으로 나뉜다. Hosted system VM 은 호스트 OS 에서 하나의 프로세스처럼 돌아가는 VM 이다. 따라서 하드웨어와 통신하기 위해서 호스트의 OS 에 의존한다. Stand-alone VM 은 하드웨어 위에 바로 설치되는 형태로, 하드웨어와의 통신이 모두 자체적으로 이뤄진다. 따라서 Hosted VM보다 성능이 좋다.
^^... ... 개많네요..
개인 공부 정리용으로 작성한 글입니다. 틀린 부분이 있을 수 있으니 참고용으로만 사용해주세요. 틀린 부분은 댓글로 알려주세요.♥
'컴퓨터 COMPUTER > Linux 리눅스' 카테고리의 다른 글
6. [Process State, Scheduling] : 프로세스의 상태와 스케쥴링 (0) | 2019.01.30 |
---|---|
5. [Processes] : 프로세스란 무엇인가 (0) | 2019.01.29 |
3. [System Call Handling] : 운영체제는 어떻게 시스템콜을 핸들링하는가. + System call vs. API (0) | 2019.01.29 |
2. [OS service, structure and design] : 운영체제의 역할, 구조, 디자인 (0) | 2019.01.29 |
1. [Hardware Protection for OS] : 운영체제는 어떻게 생겼을까 (2) | 2019.01.29 |