QEMU 이해를 위해 요약 (참고: http://www.ibm.com/developerworks/kr/library/l-qemu/index.html)
1. QEMU 운영모드
1) 사용자 모드 에뮬레이션
- 호스트 CPU로 동적 변환 과정을 수행하고 리눅스 시스템 호출을 바꾸는 방법으로 특정 CPU용으로 만들어진 프로세스를 다른 CPU에서 수행하도록 만든다.
2) 시스템 모드 에뮬레이션
- 프로세서와 관련 주변 장치를 포함한 전체 시스템을 에뮬레이션 한다.
2. 동적 변환기
1) 에뮬레이션을 제공하기 위해 게스트 CPU를 호스트 CPU용 명령으로 실행 중에 바꿔준다.
- 목표 명령어를 우선 마이크로 연산자로 바꾸는 방식으로 동적 변환을 수행한다.(컴파일된 C 코드 조각)
- 핵심 변환기는 목표 명령어를 동적 변환을 위한 마이크로 연산자로 사상한다.
- 부하 최소를 위해 변환될 코드 블록을 캐시한다. (16MB 블록에 캐시)
3. 지원 주변 장치
1) PC
- VGA(Video Graphics Array), PS/2 마우스와 키보드, IDE(Integrated Development Environment) 하드 디스크와 CD-ROM 인터페이스.
- NE2000 PCI(Peripheral Controller Interconnect) 네트워크 어댑터, 직렬 포트, 다양한 사운드 카드, UHCI(PCI Universal Host Controller Interface) USB(Universal Serial Bus) 컨트롤러.
- 255개 CPU까지 프로세서 SMP(Symmetric MultiProcessing)를 지원.
2)ARM Versatile 기본 보드(926E를 활용하는), MIPS 보드 지원.
1. QEMU 운영모드
1) 사용자 모드 에뮬레이션
- 호스트 CPU로 동적 변환 과정을 수행하고 리눅스 시스템 호출을 바꾸는 방법으로 특정 CPU용으로 만들어진 프로세스를 다른 CPU에서 수행하도록 만든다.
2) 시스템 모드 에뮬레이션
- 프로세서와 관련 주변 장치를 포함한 전체 시스템을 에뮬레이션 한다.
2. 동적 변환기
1) 에뮬레이션을 제공하기 위해 게스트 CPU를 호스트 CPU용 명령으로 실행 중에 바꿔준다.
- 목표 명령어를 우선 마이크로 연산자로 바꾸는 방식으로 동적 변환을 수행한다.(컴파일된 C 코드 조각)
- 핵심 변환기는 목표 명령어를 동적 변환을 위한 마이크로 연산자로 사상한다.
- 부하 최소를 위해 변환될 코드 블록을 캐시한다. (16MB 블록에 캐시)
3. 지원 주변 장치
1) PC
- VGA(Video Graphics Array), PS/2 마우스와 키보드, IDE(Integrated Development Environment) 하드 디스크와 CD-ROM 인터페이스.
- NE2000 PCI(Peripheral Controller Interconnect) 네트워크 어댑터, 직렬 포트, 다양한 사운드 카드, UHCI(PCI Universal Host Controller Interface) USB(Universal Serial Bus) 컨트롤러.
- 255개 CPU까지 프로세서 SMP(Symmetric MultiProcessing)를 지원.
2)ARM Versatile 기본 보드(926E를 활용하는), MIPS 보드 지원.