Infinite Mac OS X
(blog.persistent.info)- 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/스타트업 시나리오에서 가치를 제공함
Hacker News 의견
- PearPC가 인텔 전환 전까지 몇 년간 꽤 성공적으로 작동했다는 사실을 기억한다는 의견 공유, 하지만 핵심 개발자가 기차 사고로 세상을 떠난 뒤 대부분의 동력을 잃어버린 아쉬움 표현, 그 당시 열정적인 사용자이자 커뮤니티 멤버로 활동한 경험과 함께 지금도 그 일을 떠올릴 때마다 슬픈 감정, 관련 기사 링크 첨부 링크
- 많은 뛰어난 개발자들이 갑자기 세상을 떠난 사례들을 떠올리며, 부고도 없고 소식을 아는 사람은 개발자 한 명뿐인 상황에서, 혹시 그들이 너무 뛰어나서 외계인들이 지구에서 데려간 것은 아닐까 상상하게 되는 마음
- 누군가 PearPC 개발자의 작업물을 훔쳐서 cherryos라는 이름으로 판매했다는 사실 지적
- 해당 기사에 접근하려 하니 유료 구독 벽이 있다는 아쉬움 표시
- Infinite Mac은 웹 브라우저에서 고전적인 Macintosh와 NeXT 시스템 릴리즈 및 소프트웨어를 쉽게 사용할 수 있는 컬렉션이라는 소개, 관련 링크 infinitemac.org
- Infinite Mac이 무엇인지 블로그 글에서 하이퍼링크로 연결해 주거나 정의해줬으면 좋겠다는 의견
- Infinite Mac 페이지를 알게 돼서 기쁘며, 블로그 작성자가 해당 사이트 링크를 빼먹은 점은 큰 실수라는 생각, 이 댓글이 없었으면 이 놀라운 사이트를 못 찾았을 거라는 고마운 마음
- 기사 중에서도 특히 흥미로웠던 부분은 700줄이 안 되는 소스코드로 구현된 PPC CPU 에뮬레이터라는 사실, 6502 에뮬레이터에서나 볼 수 있는 간결함을 상대적으로 최신 아키텍처에서 본 점에 놀라움, 관련 코드 링크 TinyPPC.cpp
- RISC 구조라서 그렇게 놀랍지 않다는 의견, MIPS 에뮬레이터도 비슷한 크기라는 정보 공유
- 오늘날 20살의 테크 매니아가 OS X 10.4(.5, .6 포함)를 접하게 된다면 무슨 느낌일지 상상하는 의견, 암흑기에 고전 조각상을 보며 "어떻게 인류가 이런 작품을 만들 수 있었던 걸까?"라는 감상을 가져봄, 취향은 시대에 따라 변하고 지금 세대는 포토리얼리틱 아이콘을 오히려 촌스럽게 느낄 수도 있겠다는 생각
- 10.4의 외형과 동작 방식이 최신 macOS와 기본적으로 거의 비슷하다는 의견, 설치 방식(dmg 드래그), Finder 북마크, Dock의 동작, Spotlight의 도입까지 모두 이미 그 당시 구현됐다는 정보, Windows XP와 Windows 11의 변화폭에 비하면 Mac의 변화는 크지 않다는 견해
- 20살 사용자로서 어릴 때 10.5나 10.6을 대략 써봤던 기억이 있으며, 개인적으로는 그 시절에 대한 노스탤지어에 가까운 감상
- 10.4/10.5 시절을 개발자로 시작했다는 경험 공유, 반쯤 다크모드, 테마 설정 등을 만지작거렸으며 그때는 시스템 폴더를 건드리는 게 지금보다 훨씬 간단했다는 소감
- “암흑기”라는 표현에 대해 역사적 배경에서 기술, 능력의 상실이 아니라 제국과 독립 왕국의 문화·예산적 차이였다고 설명, 중세 초기에도 수려한 유물과 건축물이 많았다는 역사 지식 첨언, Sutton Hoo 배 무덤이나 앵글로색슨 교회 등을 직접 본 경험 언급
- 스크린샷들을 보고서 Mac OS X가 지금의 Mac OS보다 훨씬 아름답고 정돈된 환경이라고 느끼며, “이 환경이라면 진짜 일할 맛 나겠다”라는 인상, 현행 Mac OS는 너무 어지럽고 혼란스러운 느낌, 혹시 다른 분들도 이렇게 느끼는지 궁금한 마음
- 개인적으로는 UI에서 마주치는 부분이 메뉴바, 세 개의 점, 그리고 Spotlight 정도로 한정되어 있고, 실제로는 운영체제 자체나 네이티브 앱보다는 브라우저 기반이나 서드파티 디자인 시스템을 사용하는 크로스플랫폼 앱만 주로 사용, 윈도우에서도 마찬가지며 시각적인 부분에 별 감흥이 없다는 의견
- 요즘은 Win 95나 macOS 9 같은 올드 그레이 인터페이스를 오히려 좋아하게 되었는데, 계산기처럼 그저 도구 같은 안정감과 편안함을 준다는 점이 좋다는 취향
- 기술적으로 현대 macOS에서도 예전 스타일을 충분히 구현할 수 있음에도 그렇지 않은 이유는 소프트웨어 구조가 모듈형으로 짜이지 않은 문제, 소프트웨어 회사들이 소프트웨어를 잘 만든다고 이제는 믿기 어렵다는 실망감 표출
- 개인적으로는 10.3 Panther의 혼합된 aqua와 브러시드 메탈이 가장 마음에 들며, 10.4 Tiger의 글로시한 메뉴바는 시간이 지나면서 세련되지는 않은 느낌, 10.5 Leopard는 화려한 3D 도크와 투명 상단 메뉴, 더욱 현대적인 그라디언트가 있었지만 결국 aqua와 금속 질감이 더 멋졌다는 견해, 그 이후 버전은 다소 심심하다고 여김
- 윈도우의 줄무늬 디자인이 다소 과했는데, 그것이 사라져서 오히려 더 좋아졌다는 개인적 만족
- 예전에 좋았던 UI들을 떠올리게 되었다는 감상, Platinum 시절의 Macintosh OS 8, MacOS X lickables의 세련미, 그리고 OpenLook, NeXTStep/OpenStep, Windows 2000 시절까지 다양하게 추억, 당시 UI 요소들은 명확하고 일관적이었기에 컨트롤 동작 예측도었고 일관된 경험 제공, 오늘날은 테마 커스터마이징이 자유로워졌지만 그 대가로 직접적이고 일관적인 UI 경험을 어느 정도 잃어버렸다고 생각
- PearPC 프로젝트가 마지막 커밋 이후 10년이 훌쩍 지났음에도 성공적인 사례로 언급된 점이 놀랍다는 반응, 공식 저장소 github, 개인 포크 github, 웹어셈블리 지원을 추가한 상태에서도 x86-64 지원이 여전히 남아 있다는 점, NextStep을 Infinite Mac에 추가한 경험을 블로그로 남겼다는 소식 포함 블로그 링크
- 이런 프로젝트가 정말 좋다는 개인 감상, Aqua가 등장했을 때는 정말 혁신이었다는 찬사
- 당시 거의 모든 Linux 윈도우 매니저가 aqua 테마를 제공했으며, Apple은 “리눅스 데스크탑의 해”를 기다리는 유저들이 꿈꾸던 OS를 실제로 선보였다는 견해, 주류 Unix임에도 뛰어난 사용성과 광범위한 써드파티 앱 지원까지 갖춰 큰 성공 거둠
- Aqua는 여전히 혁신적인 디자인이라는 생각, 과거에는 윈도우 컨트롤을 바로 알아볼 수 있었지만, 최근에는 오히려 더 구분하기 어려워진 점을 아쉬워함, Liquid Glass가 그런 UX를 어느 정도 되살려주길 바라며, Aqua의 일관성과 사용성이 윈도우 Vista나 리눅스 테마 등이 흉내내려 했지만 결국 따라가지 못한 이유를 꼽음
- 스티브 잡스의 “Aqua 발표” 당시의 프레젠테이션 멘트를 인용, Aqua는 완전히 새로운 인터페이스이고, 애플 고유의 전통을 계승하며 그 이름처럼 유동적이고, 디자인 목표 중 하나는 ‘보고 있으면 핥아보고 싶게 하는 것’이라는 철학 강조
- Liquid Glass가 당시 Aqua 시대의 디자인 철학을 다시 떠올리게 한다는 감상
- 초창기 OS X 시절이야말로 Mac의 진정한 황금기였다고 회상, 당시 하드웨어 경쟁력도 뛰어났고 운영체제도 최고의 완성도였다는 생각, 요즘은 다시 하드웨어 황금기가 도래했으니 언젠가 소프트웨어도 따라가길 바라는 기대, 하지만 최신 Mac에서 Safari를 사용할 때 이 에뮬레이션 성능은 응답성이 낮아 실제 사용은 어렵다는 의견
- Mac OS가 다시 훌륭해질 가능성은 없어 보인다는 의견
- 하드웨어가 성능을 주면 소프트웨어가 그 성능을 빼앗아간다는 아이러니 강조
- 초창기 x86 모델을 사용했던 경험으로, 가격 경쟁력이 있었던 것은 아니고, 커널 패닉이 자주 발생하며 QuickTime에서 영상 보는 중에도 segmentation fault가 일상이었다는 지적, 다양한 파일 포맷(wmv나 divx) 재생을 위해 코덱 찾는 게 일과였고, 예뻐 보이기 위해 통풍구도 없던 탓에 장비 과열 문제도 빈번했다는 경험 공유
- “속도가 빠르진 않지만, 그 당시 진짜 하드웨어도 크게 낫진 않았다”는 평가에 동감, 2008년 전후 해킨토시 사용 경험 기반으로 실제로도 당시 맥이 느렸던 점을 사실적으로 재현한다는 점에서 리얼함을 느꼈다는 소감, 그 시절 아이팟 터치용 앱을 만들기 위해 수많은 시행착오를 겪었던 추억 공유, 그래도 설치에 24시간까지 걸리진 않아 다행이었다는 이야기