[Apple] QEMU로 컴퓨터에서 iPhone iOS 에뮬레이터 하
본문
QEMU는 범용 오픈 소스 기계 및 사용자 공간 에뮬레이터 및 가상화 도구입니다. QEMU는 하드웨어 가상화 지원이 필요 없이 소프트웨어에서 완전한 기계를 에뮬레이트할 수 있습니다. 동적 번역을 사용하여 매우 좋은 성능을 달성합니다. QEMU는 Xen과 KVM 하이퍼바이저와도 통합하여 하이퍼바이저가 CPU를 관리할 수 있도록 하면서 에뮬레이트된 하드웨어를 제공할 수 있습니다. 하이퍼바이저 지원이 있으면 QEMU는 CPU에 대해 거의 네이티브 성능을 달성할 수 있습니다.
QEMU가 CPU를 직접 에뮬레이트하면 한 기계(예: ARMv7 보드)용으로 만들어진 운영 체제를 다른 기계(예: x86_64 PC 보드)에서 실행할 수 있습니다. QEMU는 또한 리눅스와 BSD 커널 인터페이스에 대한 사용자 공간 API 가상화를 제공할 수 있습니다. 이를 통해 하나의 아키텍처 ABI(예: 리눅스 PPC64 ABI)에 대해 컴파일된 바이너리를 다른 아키텍처 ABI(예: 리눅스 x86_64 ABI)를 사용하는 호스트에서 실행할 수 있습니다. 이는 하드웨어 에뮬레이션을 포함하지 않고 단순히 CPU와 시스템 호출 에뮬레이션을 수행합니다.
QEMU는 다양한 사용 사례에 맞추기 위해 설계되었습니다. 사용자가 그것의 행동과 설정에 대해 완전한 제어를 원할 때 직접 호출될 수 있습니다. 또한 안정적인 명령 줄 인터페이스와 모니터 API를 제공함으로써 상위 수준의 관리 계층에 통합하기 쉽게 하고자 합니다. QEMU는 oVirt, OpenStack, virt-manager와 같은 오픈 소스 애플리케이션을 사용할 때 libvirt 라이브러리를 통해 간접적으로 호출되는 것이 일반적입니다.
QEMU는 전체적으로 GNU 일반 공중 사용 허가서 버전 2에 따라 릴리스됩니다. 전체 라이선스 세부 사항은 LICENSE 파일을 참조하십시오.
개발자는 QEMU를 사용하여 컴퓨터에서 iPhone OS를 에뮬레이트하는 데 성공했습니다. Hackintosh 도구 덕분에 사람들은 오랫동안 비애플 컴퓨터에서 macOS를 실행할 수 있었습니다. 그러나 iOS의 경우 거의 아무도 다른 플랫폼에서 실행할 수 없었습니다. 적어도 지금까지는요. 한 개발자가 QEMU를 사용하여 컴퓨터에서 iPhone OS의 첫 번째 버전(그 이름 기억하세요?)을 성공적으로 에뮬레이트했습니다.
iPhone OS 1.0을 에뮬레이트하지 않은 iPhone 하드웨어 Martijn de Vos, 또는 devos50라고도 하는 이 개발자는 2007년 iPhone이 출시된 후 첫 번째 iPod touch용으로 출시된 iPhone OS의 매우 첫 번째 버전을 에뮬레이트하기 위해 많은 역공학을 사용했습니다. 프로젝트는 1년 이상 걸렸으며 개발자는 멀티터치 지원과 기타 하드웨어 구성 요소와 같은 것들을 시뮬레이션하는 방법을 알아내야 했습니다. 블로그 게시물에서 de Vos는 iPod touch의 하드웨어 구성 요소를 에뮬레이트하는 것이 까다로운 부분이었다고 설명합니다. 이것이 개발자가 iPhone 대신 iPod용으로 만들어진 iPhone OS의 첫 번째 빌드를 에뮬레이트하기로 선택한 이유입니다. iPhone 버전을 작동시키려면 더 많은 구성 요소를 에뮬레이트해야 하기 때문입니다. 동시에 de Vos는 또한 iPhone OS 1.0을 선택한 이유는 이 버전이 최신 버전의 운영 체제보다 훨씬 적은 보안 메커니즘을 가지고 있기 때문입니다. “현대의 애플 장치는 신경 엔진, 안전한 앙클레이브, 다양한 센서와 같은 추가 하드웨어 구성 요소를 많이 포함하고 있으며, 이러한 장치의 에뮬레이션은 훨씬 더 어렵고 시간이 많이 걸릴 것입니다.”라고 개발자는 설명했습니다.
프로젝트는 OpeniBoot 덕분에 현실이 되었습니다. OpeniBoot은 애플의 부트 로더의 오픈 소스 구현입니다. 이 프로젝트는 오래 전에 중단되었지만, 사용자가 iPhone과 iPod touch의 첫 번째 세대에 안드로이드를 설치하는 등의 일을 할 수 있게 해주었습니다.
하지만 기능적인가요? 몇 가지 버그에도 불구하고 최종 프로젝트는 꽤 기능적으로 보이며, QEMU - 오픈 소스 가상화 플랫폼을 사용하여 iPhone OS 1.0이 성공적으로 에뮬레이트되었습니다. 시스템은 마우스와 키보드를 사용하여 완전히 탐색할 수 있으며, 대부분의 사전 설치된 앱은 잘 작동합니다. 시스템에 충돌을 일으키는 상황이 있지만, 다른 플랫폼에서 iOS 버전이 에뮬레이트되는 것을 보는 것은 여전히 인상적입니다.
개발자는 이것이 아마도 오픈 소스 도구를 사용하여 iPhone 운영 체제를 에뮬레이트한 최초의 사례일 것이라고 언급합니다. Corellium은 예를 들어 가상 iOS 장치를 판매하지만 모든 도구와 코드는 비공개입니다.
자신의 가상 머신을 만드는 것은 쉽지 않지만, 관심 있는 사람들을 위해 de Vos는 블로그 게시물에서 모든 세부 사항을 공유했습니다. 다음 프로젝트로 de Vos는 iPhone OS 2.1로 출시된 두 번째 세대 iPod touch를 에뮬레이트하려고 합니다.
댓글목록 0