QEMU

 

[image]
위 사진은 이걸로 ReactOS를 구동하는 모습이다.
'''Q'''uick '''EMU'''lator 홈페이지
하드웨어 가상화의 기능을 갖춘, 무료이자 오픈 소스 CPU 에뮬레이터이다. QEMU에 KVM을 적용할 수 있으며, 사실상 리눅스에서 사용하는 가상머신의 표준이다.
1. 개요
2. 설명
3. 특징 : VGA Passthrough
3.1. 설정 방법
3.2. 참고사항
3.2.1. 호스트 VGA 수동설정
4. 활용
4.1. 고전게임머신
4.1.1. 설치방법
4.1.2. 윈도우95의 경우
4.2. 해킨토시
4.2.1. 설치방법
4.3. IBM AIX 학습
5. GUI 프론트엔드
6. 기타
7. 안드로이드
8. QEMU/Wine
9. 같이보기


1. 개요


QEMU는 '''하이퍼바이저'''를 채용했다. 정확하게는 Type-2 하이퍼바이저이다. 이를 이용해 가상 머신 여럿을 한 플랫폼으로 돌릴 수 있다. 이와 비슷한 소프트웨어로는 VMwareVirtualBox 등이 있다.

2. 설명


QEMU를 가상화 머신이 아닌 기본적인 에뮬레이터로 사용할 때에는 성능이 나쁘다.[1] 하지만 그건 특별한 하드웨어를 가상화할 때나 그렇고, 일반적인 데스크탑이나 서버 가상화 시에는 -enable-kvm 옵션으로 리눅스의 가상화 커널인 KVM을 적용하는데, 그러면 qemu는 에뮬레이터가 아니라 하이퍼바이저로 작동한다. 이는 VMware처럼 가상화할 수 있는 부분(CPU 등)은 하드웨어를 그대로 쓰고 (VT-x 기술) 이외의 부분만 에뮬레이션으로 처리한다. 그 결과 가상화의 성능은 기본적으로 좋은 편이다. 또, 가상 디스크에 라이트백 쓰기 캐시를 지원하여 호스트 메모리만 충분하면 일반 하드로도 SSD 부럽지 않은 쓰기 속도를 구현한다[2](윈도우 같은 건 설치하는 데에 5분도 안 걸린다).
2019년 부터 5세대 이상의 인텔 CPU에 장착된 아이리스 GPU를 이용한 VGA 전가상화를 안정판에서도 지원하여 인텔의 GPU 드라이버가 VM에서 그대로 설치되고 작동하는 등 경쟁제품들은 서버군에서만 제공하는 기능을 구현할 수 있어 데스크탑의 하이퍼바이저로는 가히 최강이다.
상술했듯 KVM을 통해 가상화를 구현하나, 이는 리눅스에서 쓰는 가상화 기술이고, 윈도우/맥에서는 HAXM을 쓴다.

3. 특징 : VGA Passthrough


다른 가상화 프로그램과 차별되는 독보적 장점은 데스크탑 환경으로 VGA Passthrough를 지원하는 것이다. VMWare는 서버용 운영체제인 ESXi로만 할 수 있고, VirtualBox의 PCI Passthrough는 VGA를 지원하지 않는다. Xen은 VGA Passthrough 성능이 상당히 낮은 데다가#참고[3] 호스트(Dom0)의 운영 기능이 매우 제한적인 탓에 데스크탑으로 사용하기 곤란하다.(Xen의 원조인 XenServer는 ESXi 처럼 호스트의 데스크탑 기능을 아예 지원하지 않는다.)
호스트는 CPU에 내장된 GPU를 쓰거나 아예 또다른 그래픽 카드를 달아서 사용하고 게스트 윈도우에 PCI Passthrough를 이용하여 가상 머신 내 운영체제에 실제 그래픽 카드 한 개를 붙여준다.[4] VMware Workstation 등에서도 그래픽 카드는 어디까지나 일부만 하드웨어와 직접 연관돼 있는데, QEMU에서 PCI Passthrough로 직접 가상 머신에 붙여주는 방법으로 옛날부터 지원이 부실하였던 '가상머신으로 게임'[5]로 을 할 수 있게 해 주었다.(덕분에 수십개의 웹페이지를 습관적으로 열어놓는 헤비 웹서퍼들은 게임과 인터넷뱅킹을 포기하지 않고서도 리눅스 + 파이어폭스의 매우 안정적인 웹서핑을 즐길 수 있게 되었다.) 이 방천으로 돌리는 게임 성능은 윈도우를 네이티브로 돌릴 때와 거의 비슷하다. 요즘의 VGA 카드는 UEFI 펌웨어에서만 VGA 패스쓰루가 정상적으로 작동한다. 이 경우 BIOS 모드를 사용해야 하는 구형 운영체제에서는 IRQ자원 관련 문제로 비디오카드를 정상적으로 사용할 수 없다. 따라서 UEFI를 지원하지 않는 XP 이하의 운영체제에서 VGA 패스쓰루를 하고싶다면 구형 VGA를 장착하거나 qemu-kvm 말고 xen을 사용하는 것이 좋다. 그러니까 윈도우 9x 이하 고전게임용이면 OpenGL로 3dfx Glide 에뮬레이션이 가능한 커스텀된 DOSBOX를, xp 용 고전게임이라면 하드웨어가속으로 dx3d를 지원하는 VirtualBox가 더 낫다.[6][7]
Looking Glass라는 프로그램을 사용하면 윈도우에 내장된 DXGI(MS DirectX Graphics Infrastructure)를 이용하여 패스쓰루 VGA의 화면을 호스트의 모니터에서 볼 수 있다. 즉, 가상머신에 패스쓰루된 비디오카드 모니터를 물리적으로 연결하지 않아도 된다.

3.1. 설정 방법


#설정방법1 #설정방법2 #설정방법3
1. vt-d를 지원하는 CPU와 메인보드를 준비한다.
2. 메인보드에서 vt-d를 활성화한다(BIOS 설정).
3. 커널에서 vt-d를 활성화한다(iommu 커널옵션 설정).
4. 게스트OS에 연결하려는 장치를 호스트 OS에서 분리한다(사용하는 커널 버전에 따라 vfio-pci 또는 pci-stub 설정. 3.x 대 커널은 vfio-pci를 지원하지 않고 4.x 대 커널에서 pci-stub를 사용하면 성능이 크게 하락한다.).
5. qemu의 가상머신 설정에서 해당장치를 게스트에 연결한다(실행옵션 또는 xml 행추가. virt-manager를 사용하면 간편하다).

3.2. 참고사항


0. 2개의 그래픽 카드로 구성되는 경우가 일반적이나 인텔 iGPU경우 GVT-g로 하나의 iGPU로도 가능하다. dGPU 한개로도 역시 가능하다.[8]
1. VGA를 세컨더리 PCI-E 포트(노스브릿지에 연결된 PCIE 레인이 아닌 사우스브릿지에 연결된 PCIE 레인)에 장착하면 해당 슬롯의 대역폭과는 별도로 아키텍처 때문에 발생하는 대역폭 부족으로 성능 저하가 상당하게 발생하므로 조금 불편하더라도 프라이머리 포트에 장착해야 한다.
2. NVIDIA의 VGA 드라이버에는 락이 걸려 있어 가상 머신 안에서는 그래픽 드라이버가 작동을 중단한다(K1, K2 등 vGPU 시장 잠식을 우려한듯). 대응책으로 게스트 운영체제에게 가상머신환경을 알리지 않도록 하는 실행 옵션 설정('-cpu host,km=off', '--features kvm_hidden=on' 등)이나 VGA 바이오스 덤프 등의 방법이 알려져 있지만 드라이버가 업데이트되면서 지속적으로 차단되고 있으므로 속편하게 AMD를 사용하는 것이 좋다.
- 그래도 NVIDIA 비디오카드를 사용하려면 능력자가 제작한 스크립트로 공식드라이버를 크랙하면 된다. 허나 제조사에서 꼼꼼하게 막아놔서 이 또한 쉽지는 않다. 요즘 드라이버는 제조사의 방해로 setup.exe를 통한 설치는 안되니 장치관리자에서 수작업으로 설치해야 한다. 작업메뉴얼. 드라이버에 제조사 서명이 없는 관계로 윈도우 개발자용 테스트모드에서만 게임을 할 수 있다. 배틀아이 등 안티치트 프로그램은 테스트모드를 차단하므로 대다수의 인기 FPS는 구동이 불가능하다.
- 그래도 포기할 수 없다면... 윈도우 7 이나 32비트 윈도우 10은 일반모드 에서도 드라이버 서명을 무시할 수 있다.
3. 전통적인 IBM PC 구조상 롬을 읽어올 때 VGA 장치는 일반 PCI 장치와 달리 부팅시 메모리에 읽어들인 롬을 쉐도우 카피하여 접근한다. 이때문에 패스쓰루로 VGA를 연결할 경우 ROM 정보가 쉐도우카피된 가상머신의 VGA ROM 과 섞여 시스템 안정성이 훼손될 수 있다. 따라서 바로 위 항목처럼 VGA롬을 파일로 덤프하여 사용하는 것을 권장한다. 일반적으로 <ROM Parser> 를 이용하여 추출하는데 입출력 에러가 발생하는 경우, 메모리 맵(/proc/iomem)에서 해당 VGA의 PCI 장치번호(lspci)로 VGA 주소를 찾아 메모리(/dev/mem)의 해당구간을 직접 접근(dd)하여 덤프한다.참고 [9] 윈도우PE USB를 만들어서 윈도우로 부팅한 다음 GPU 제조사의 롬 업데이터로 현재 롬을 백업받는게 제일 편하다. 문제가 없으면 불필요한 작업.
4. 사운드와 키보드 마우스 등 입출력 인터페이스에 의한 버벅임이 꽤 있으므로 어지간하면 모두 패스쓰루로 연결해서 사용하는 것이 좋다. USB연결은 TCP/IP 를 이용한 리다이렉트(usbredirserver)를 이용하면 더 안정적으로 사용할 수 있다.
5. 리눅스 VGA 패스쓰루 구성 가운데 가장 골룸한 부분은 호스트 VGA 구성이다. 우선 듀얼VGA 카드 장착시 메인보드 하드웨어 호환성 문제로 부팅조차 되지 않는 경우가 많다. 그리고 구형 VGA라 드라이버 릴리즈가 오래된 경우에는 Xorg에서 듀얼VGA를 자동으로 잡지 못해 여러가지 삽질을 해가며 수동으로 xorg.conf를 설정 해야한다.
- 최선책은 CPU 내장 그래픽 활용. 이게 불가능한 경우, nvidia 일반용 카드는 부팅호환성 문제가 많기 때문에 철지난 엔트리급 쿼드로 카드를, AMD는 부팅호환성 문제는 훨씬 적지만 제조사의 리눅스용 드라이버 지원이 구질구질하므로 가급적 최신의 하드웨어를 권장한다.
- 일반 PCI VGA는 구하기도 어렵고 있어도 구형 칩셋이라 드라이버 지원에 문제가 많으니 듀얼 PCIE x16 슬롯 메인보드를 구입해야한다.
- USB 3.0을 이용한 채굴용 PCI-e 라이저카드는 리눅스에서 지원하지 않는다. 정 필요하면 그냥 케이블로 1:1 연결한 x1 to x16 소켓을 이베이에서 구매하자. 아니면 미니 그라인더로 소켓 끝을 따던가.[10]
6. virt-manager 를 사용할 경우 최초 VM 프로필 생성시에는 패스쓰루 장치를 안붙여야 한다. 특히 VGA. 프로필 생성시에 패스쓰루를 적용하면 패스쓰루된 VGA가 프라이머리로 설정되어 초기 부팅 화면이 패스쓰루된 VGA에서 출력된다. 이렇게 되면 윈도우가 제대로 부팅되지 않는 것은 물론, 부팅되어도 대부분의 경우는 오류를 일으킨다. 패스쓰루 장치는 윈도우 설치를 완료한 뒤에 붙이자.
7. 게스트 윈도우에서 계속해서 VGA와 관련된 문제가 발생한다면 제조사의 최신드라이버를 제거하고 보다 안정적인 윈도우 업데이트에서 제공하는 WHQL 드라이버를 사용해 본다. 문제가 없으면 불필요한 작업.
8. 패스쓰루 시 프로그램에서 계속 오류가 발생하는 경우가 있다. 클린프로필 생성, BIOS덤프, WHQL드라이버 사용 등을 모두 했는데도 계속해서 프로그램이 한 번씩 오류를 내면서 중단된다면 아마도 VGA 펌웨어의 문제일 것이다.(호스트 윈도우에서는 잘 돌아갈테지만 VM에서는 반드시 오류를 내뿜는다.) 해결책은 펌웨어 업데이트.(굳이 위험하게 업데이트 하지 않고 VM부팅시 롬파일을 읽어오도록 설정해도 된다.) 그러나 VGA는 메인보드와 달리 펌웨어를 업데이트해주는 제조사가가 거의 없다. 다른 회사 제품으로 카드 교체.
- 리눅스의 X윈도우는 전통적으로 1.점유율 높은 칩셋 2.인지도 높은 제조사 3.가급적 최신의 하드웨어 를 요구해 왔다. 마이너 OS의 숙명으로 Xfree86 시절부터 점유율 높은 칩셋의 메이저 제조사 제품은 듣보잡 제품과 확연한 차이가 났다. 현재에도 유효함을 확인하는 부분.
9. 노스브릿지에 PCIE 레인이 여렷 달려있는 서버용 메인보드의 경우 대부분 부트업 디스플레이 아답터 선택이 불가능하다. 우선순위가 높은 슬롯에 호스트에서 사용할 VGA를 장착해서 부트업 디스플레이로 만들어 주지 않으면 부팅 진행중 패스쓰루가 작동하는 순간 먹통이 된다.
10. 패스쓰루한 vga의 hdmi 오디오 프로세서를 사용하면 지글거림 없는 사운드를 경험할 수 있다

3.2.1. 호스트 VGA 수동설정


1. 게스트에 장착할 VGA를 제거한다.
2. 호스트에서 사용할 VGA 드라이버를 설치한다.
3. 호스트 VGA의 xorg.conf 파일을 자동생성한다.(현재 버전의 xorg 권장설정은 '설정파일 없음'이다)
4. 게스트용 VGA를 장착한다.
5. xorg 구동 테스트

4. 활용



4.1. 고전게임머신


도스박스에서 아직 지원하지 않거나 윈도우9x에서만 구동되는 고전게임을 위한 가상머신을 만드는데도 유용하다. 도스박스에서도 윈도우98까지 설치가 가능하다고는 하나 에뮬레이션 효율이 떨어지기 때문에 게임에 지장이 있을 정도로 성능문제가 발생한다. qemu를 사용하면 과정이 좀 복잡하기는 해도 쾌적한 성능의 게임머신을 확보할 수 있다.
아쉽게도 vGPU 기능은 현존 VGA의 드라이버를 그대로 사용하므로 고전게임의 구동에는 도움이 되지 않지만 Voodoo 1, 2는 단일 VGA가 아니라 외장 3D 가속 카드이며 PCI 슬롯을 사용하기 때문에 현행 VGA와 달리 손쉽게 패스쓰루가 가능하다.[11]

범용 VESA 드라이버인 VBE Mini Port를 이용하면 무리없이 vGPU기능을 사용할수 있다.

4.1.1. 설치방법


1.해당 vm의 kvm 가속을 비활성화 한다.
2.해당 vm의 apci를 비활성화 한다.
3.440fx메인보드를 선택한다.
4.도스에서는 ps2키보드 에뮬레이션이 제대로 작동하지 않으므로 파티션 작업과 포맷 위한 도스작업시에는 일시적으로 usb키보드를 붙여준다. 윈도우 설치창에서는 usb키보드가 붙어있으면 키입력이 안된다.
5.98버전은 재부팅하면 vm이 멈추는 문제가 있으므로 시스템이 멈추면 강제종료후 다시 켜준다.
6.pnp bios가 제대로 설치되지 않기 때문에 pnp 기능이 작동하지 않는다. 인식을 위해서는 inf-update를 설치해야 하는데 인텔 inf 패치 프로그램이 440fx 가상보드를 인식못한다. 다음과 같이 수동으로 설치한다.
1) 장치관리자에서 느낌표가 떠있는 pnp bios의 드라이버 재설치를 선택한다.
2) 모든장치목록에서 설치를 선택하여 'PCI 버스'를 선택하면 pnp bios가 정상적으로 인식되어 시스템 장치드라이버들이 설치되기 시작한다.
7.cirrus vga 드라이버가 설치되면 재부팅후 블루스크린이 뜬다. 윈도우98 vesa 비디오 드라이버를 다운로드받아 설치해야 한다. 그리고 디스플레이 등록정보의 어댑터 속성에서 하드웨어 가속을 반드시 꺼준다. 그렇지 않으면 VM이 수시로 다운된다.
8.98과 현재 윈도우의 파일공유는... 그냥 ftp를 사용하자. 간단한 알ftp 추천. 그러나 알FTP로 바이너리를 전송하면 파일이 깨지니까 서버기능만 사용하자.
9.사운드 드라이버를 설치하면 소리가 안난다. 인터넷에서 판매하는 2000원짜리 usb 사운드코덱을 패스쓰루로 연결하면 간단히 해결된다. 드라이버도 윈도우98에 기본탑재 되어있다.

4.1.2. 윈도우95의 경우


1. 기본은 98과 동일하다.
2. 윈도우95는 IDE 에뮬레이션이 불안정해서 큰 파일을 복사하면 수시로 재부팅된다. 일단 IDE 방식으로 윈도우를 설치한 다음 SCSI 컨트롤러를 추가한다. LSI 895A 컨트롤러 드라이버 파일을 구해 INF를 우클릭으로 설치한다. 장치관리자에서 SCSI 장치 제어기를 새로고침하면 업데이트된다. 재부팅하여 정상가동을 확인한 뒤 하드디스크의 방식을 SCSI로 변경하면 안정적으로 사용가능하며 디스크 속도도 훨씬 빨라진다(윈도우98에서도 체감속도 향상).
3. 랜카드를 pcnet으로 직접입력하면 95의 내장드라이버로 자동설치된다. PNP 바이오스를 설치하면 8139랜카드도 설치가능.
4. 사운드는 SB16, adlib 2개를 함께 추가해야 자동설치된 sb16에서 소리가 출력된다. adlib은 virt-manager에서 지원하지 않으니 virsh로 수동구성 해야한다.
5. 파일전송은 프리웨어 ftp 서버인 war ftp daemon을 인터넷에서 구할 수 있다.
6. 마우스의 스크롤 휠을 사용하려면 로지텍의 Mouse Ware를 설치한다.

4.2. 해킨토시


철지난 구형 맥킨토시 워크스테이션을 싸게 주워와 리눅스, 윈도우, OSX 3가지 운영체제를 동시에 그리고 합법적으로 사용할 수 도 있다. 실제 해킨토시와는 다르게 모든 사용자가 동일한 가상 환경을 사용하기 때문에 발생하는 문제가 훨씬 적고 해결방법도 쉽게 찾을 수 있다.그리고 PowerPC도 애뮬레이션이 가능하다!

4.2.1. 설치방법


자세한 설치방법
1. 메인보드 아키텍처 p35, mac 지원 패치된 UEFI OVMF 펌웨어, 클로버 부트로더 사용.
- enoch 커널로더는 비추. BIOS 환경에서만 작동하며 네이티브 설치이미지를 읽지 못하기 때문에 클로버 부팅디스크를 또 사용해야한다.
- qemu command line 옵션을 입력하려면 xml 파일 맨 첫줄의 도메인 타입 선언 항목에 libvirt.org 스키마를 추가해야 한다. gui 실행시 수동설정이 손실되는 것을 막기 위해 vi 등 일반 편집기를 사용하지 말고 virt-manager에 내장된 virsh를 사용한다.
2. 클로버 부트로더를 설치하려면 OSX가 필요하기때문에 인터넷에서 돌아다니는 해킨토시용 부팅USB를 다운받아 클로버 부트로더를 실행하고 클로버 화면에서 OSX 설치시디의 베이스시스템을 선택한다.
- 그래픽은 QXL 장치를 선택한 후, 가상머신의 OVMF UEFI 옵션으로 들어가 디바이스 화면해상도를 클로버 부트로더에서 설정한 화면해상도와 일치시켜야 한다. 그렇지 않으면 다윈 로더의 부트 메시지 화면부터 깨져 나온다. 설정값을 모르겠으면 부팅USB의 config.plist 파일을 열어 해상도 값을 확인한다. 해상도 설정값이 없으면 FHD로 적용된다.
- 최초 설치 이후 OS 재설치시 하드에 기본탑재하는 베이스 시스템으로 부팅하여 OS를 설치하면 재부팅후 시스템이 멈춘다. OS는 반드시 설치CD에 탑재된 베이스 시스템으로 부팅하여 설치한다.
3. OS 설치 후 클로버 부트로더의 설정도구를 설치하고 부팅USB의 설정값을 교정한다.
- 설정 자동추출 파일로 생성한 설정은 PC에 매우 적합하다. 이 생성값에 화면 해상도 수정과 클럭 주파수 수정을 위한 qemu 옵션 설정 정도만 더한다.
- 부팅USB에 기 탑재된 kext 파일들만 설정도구를 이용해서 업데이트 한다. 아무 드라이버나 막 설치하면 부팅에 실패한다.
4. 호스트-게스트의 마우스 공용을 위해 qemu의 USB 터치스크린을 가상장치를 사용하려면 qemu용 드라이버를 추가로 설치해야 한다.
5. 이정도만 설정해주고 클로버를 최신버전으로 업데이트하면 심하게 버벅이던 동작이 매끄러워진다.
- 클로버 부트로더를 업데이트시 쓸데없는 드라이버를 설치하면 부팅이 안된다. UEFI 드라이버 가운데 DataHubDxe만 설치한다.
- 클로버 부트로더를 잘못설정하면 정상적인 부팅을 할 수 없으므로 OS 하드에는 부트로더를 설치하지 말고 백업본을 만든 부팅용 USB를 사용하는 것이 좋다.

4.3. IBM AIX 학습


서버 공부를 위해 AIX를 가정용 데스크톱에서 설치해 볼 수 있다. 물론 가상환경이므로 여러대 만들어서 HACMP 등 클러스터 구성연습도 가능하다. AIX 7.2 부팅방법 pseries를 구현하려면 openfirmware를 사용해야 한다. openfirmware 참고자료 qemu는 AIX의 LPAR를 에뮬레이션하므로 화면을 보기 위해서는 VIDEO를 none 로 제거하고 libvirt의 virsh console 명령 등을 이용해서 VM의 콘솔에 접속해야 한다.
AIX 7.2 버전은 오류없이 설치/작동하며 5.1 이하 버전은 커스텀된 RS/6000 머신의 BIOS와 튜닝된 qemu 프로그램 에서만 오류없이 작동한다.AIX 5.1 설치방법

5. GUI 프론트엔드


QEMU는 기본적으로 터미널에서 사용하는 프로그램이나, 이용의 편의성을 위해 각종 GUI 프론트엔드가 개발되고 있다.
QEMU-Launcher, AQEMU 같은 프론트엔드 GUI 프로그램이 있었으나 지금은 대부분 중지된 상태이다. PowerMac또는 Windows에서는 Qt5로 제작된 QtEmu[12]를 사용할 수 있다. QtEmu 사용법
한편 리눅스에서는 레드햇에서 주도하는 virt-manager의 독주체제다. virt-manager는 완성도가 상당히 높고 편리하며 복잡한 QEMU의 거의 모든 옵션을 GUI로 간편하게 설정할 수 있어 한번 써 보면 VirtualBox에는 다시 손이 가지 않을 정도로 QEMU의 사용이 편해진다. 참고자료 : libvirt 설정 ㅡ qemu 실행옵션간 변환메뉴얼. 그래도 리눅서답게 GUI 없이 터미널에서 실행하려면 간단하게는 qemu-system-x86_64 -enable-kvm -drive format=qcow2,file=/home/namu/image.img부터 시작해서 여러가지 옵션을 줄 수 있다.

6. 기타


  • QEMU의 x86 에뮬레이션을 제작한 개발자가 바로 VirtualBox의 개발자로, VirtualBox를 개발하면서 QEMU의 개발에서는 손을 뗐다. 반면, 이러한 점을 활용해서 실제 사용자 환경을 바탕으로 한 CPU나 아키텍처 시뮬레이터 용도로 많이 활용되고 있다.
  • 다른 아키텍처를 가상화하는, x86에서 ARM 같은 것으로는 현 시기에 사실상 유일한 방법이 QEMU를 사용하는 것이다. 따라서 현재 가령 안드로이드 개발 시에 사용하는 에뮬레이터 역시 QEMU 기반이고, 이 밖에도 QEMU가 지원하는 아키텍처를 에뮬레이션하는 경우이면 전부 사용된다.
  • QEMU 버전을 개조하여 PC-9801를 에뮬레이트할 수 있다. 참고. 실제 PC-9801 컴퓨터의 바이오스 롬을 이용하여 그 컴퓨터로 에뮬레이션할 수 있다. 그리고 Anex86이나 Neko Project와 비교하여 윈도우 98같은 운영체제도 설치할 수 있다. 또, IMG로도 부팅할 수 있기 때문에 적절한 변환 툴만 이용해주면 구동할 수 있게 된다. 물론 하드 디스크의 경우 헤드, 실린더, 섹터의 수를 정확히 입력해 줘야 오류없이 된다.
[image]
파워맥 전용 프론트 엔드로 QEmulator도 있으며 QtEmu의 PowerMac 지원 수정판도 있다.
  • Macrumors 포럼에서 macOS용 QEMU로 온갓 OS[13]를 부팅하는 기행을 매년 파워PC 챌린지에서 보여주고 있다.
  • OpenOSX에서 이것을 이용하여 WinTel(...)이라는 가상머산을 개발한적이 있다.[14]
  • UTM이라는 iOS용 프론트엔드가 나왔다!
  • 프론트엔드나 CPU에 따라서 클럭 집계값이 다르게 나온다.[15][16]

7. 안드로이드


놀랍게도 '''안드로이드로 Windows XP 같은 운영체제와 그 프로그램들을 돌릴 수 있다.''' 하지만 키보드 등이 잘 되지 않고, BochsLimbo PC Emulator[17] 등보다 성능 및 기능이 그다지 좋지 않아서 별로 사용되지는 않는 편이다. 만약 돌려보고 싶으면 윈도우 95NT 4.0 을 추천한다.
Termux에서 QEMU를 실행하여 VNC 클라이언트로 연결하는 방식이기에 Limbo와 다르게 불편할수있다.

8. QEMU/Wine


와인(소프트웨어)과 QEMU의 결합체. 가상 머신 없이 IBM PC 호환기종이 아닌 하드웨어 + 운영체제로도 직접 윈도우용 바이너리(실행 파일)를 실행하는 것을 할 수 있게 해주는 플랫폼[18]이다. 본래는 SPARC, PowerPC 계열 CPU로 Win32 바이너리(윈도우용 실행파일)를 직접 사용하고자 시작하였으며, 현재는 ARM 계열 CPU를 주 타겟으로 개발이 진행된다. 안정화되면 안드로이드나 iOS로 별도 가상 머신 없이 직접 윈도우용 소프트웨어를 실행할 수 있게 된다.

ARM 프로세서로 직접 파워포인트를 실행한 동영상

9. 같이보기


[1] 에뮬레이터는 가상 머신을 소프트웨어적으로 구현하여 가상화 프로그램인 VirtualBox나 VMware보다 성능이 나쁜 것.[2] ESXi 등의 서버용 가상화 운영체제는 장애 발생시의 안정성 문제 때문에 소프트웨어 수준의 라이트백 캐시를 지원하지 않는다.[3] 하이퍼바이저별 VGA Passthrough 성능비교 논문[4] 2개 이상의 VGA 장치를 개개의 가상머신에 부착하면 시스템이 급격히 불안정해진다. 단, 하나의 카드를 여러대의 가상머신에서 교대로 사용하는 것은 가능하다.[5] 초창기에는 Virtual PC에서 Voodoo를 추가 장착하여 3D가속을 사용할수있었고 나중에는 vmware나 VirtualBox는 DirectX를 OpenGL로 변환해서 3D가속을 사용할수있었지만 VPC는 당시 기술력의 한계로 인해 v4부터 지원을 중단했으며 vmware와 VirtualBox는 추가 드라이버를 설치해야만 가능하다는 단점이 있다. 특히 자신들은 분석하지 못하게 막는 ActiveX(플러그인)류는 우회방법을 동원하지 않는 이상 실행하는게 불가능하다.[6] PCem은 S3 Graphics ViRGE DX/GX 3D카드를 소프트웨어 에뮬레이션하며 4MB VRAM에 DirectX 7.0까진 지원한다. Voodoo는 1/2 SLI 최대 16MB까지 에뮬레이션.(OpenGL)[7] VirtualBox 6.0 부터는 별다른 설정 없이도 QEMU와 동시에 사용할 수 있으니 3D 고전게임은 PCem이나 DOSBox SVN을 사용하는것 추천[8] https://www.youtube.com/watch?v=3BxAaaRDEEw[9] VGA롬은 변경이 종종 있기 때문에 해당 VGA에서 추출한 롬이 아니면 작동하지 않는 경우가 많다. 직접추출을 권장한다.[10] 헤드는 핸드그라인더에서 사용하는 것 같은 연마 디스크 유형을 선택하되 금속재질을 사용한다. 디스크 면 방향과 날 방향 모두 연마가 가능한게 좋다. 슬롯 홈방향과 동일한 일자(ㅡ) 형태로 구명을 파내려 하면 주변부 PC를 긁기 십상이다. 슬롯의 막혀있는 바깥쪽 끝에서부터 안쪽으로, 슬롯 구멍과 직각이 되도록 T자 모양으로 갈아내되 막혀있는 플라스틱 부분 전체를 바깥쪽 위에서 부터 갈아 없애는 느낌으로 조금씩 갉아가면 쉽게 완성할 수 있다. 고장난 메인보드로 몇 번만 연습해 보면 금방 숙달된다.[11] Voodoo 1, 2는 별도의 그래픽 카드에 연결하는 방식을 사용한다. 그러다보니 Connectix Virtual PC v3나 INSIGNIA SoftPC/SoftWindows에서도 Voodoo를 장착하고 드라이버를 설치하면 작동이 된다. 단 QEMU와 다르게 이 둘은 당시 기술력으로 인해 호환성 문제가 있었다.[12] 본래 2008년경 중단된 프로젝트였으나 Qt5로 포크된 게 지금까지 개발되고 있다.[13] Windows부터 시작해서 Linux, macOS(...) 등등. 최근엔 Windows 10도 부팅에 성공한 모양.[14] 2.1버전 한정. 그 이전 버전은 Bochs기반이다.[15] x86-x86끼리는 상관없는 얘기지만 x86-ARM이나 x86-POWER는 차이가 심각하게 난다. 심한경우 클럭 집계가 안되기도 한다(...)[16] PowerPC에서 x86-64용 Windows를 구동하는경우 최대 33MHz까진 나오는듯 하다.[17] 사실 Limbo PC Emulator도 QEMU 구버전 기반이다. 최신 버전에 포함된 업데이트가 ARM과 호환성을 떨어뜨린다고 한다.[18] Java와 사실상 동작 원리가 같다.