QEMU

 

qemuとは

仮想化ソフトウェアの一種類

ソフトウエアスタック全体を仮想マシン上で実行できる特定がある

Portable dynamic translationを使用する

 

가상화 방식
완전 가상화 게스트 운영체제에서 물리 하드웨어를 분리하는 식으로 하이퍼바이저가 격리를 위한 기본 구성 요소를 구현
VMWare ESX 서버도 사용하는 개념
의사 가상화 제어 프로그램이 게스트 운영체제가 사용하는 하이퍼바이저 API(Application Program Interface)를 구현

Xen과 리눅스 KVM(Kernel-based Virtual Machine) 양쪽에서 사용

에뮬레이션 완벽한 하드웨어 환경을 에뮬레이션하는 방법으로 게스트 플랫폼을 가상화

에뮬레이션은 다양한 방법으로 구현이 가능하며, 심지어 같은 소프트웨어 내에서도 자신을 돌리는 작업도 가능

에뮬레이션을 통한 가상화 예는 QEMU와 Bochs

 

サポートモード

QEMUには二つの運営モードがある

使用者モードエミュレーション(사용자 모드 에뮬레이션) 사용자 모드 에뮬레이션은 (호스트 CPU로 동적 변환 과정을 수행하고 리눅스 시스템 호출을 적절히 바꾸는 방법으로) 특정 CPU용으로 만들어진 프로세스를 다른 CPU에서 수행하도록 만든다.

完全パソコンシステムモードエミュレーション(시스템 모드 에뮬레이션)

시스템 모드 에뮬레이션은 프로세서와 관련 주변 장치를 포함한 전체 시스템을 에뮬레이션하도록 만든다.

 

 

 

x86 코드를 x86 호스트 시스템에서 에뮬레이션할 때 QEMU 가속기라는 컴포넌트를 사용해서 거의 실제 기계에서 동작하는 성능을 발휘한다. 이 가속기는 (커널 모듈을 통해 리눅스에서) 에뮬레이션하는 코드를 호스트 CPU에서 직접 실행한다

 

하지만 기술 관점에서 QEMU를 흥미롭게 만드는 요소는 빠르고 이식성이 높은 동적 변환기다. 동적 변환기는 에뮬레이션을 제공하기 위해 목표(게스트) CPU를 호스트 CPU용 명령으로 실행 중에 바꿔준다. (특정 CPU에서 다른 CPU로 명령을 하나씩 사상하는) 단순무식한 방식을 동원하지만, 항상 쉬운 작업만은 아니며, 몇몇 경우에는 변환 대상 아키텍처에 기반을 두고 행동 방식을 바꾸거나 여러 명령어를 요구하는 경우도 있다.

QEMU는 목표 명령어를 우선 마이크로 연산자로 바꾸는 방식으로 동적 변환을 수행한다. 이 마이크로 연산자는 목적 파일로 컴파일된 C 코드 조각이다. 그리고 나서 핵심 변환기가 만들어진다. 핵심 변환기는 목표 명령어를 동적 변환을 위한 마이크로 연산자로 사상한다. 효율도 높을 뿐더러 호환성도 좋다.

QEMU에서 제공하는 동적 변환기는 또한 변환 부하를 최소로 만들기 위해 변환될 코드 블록을 캐시한다. 목표 코드 블록을 처음 만나면, 이 블록을 변환한 다음 변환 형식으로 저장한다. QEMU는 가장 최근에 사용된 변환 블록을 16MB 블록에 캐시한다. 심지어 QEMU는 캐시에 있는 변환된 블록을 무효화하는 방법으로 자기 자신을 변경하는 코드도 지원

 

 

 

QEMUの導入手順

1.OSを設置する箱(HDD)を確保

qemu-imgというコマンドで行う

QEMUはいろんな形式でイメージを作成できるがその中でも

qcow(qemu copy-on-write)がよりよい

理由は

디스크 이미지 크기가 이미지를 표현하는 물리 파일 이미지 크기와 같을 필요가 없다는 장점이 있다. 다시 말해, qcow 형식은 비어 있는 파일 시스템으로 좀더 조밀한 디스크 이미지를 만들어낸다. 예를 들어, 비어 있는 4GB짜리 디스크 이미지는 단지 16KB만 차지한다.

qemu-img create -f qcow disk.img 128M
Formating 'disk.img', fmt=qcow, size=131072 kB
2.OS設置

qemuコマンドを利用する

wget ftp://ftp.cflinux.fu/pub/cflinux/iso/cflinux-1.0.iso
qemu -hda disk.img -cdrom /root/cflinux-1.0.iso -boot d

 

3.再起動後・実行

CD-ROM에 탑재된 배포판 설치 과정을 따라서, 에뮬레이션된 하드 디스크에 ISO 이미지를 완벽하게 설치를 마친다. 설치가 끝나면 재시동이 필요하다. 이 시점에서 에뮬레이션을 끝낼 수 있다(qemu 윈도우에서 Ctrl-C를 누른다). 다음 명령으로 완전히 새로 설치한 운영체제로 컴퓨터를 시작하자.

 qemu -hda disk.img

 

http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/cloud/Qemu/Basic

http://terzeron.net/wp/?p=615

http://zerolism.tistory.com/entry/QEMU-%EB%9E%80

http://blog.naver.com/PostView.nhn?blogId=ggeunkk&logNo=50190493591&beginTime=0&jumpingVid=&from=section&redirect=Log&widgetTypeCall=true

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です