본문 바로가기
컴퓨터 COMPUTER/Linux 리눅스

4. [Virtual Machine(VM)] : 가상머신이란 무엇인가

by 매실이 maesiri 2019. 1. 29.
반응형

가상머신(VM) 이란 무엇이고, 왜 필요한 걸까?

: 어플리케이션 프로그램은 특정 ISA + OS 에 맞춰서 설계된다. 예를 들어서 매킨토시 앱은 PowerPC + MacOS 위에서만 돌아갈 수 있고, 리눅스 앱은 x86+Linux 위에서만 돌아갈 수 있다. 가상머신은 이러한 어플리케이션을 돌리는 데 있어서 생기는 한계점을 없애기 위해 등장하였다. 가상머신은 하나의 기기로 다양한 컴퓨팅(특히 네트워크 관련)이 가능하도록 하며, single OS 보다 더 보안에 강하다.(Portability , Flexibility 를 높이는!)


가상머신(VM)의 기본 원리와 종류

: 가상머신은 실제 호스트에 어플리케이션을 얹기 위해서 한 레벨의 소프트웨어를 만든다. 가상머신의 종류에는 각 프로세스를 가상화하는 Process VM, 하나의 완전한 시스템 (예를 들어 OS) 자체를 가상화하는 System VM 으로 나뉜다.


process 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보다 성능이 좋다.

^^... ... 개많네요..




개인 공부 정리용으로 작성한 글입니다. 틀린 부분이 있을 수 있으니 참고용으로만 사용해주세요. 틀린 부분은 댓글로 알려주세요.♥


반응형