QEMU

**QEMU**는 가상화 소프트웨어 가운데 하나다. Fabrice Bellard가 만들었으며 x86 이외의 기종을 위해 만들어진 소프트웨어 스택 전체를 가상머신 위에서 실행할 수 있다는 특징이 있다. 동적 변환기(Portable dynamic translation)를 사용한다.

## 허가서
여기를 볼 것.

* 소프트웨어 자체, 가속기: GNU 일반 공중 사용 허가서
* 가상 CPU 중심부 라이브러리: GNU 약소 일반 공중 사용 허가서
* 하드웨어 장치 모듈(*.so): BSD 허가서

마이크로소프트 윈도우에서 실행할 때는 독점 라이브러리인 FMOD를 쓰기도 한다.

## 지원 모드
QEMU는 두 가지 운영 모드가 있다:

; 사용자 모드 에뮬레이션
: 이 모드에서 QEMU는 다른 명령어 집합으로 컴파일된 단일 리눅스, 다윈/맥 오에스 X 프로세스를 실행할 수 있다. 시스템 콜은 엔디언과 32/64비트 미일치를 위해 주소 변환 된다. 와인과 DOSEMU는 QEMU의 주요 대상이다.
; 완전한 컴퓨터 시스템 모드 에뮬레이션
: QEMU는 프로세서와 가상 주변 기기들을 포함한 완전한 컴퓨터 시스템을 에뮬레이트한다. 한 컴퓨터에 여러 개의 가상 컴퓨터의 가상 호스팅을 제공하는 데 쓸 수 있다. QEMU는 리눅스 윈도, 도스, BSD와 같은 많은 게스트 운영 체제들을 시동할 수 있다. 여러 개의 x86, amd64, alpha, mips, 그리고 sparc과 같은 하드웨어 플랫폼들의 에뮬레이션을 지원한다.

프로그램의 대부분은 LGPL을 따른다. - 사용자 모드 에뮬레이션은 GPL을 따른다. (윈도 포트가 FMOD 사운드 계층을 사용하지만).

## 기능
* IA-32 (x86) PC, AMD64 PC, MIPS R4000, 선 SPARC sun4m, 선 SPARC sun4u, ARM 개발 보드 (Integrator/CP, Versatile/PB), SH4 SHIX 보드, 파워피씨 (PReP 및 파워 매킨토시), ETRAX CRIS 아키텍처의 에뮬레이션 지원.
* 호스트 시스템과 에뮬레이트 시스템 두 곳에서 다른 아키텍처 지원 (자세한 것은 홈페이지를 참조하라).
* 속도 개선: 어떠한 응용 프로그램은 실시간에 가깝게 실행할 수 있다.
* Copy-On-Write 디스크 이미지 포맷 추가. 수 기가바이트의 가상 드라이브를 선언할 수 있으며, 이 드라이브의 디스크 이미지는 실제로 사용되는 만큼만 용량을 차지할 것이다.
* 오버레이 이미지 추가. 게스트 운영 체제의 스냅샷을 유지하고 별도의 이미지 파일에 변경 사항을 기록할 수 있다. 게스트 운영 체제에 문제가 생기면 해당 스냅샷으로 되돌릴 수 있다.
* 다른 아키텍처에서 돌아가는 리눅스 바이너리 파일 실행 지원.
* 컴퓨터의 상태를 저장하고 저장한 상태로 되돌아갈 수 있다.
* 가상 네트워크 카드 에뮬레이션.
* SMP 지원.
* 게스트 운영 체제는 패치나 수정이 필요 없다.
* 0.11.x 판까지는 KQEMU 커널 모듈이 쓰일 때 성능이 개선되나, 그 이후 판에서는 사용할 수 없다.
* 명령 줄 도구는 X11을 돌리지 않고도 QEMU를 완전하게 제어할 수 있게 도와 준다.
* 가상으로 구현된 컴퓨터를 통합 VNC 서버를 거쳐 원격으로 제어한다.
* USB 태블릿 지원: "-usb -usbdevice tablet"로 활성화하여 사용할 수 있다.
* 관리자 권한은 따로 필요하지 않다.

## 가상 구현 시스템
QEMU는 CPU를 제외하고 다음의 시스템을 가상으로 구현한다.
* i440FX 호스트 PCI 브리지, PIIX3 PCI to ISA 브리지
* 시러스 CLGD 5446 PCI VGA 카드 또는 Bochs VESA 확장을 지원하는 더미 VGA 카드 (비표준 모드를 포함하는 하드웨어 수준).
* PS/2 마우스 및 키보드
* 하드 디스크와 CD-ROM을 지원하는 2 개의 PCI IDE 인터페이스
* 플로피 디스크
* NE2000 PCI 네트워크 어댑터
* 직렬 포트
* 애드립(OPL2) - 야마하 YM3812 호환 칩
* 크리에이티브 사운드 블라스터 16 사운드 카드
* 엔소닉 오디오PCI ES1370 사운드 카드
* 그라비스 울트라사운드
* 인텔 HD 오디오
* PCI UHCI USB 컨트롤러 및 가상 USB 허브.

## 가속기
### KQEMU
페브리스 벨러드(Fabrice Bellard)는 KQEMU (QEMU 가속기)라는 이름으로 리눅스 커널 모듈을 작성하였다. i386 플랫폼에서 i386 에뮬레이션 속도를 눈에 띄게 개선해 준다. 사용자 모드 코드를 호스트 컴퓨터의 CPU에서 바로 실행하고 커널 모드와 리얼 모드 코드에만 주변 기기와 프로세서의 에뮬레이션을 사용함으로써 속도 개선을 달성할 수 있다. KQEMU는 또 호스트 CPU에서 커널 모드 코드의 일부를 실행하는 커널 에뮬레이션 모드를 지원한다. QEMU의 가속기 모듈인 KQEMU는 원래 무료로 배포되긴 했지만, 클로즈드 소스 제품으로 공개되었다. 그러다가 2007년 2월 5일에 버전 1.3.0pre10이 공개되면서 GNU 일반 공중 라이선스를 통해 소스가 공개되었다. KQEMU는 Win4Lin Pro Desktop 제품을 통해 Win4Lin으로 라이선스되어 왔다. KVM과 달리, KQEMU는 호스트 CPU가 하드웨어 가상화를 지원하지 않더라도 수많은 게스트 운영 체제의 코드를 실행할 수 있고, 나중에 하드웨어 확장 지원이 예정되어 있었지만, 0.12.0 판 이후 QEMU에서 기본으로 확장 메모리를 지원(large memory supported)하면서 KQEMU 지원을 중단하였다.
### QVM86
QVM86은 QEMU 에뮬레이터에 x86 가상화 기능을 제공하는 리눅스 커널 모듈이었다. 가상화는 CPU 보호 계획을 사용하여 권한 이벤트를 가로채거나 가상으로 구현하여 에뮬레이션 코드가 호스트 CPU에 네이티브로 실행할 수 있게 도와 준다. GNU GPLv2 라이선스로 공개되었다. 원래 GPL 라이선스의 클로즈드 소스 KQEMU의 대안으로 개발되었다. QVM86의 개발자는 버추얼박스의 공개로 인해 2007년 1월 21일에 개발을 중단하였다.

## 최신 버전
위치는 공식 저장소, 기종은 x86, 버전은 최신 안정 버전 기준이다.
* 공식 저장소: **0.11.0-rc1**(2009년 7월 30일 출시)
* 데비안: **0.9.1-10lenny1**
* 우분투(통상): **0.10.0-1ubuntu1**
* 우분투(장기 지원 - dapper): **0.8.0-3ubuntu1**
* 우분투(장기 지원 - hardy): **0.9.1-1ubuntu1**
* 페도라: **0.10.6**
* 오픈수세: **0.10.1**
* 아치: **0.10.6-1**
* 젠투: **0.11.1**

## 같이 보기
* 가상 머신
* FreeOsZoo
* OpenBIOS
* QEMU 포트와 프론트엔드
** Q
** QVM86
** Win4Lin
** 다윈
* 다른 가상 머신
** Bochs
** Cooperative Linux
** KVM
** Microsoft Virtual PC
** Parallels Workstation
** Simics
** User-mode Linux
** VirtualBox
** VMware

## 각주

## 외부 링크

* 
* QEMU 포럼
* 윈도우에서의 QEMU
* 우분투에서의 QEMU
* 오픈솔라리스를 위한 QEMU
* 젠투에서의 QEMU
* QVM86 프로젝트 페이지
* QEMU 포럼에서의 QVM86

분류:가상화 소프트웨어
분류:자유 소프트웨어
분류:안드로이드 에뮬레이션 소프트웨어
분류:리눅스 에뮬레이션 소프트웨어
분류:윈도우 에뮬레이션 소프트웨어
분류:X86 에뮬레이터
분류:크로스 플랫폼 자유 소프트웨어
분류:자유 에뮬레이션 소프트웨어
분류:자유 가상화 소프트웨어
분류:MacOS 에뮬레이션 소프트웨어