핵심 요약
- 파워 맥 G5를 13년간 썼던 개발자가 현대 오픈파워 시스템에서 클래식 맥 OS를 구동하기 위해 구형 에뮬레이터 SheepShaver 개조에 나섰습니다.
- QEMU의 무거운 오버헤드와 PearPC의 극심한 성능 저하(약 500배 느림) 때문에 네이티브 구동 방식 기반인 SheepShaver를 선택했습니다.
- SheepShaver의 구형 32비트 메모리 매핑 설계와 64비트 시스템 간의 충돌 문제를 파헤치며 문제 해결에 착수했습니다.
요약 과거 애플이 인텔 프로세서로 전환하기 전 파워 맥(Power Mac)을 애용하던 한 개발자가, 현대의 64비트 오픈파워(OpenPOWER) 시스템에서 클래식 맥 OS 환경을 구동하기 위해 구형 에뮬레이터 SheepShaver를 개조한 여정을 공유했습니다. 작성자는 1987년 맥 플러스를 시작으로 파워 맥 G5 쿼드를 13년 동안 메인 컴퓨터로 사용할 정도로 클래식 맥 OS에 대한 애정과 기존 소프트웨어 자산이 많았으며, 현재는 랩터의 Talos II(POWER9 아키텍처) 시스템을 사용하고 있습니다.
오픈파워 환경에서 클래식 파워PC 맥 OS를 돌리기 위한 선택지는 극히 제한적입니다. QEMU는 OS X 및 맥 OS 9 지원이 추가되었으나 전체 시스템 에뮬레이션 특성상 시작 속도가 느리고 오버헤드가 크며 디바이스 드라이버 문제가 있습니다. 또 다른 에뮬레이터인 PearPC는 빌드는 되지만 x86에만 JIT가 있어 오픈파워에서는 실제 성능보다 약 500배나 느려 실사용이 불가능한 수준이었습니다. 이에 작성자는 과거 BeBox/PowerPC 환경에서 네이티브 코드를 직접 실행하도록 설계되었던 구형 에뮬레이터 SheepShaver를 활용하기로 결정했습니다.
그러나 현대 64비트 리눅스 환경에서 SheepShaver를 구동하는 것은 쉽지 않았습니다. SheepShaver는 초기 설계상 맥 OS가 메모리 최하단 주소(0번지 부근)에 전역 상태를 보관하는 특성에 의존하며 여전히 내부 구조가 32비트 기반에 머물러 있었습니다. 메모리 매핑 제한(vm.mmap_min_addr 등)을 해제했음에도 64비트 파워PC 시스템의 메모리 할당 구조상 32비트 주소 공간의 한계로 인해 구동이 실패하는 난관을 겪었습니다. 작성자는 이러한 32비트 레거시 주소 체계 문제를 분석하고 코드를 수정하여 오픈파워 시스템에서 클래식 맥 소프트웨어를 되살리는 프로젝트인 'SheepSforza'를 시도하게 되었다고 밝혔습니다.
Sponsored · 광고