Infinite Mac OS X

5 hours ago 1

  • Infinite Mac 플랫폼에서 이제 Mac OS X 시리즈 초기 버전(10.1, 10.3)을 웹 브라우저에서 실행 가능함
  • PowerePC 에뮬레이터 PearPC를 Emscripten/WebAssembly로 포팅하여 호환성과 안정성 향상 성과를 달성함
  • DingusPPC와의 비교를 통해 성능과 원인 모를 버그를 개선하며, 알고리듬적 최적화 과정을 거침
  • Mac OS X 에 적합한 Infinite HD 디스크 이미지도 새롭게 구축해, 다양한 2000년대 소프트웨어와 개발 도구 접근 가능함
  • UI의 Aqua 스타일 적용 등 레트로 사용 경험 강화와 함께, 미래 추가 발전 가능성도 염두에 둠

요약

Infinite Mac 플랫폼에서 오랜 레거시 시스템을 온라인으로 체험할 수 있는 프로젝트 Infinite Mac이 Mac OS X 10.1과 10.3 등 초기 버전을 지원함으로써 현대 웹 브라우저에서 실행 가능해짐. 이 과정에서 PearPC와 DingusPPC 등 PowerePC 에뮬레이터를 Emscripten/WebAssembly 기반으로 포팅하고, 성능 개선 및 안정성 확보를 위한 여러 노력을 기울임. 알고리듬 최적화와 버그 해결을 통해 오리지널 하드웨어 대비 해상도와 신뢰성을 높이며, 당시의 소프트웨어 및 개발 도구가 담긴 Infinite HD도 재구성해 실용성을 강화함. 또, 사이트 UI에 Aqua 테마를 적용해 감성적 경험을 제공하고, A/UX, Lisa처럼 더 레트로한 OS 지원까지 향후 확장을 모색함. 본 프로젝트는 프로그램 에뮬레이션, 오픈소스 아카이브 확장, UI 복원 등 복합 목적을 달성하는 기술적 시도를 보여줌.

Mac OS X 지원의 확대

  • Infinite Mac에서 Mac OS X 10.1과 10.3 등 초기 OS X 버전을 웹 브라우저에서 실행 가능하게 포팅함
  • 실제 하드웨어에서의 느린 성능을 그대로 재현하며, 당시의 NetNewsWire Lite 및 Terminal 등 대표 애플리케이션 사용도 체험 가능함
  • 최신 디스크 이미지에 당시의 인디 소프트웨어도 일부 포함하여, 레트로 소프트웨어 탐색이 쉬워짐

PearPC 포팅 과정

  • 처음에는 DingusPPC 에뮬레이터 포팅 및 수정에 집중했으나, 커널 패닉과 그래픽 오류 문제로 PearPC로 노선을 전환함
  • PearPC는 2000년대 초반 x86 기반에서 Mac OS X를 실행하도록 설계된 멀티플랫폼 코드베이스로, 추가 작업 없이 WebAssembly 대상 포팅이 비교적 용이함
  • 최근 Basilisk II, SheepShaver의 주요 메인테이너가 PearPC 실험 브랜치를 만들어 현대 macOS에서 빌드가 가능해짐
  • 소스가 오래되고 레거시 C++ 기반이나, 맞춤 string class, sprintf, GIF 디코더 등 특이성이 존재함
  • 멀티플랫폼 구조, 스레드를 거의 사용하지 않는 설계, 구조적 추상화 계층 덕분에 이식이 신속하게 이뤄짐

성능 최적화와 한계

  • PearPC에서 Mac OS X 10.2 부팅 및 실행의 신뢰성은 높았으나, DingusPPC에 비해 실행 속도가 느림
  • MMU 캐싱 부재 등으로 인한 성능 저하가 큼
  • DingusPPC에서 적용한 다양한 알고리듬 기반 최적화를 PearPC에도 이관하며 부팅 속도 일부 단축 효과를 거둠
  • PearPC는 필요한 PowerPC 명령어 서브셋만 구현하고, 커스텀 펌웨어·드라이버 등 여러 ‘치트’를 활용함
  • 아직도 빠르고 안정적인 Mac OS X 에뮬레이션에는 장기적으로 DingusPPC가 더 유망하다는 희망을 갖고 있음

부수적 발견: FP 예외 처리

  • PearPC 내 인터프리터에서 통합 디코딩 방식 도입 시, 부동소수점 연산에서 렌더링 오류가 발생함
  • Mac OS X 커널이 MSI 레지스터의 FP 비트 상태에 따라 예외 처리를 등록해두고 있어, 이를 코드에 구현하자 렌더링 문제 해결됨
  • DingusPPC에서도 동일한 FP 비트 누락 문제로 텍스트 렌더링 이상, 이를 수정한 후 안정성 크게 향상됨
  • 편법적 핸들링에서 ‘정석적’ 구현으로 발전, 결국 10.1 실행 신뢰성도 크게 향상됨
  • 두 에뮬레이터를 조합해 다양한 OS X 버전 실행 지원 폭을 넓힘

Infinite HD 디스크 이미지 재구축

  • Mac OS X 시대에 맞는 디스크 이미지를 새롭게 빌드해, 해당 시기 인디 소프트웨어 및 개발자 도구를 다수 포함함
  • 구버전 .dmg 파일은 최신 macOS에서 바로 마운트되지 않으므로, dmg2img 등 도구를 활용한 변환 및 자동화 파이프라인 구축
  • HFS와 HFS+ 파일시스템의 차이로 일부 제한은 있으나 대다수 소프트웨어는 정상 동작함
  • 라이브러리 사이트 및 Wayback Machine 등 다양한 출처를 통해 2000년대 초 소프트웨어 구동 환경 완성
  • 멀티파티션 이미지 동적 생성 기법을 도입해, 부팅 디스크·Infinite HD·저장용 Saved HD까지 최대 3개 볼륨 마운트 가능함

UI: Aqua 스타일 적용

  • Aqua 테마를 Infinite Mac UI에도 채택해 레트로 감성을 극대화함
  • Mac OS X 10.0/10.1 스타일 이미지 자산을 직접 추출해 반투명 효과까지 구현함
  • 사이트 조작부의 스타일도 OS별 외양(클래식, Platinum, NeXT 등)에 맞게 자동 적용됨
  • 향후 애플 macOS 대규모 UI 변화 예고에 맞춰, 과거 UI의 ‘레퍼런스 포인트’ 역할도 제공함

추가 기능 및 마일스톤

  • Mac OS 9 파티션 마운트 및 Classic 환경 실행 기능 추가(10.1에서만 지원)
  • 과거 Calculator 앱 반복 연산 동작 등 OS간 UX 차이 등 고증 가능
  • PearPC에 내장된 부트 메시지(Verbose) 모드 활성화 및 DingusPPC에선 오픈 펌웨어 변수 지정 방식 구현
  • macosx.app 도메인을 통한 브랜딩 확대도 시도 중이나, 현재는 타인이 보유한 상태임

향후 확장 및 마무리

  • Mac OS X 지원 확장으로 Infinite Mac은 현대 macOS와의 연결고리를 마련함
  • 더 깊은 복고를 위해 A/UX, Lisa, Pippin, Newton 등의 이식 가능성도 언급함
  • WebAssembly 기반 QEMU(wasm)도 실험적으로 관심, 성능 테스트에서 긍정적 신호 확인
  • Mac OS X 웹 기반 에뮬레이션은 체험, 레거시 소프트웨어 보존, 개발 실험 등 다양한 IT/스타트업 시나리오에서 가치를 제공함

Read Entire Article