가상머신

최근 수정 시각:

1. 가상머신이란2. 사전지식
2.1. 사전지식 관련 참조 문서
3. 원리
3.1. 세부 용어 및 기술 설명
4. 가상머신 생성용 프로그램
4.1. 범용4.2. x86/x64 계통 가상머신 전용
5. 사용법
5.1. 목적5.2. VirtualBox의 사용법
5.2.1. VirtualBox 다운로드5.2.2. 리눅스 다운로드5.2.3. 리눅스 설치
5.3. VMware의 사용법
6. 관련문서
6.1. 범용

1. 가상머신이란[편집]

물리적으로 존재하는 컴퓨터가 아닌, 다른 컴퓨터가 만들어내는 가상의 컴퓨터. 즉 컴퓨터 안에 있는 컴퓨터.
윈도우즈 10의 '가상 데스크탑' 기능과는 다르다. [1]

2. 사전지식[편집]

2.1. 사전지식 관련 참조 문서[편집]

3. 원리[편집]

컴퓨터의 주요 부품인 CPU, RAM, 하드디스크 등을 가상으로 생성하여 구동하는 식으로 동작하게 된다.
이를 위해서는 각 부품의 기능을 소프트웨어적으로 구현할 필요가 있다.

3.1. 세부 용어 및 기술 설명[편집]

3.1.1. 에뮬레이션, 가상화, 반가상화[편집]

모든 부품의 모든 기능을 소프트웨어적으로 구현하는 방식을 에뮬레이션 이라고 부른다. 이 방식은 정의 상 가장 속도가 떨어지는 방식이나, 범용성은 가장 뛰어나다. 예를 들면, bochs를 사용하면 ARM 계열의 스마트폰 위에서 x86 가상머신을 만들어 윈도우 등의 x86 운영체제를 설치할 수 있으며, QEMU를 사용하면 x86 플랫폼에서 ARM 계열 가상머신을 만들어서 안드로이드를 설치할 수 있다.

반면, CPU 등 주요 부품의 구현에서 하드웨어의 기능 지원을 받으면 가상화 라고 부른다. 이러한 가상화는 속도가 빠르다는 장점이 있으나, 해당 하드웨어 기능에 크게 종속되기 때문에 범용성이 상대적으로 떨어진다. 예를 들면, CPU를 가상화 형식으로 구현하면 실제 컴퓨터의 CPU가 처리할 수 있는 기계어 세트에서 크게 벗어나는 가상 CPU를 지원할 수 없게 된다.

마지막으로, 완전한 에뮬레이션/가상화를 포기하고, 가상머신 내에 설치될 OS 에 수정을 가하거나 전용 드라이버를 사용하여 하드웨어에 직접 접근하는 방안을 별도로 마련하는 방법이 있으며, 이는 반가상화 라 부른다. 이 방안은 속도가 가장 빠르나, 하드웨어 기능 뿐만이 아니라 운영체제 및 드라이버에도 종속성이 생기기 때문에 범용성은 가장 떨어진다.

CPU 를 예시로 들면, 가상머신 내부에서 가상 CPU 모델을 구축하여 가상머신에서 명령어가 수행될 때마다 가상 CPU가 처리할 내용을 모델에 따라 업데이트하는 방식은 에뮬레이션에 해당하고, 가상머신의 명령어를 대부분 실제 CPU에서 직접 실행하나, 일부 특수 케이스에 해당하는 명령어들만 별도 처리를 하는 방식은 가상화에 해당한다. 그리고 문제가 있는 기계어 부분을 미리 다른 명령어로 대체하고, 관련 기능을 사용할 땐 하이퍼바이저와 별도 통신 채널을 활용하는 등의 기법이 반가상화에 해당한다.

CPU 가상화에서, Binary Translation 과 같이 가상머신에서 실행하는 기계어 코드를 동적으로 수정하는 방식과, 하드웨어 자체에서 제공하는 가상화 지원 기능을 활용하는 방법이 있다. 현재 나오는 대부분의 x86/x64 CPU 는 CPU 및 RAM 에 대한 가상화를 돕는 기능을 지원하며, VT-x 등이 이에 해당한다.

3.1.2. Binary Translation[편집]

과거에 사용되던 가상화 기법 중 하나. 하드웨어 가상화 지원이 개발되기 전부터 VMware 사에서 애용하던 기법이다. 가상머신에서 호출되는 기계어 중, 가상머신에서 그대로 호출하면 안 되는 기계어 명령[2]을 발견할 경우 해당 코드만 다른 내용으로 고쳐서 실행하는 방식이다. 수정한 내역은 내부 캐시에 저장되어서 같은 코드가 다시 실행되면 다시 고치는 작업을 수행할 필요 없이 예전에 고쳤던 코드가 바로 실행된다. 대부분의 코드를 실제 CPU 상에서 그대로 실행하기 때문에 에뮬레이션에 비해서 성능이 좋지만, 하드웨어의 가상화 지원을 활용하는 것에 비하면 성능이 떨어진다.[3]

4. 가상머신 생성용 프로그램[편집]

4.1. 범용[편집]

4.2. x86/x64 계통 가상머신 전용[편집]

5. 사용법[편집]

5.1. 목적[편집]

컴퓨터 안에 다른 컴퓨터를 만든다는 특성 상, 가상머신의 용도는 무궁무진하다.

  • 하나의 컴퓨터로 동시에 서로 다른 2개 이상의 운영체제를 실행하고 싶을 때

    • 리눅스

    • 타 언어 또는 하위버전 윈도우 : 호환되지 않는 프로그램을 돌리고 싶을 때

  • 하나의 컴퓨터의 자원을 여러 명에게 나누어 주고 싶은데, 각 사용자 간의 상호 간섭을 없애고 싶을 때

    • 21세기 들어서 널리 사용되는 클라우드 등에서 사용하는 가상머신이 이러한 경우에 해당한다.

  • 컴퓨터의 다른 부분에는 영향을 주지 않는 독립 환경을 만들고 싶을 때

    • 악성코드 분석 등을 할 때 실수로 컴퓨터 전체가 감염되지 않도록 가상머신을 사용하는 방법 등이 있다.

    • 토렌트도 가상머신에서 돌리면 본 컴퓨터에 영향을 끼치지 않고 마음껏 다운받을 수 있다. 토렌트의 문제는 액티브X그리드 프로그램으로 인해 컴퓨터 자원을 윈도우 시작과 동시에 잡아먹기 시작한다는 점. 가상머신을 쓰면 그런 문제가 한큐에 해결된다.

  • 추가바람


에뮬레이션의 범용성이 반드시 필요한 경우를 제외하면 성능을 위하여 가상화 기법 또는 반가상화 기법을 사용하는 경우가 많다. 실제로 가상화 기법을 적용한 x64 가상머신의 동작 속도는 실제 컴퓨터의 동일 스펙 컴퓨터에 비하여 5~10% 의 성능 저하도 보이지 않는 경우가 많다.

5.2. VirtualBox의 사용법[편집]

본 문서의 가상머신 사용법은 2016.05.10을 기준으로 작성, 이후 변동이 가능하다는 것을 밝힙니다.

본 문서의 가상머신 사용법은 Windows 10, Chrome, VirtualBox 5.0, Ubuntu16.04를 기준으로 작성되었음을 밝힙니다.
따라서, 본 문서를 읽고 가상머신을 사용하실 분들은, 본인의 컴퓨터 사양, 운영체제, 등을 확인하고 고무적으로 아래 과정을 따라하시기 바랍니다.

5.2.1. VirtualBox 다운로드[편집]

1. http://virtualbox.org 접속, "Download VirtualBox 5.0" 클릭
2. "for Windows host"우측 청색 링크클릭 [4]
3. 브라우저내에서 자동 다운 (인스톨러가 설치된다는 것. 후에 설치과정이 요구된다)

5.2.2. 리눅스 다운로드[편집]

1.http://ubuntu.com 접속
2.상단배너의 "Download"버튼 클릭
3."Ubuntu Desktop" 주황색 링크 클릭
4.우측 황색의"Download" 클릭
5.새로운 페이지내에서 스크로 최하단으로 내린후, 적색의 "Not now, take me to the download >" 링크 클릭
6.브라우저내에서 자동 다운 이때 시간이 좀 걸리니 느긋하게 차나 커피를 한잔하면 된다

5.2.3. 리눅스 설치[편집]

1.VirtualBox 실행, 상단 메뉴의 "새로만들기" 항목 클릭
2.청색"이름 및 운영체제"항목창이뜬후, 이름에 사용자가 원하는 이름입력, 종류항목을 "Linux"로 변경, 버전(V)항목은 "Ubuntu(64-bit)"로 선택
3.(2)과정 진행후하단의 "다음 (N)" 클릭
4."메모리 크기"항목의 바의 컨트롤러부분을 조절해 가상 OS의 메모리크기를 지정 [5]
5.(3)과정 반복
6."하드디스크"항목 내용무시, 하단의 "만들기"클릭
7."하드 디스크파일 종류"항목 내용 무시,하단의 "다음 (N)"클릭
8."물리적 하드 드라이브에 저장"항목 내용 무시, 하단의 "다음 (N)"클릭
9."파일위치 및 크기"항목의 (용량조절)바의 컨트롤러부분을 조절해 가상OS의

하드 드라이브용량 크기를 지정한다. [6]

10.(3)과정 반복
11.위의 일련의 과정을 거치면, 상단바에 청색 화살표와 "시작(T)"로 표기된 버튼 클릭
12.후에 팝업되는 "시동 디스크 선택"창의 폴더 탐색 버튼(아이콘으로 표기) 클릭후, 컴퓨터 탐색기 내에서 다운받은 (Ubuntu-'이하생략') 이미지파일을 열고 하단의 "시작"버튼 클릭
13.부팅이 완료되기전까지 차한잔 마시며 대기
14.부팅이완료되면 좌측 언어선택 메뉴에서 "한국어"를 선택
15.우측 "Ubuntu 설치"버튼클릭
16.다음 내용 무시, "계속"클릭
17. "설치형식"항목 무시 후, 우측하단의 "지금 설치(I)"클릭 [ * 이때만약, "바뀐점을 디스크에 쓰시겠습니까?"라는팝업이 뜰경우, 우측하단 "계속"클릭 ]
18."어디에살고 계신가요?"항목 서울 지역대 선택후, "계속"클릭
19."키보드배치" 항목에서 좌측 메뉴에서 "한국어"선택후 "계속" 클릭
20.사용자 입맛 정보 대로 "당신은 누구십니까 "항목 설정후 "계속" 클릭
21."우분투를 사용해주셔서 감사합니다" 항목을 보며 차한잔 대기 [7]

5.3. VMware의 사용법[편집]

6. 관련문서[편집]

6.1. 범용[편집]

[1] 단, Hyper-V는 가상머신이 맞다[2] x86의 링0 권한 등 특수 권한이 필요한 명령어 등이 해당된다.[3] 단, 1세대 하드웨어 가상화 지원은 상당히 효율이 떨어졌기 때문에 당시에는 Binary Translation 이 더 성능이 좋았다.[4] Mac OS X 사용자 분들은 바로 아래 "for OS X hosts"우측 청색링크를 클릭하시고, 기타 운영체제 사용자분들은 자신의 운영체제에 맞는 항목을 선택하시기 바랍니다 [5] 이때, 2048MB 권장하나, 사용자 컴퓨터의 사양과 원하는 대로 조절하면 된다[6] 이때, 10GB를권장하나, 사용자 컴퓨터의 사양과 원하는 대로 조절하면 된다[7] 커피나 코코아가 취향이라면 ....