
닌텐도 Wii 위에 Mac OS X가 돌아간다고요?
말도 안 되는 소리처럼 들리죠? 그런데 진짜로 해낸 개발자가 나타났어요. Bryan Keller라는 개발자가 닌텐도 Wii 위에 Mac OS X를 포팅하는 데 성공했거든요. Wii는 2006년에 출시된 게임 콘솔인데, 여기에 Apple의 데스크톱 운영체제를 올린 거예요. 그냥 장난처럼 보일 수 있지만, 이 프로젝트를 뜯어보면 운영체제, 하드웨어 아키텍처, 부트로더에 대한 아주 깊은 이해가 필요한 작업이에요.
왜 Wii에서 Mac OS X가 가능했을까
여기서 핵심은 CPU 아키텍처예요. 닌텐도 Wii에는 IBM의 PowerPC 기반 프로세서인 Broadway가 들어가 있어요. 그리고 Apple도 한때 PowerPC 칩을 사용했거든요. Mac OS X 10.4 Tiger까지는 PowerPC에서 네이티브로 동작했고, 10.5 Leopard도 PowerPC를 지원했어요. 즉, 같은 명령어 집합(ISA)을 공유하기 때문에 이론적으로는 Wii에서 Mac OS X의 커널이 실행될 수 있는 거예요.
하지만 "이론적으로 가능하다"와 "실제로 동작시킨다"는 완전히 다른 이야기인데요. Wii의 Broadway 프로세서는 클럭 속도가 729MHz에 불과하고, RAM은 겨우 88MB(24MB의 MEM1과 64MB의 MEM2)밖에 안 돼요. 2006년 기준으로도 데스크톱 Mac에 비하면 정말 빈약한 스펙이죠. 이런 제한된 환경에서 OS를 올리려면 단순히 설치 미디어를 넣고 부팅하는 게 아니라, 하드웨어 추상화 계층부터 새로 작성해야 해요.
기술적으로 어떻게 했을까
운영체제가 부팅되려면 먼저 부트로더가 하드웨어를 초기화하고 커널을 메모리에 로드해야 해요. 이게 뭐냐면, 컴퓨터를 켰을 때 "자, 이제 이 운영체제를 실행할 준비를 할게"라고 하드웨어에게 알려주는 첫 단계 프로그램이에요. Mac에서는 원래 Open Firmware라는 부트 환경을 사용했는데, Wii에는 당연히 이런 게 없잖아요. 그래서 Bryan은 Wii의 홈브루(Homebrew) 생태계를 활용해서 커스텀 부트로더를 작성했어요.
Wii에는 Starlet이라는 보안 코프로세서가 있는데, 이게 하드웨어 접근을 관리해요. Wii 홈브루 커뮤니티가 이 보안을 우회하는 방법을 이미 알아냈기 때문에, 그 위에서 XNU 커널(Mac OS X의 커널이에요)을 로드할 수 있었던 거예요. 커널 로드 후에는 장치 트리(Device Tree)를 Wii 하드웨어에 맞게 수정해서 커널이 "아, 내가 지금 이런 하드웨어 위에서 돌아가고 있구나"를 인식하게 만들었어요.
물론 GPU 드라이버 같은 건 완전히 다르기 때문에 그래픽이 완벽하게 동작하진 않아요. Wii의 GPU인 Hollywood는 Mac에서 사용하던 ATI/NVIDIA 칩과 완전히 다른 아키텍처거든요. 그래서 프레임버퍼 수준의 기본 디스플레이 출력으로 화면을 띄운 것으로 보여요.
이런 프로젝트가 의미 있는 이유
"그래서 Wii에서 Mac을 부팅하면 뭘 할 수 있는데?"라고 물을 수 있어요. 솔직히 실용성만 따지면 거의 없어요. 88MB RAM으로는 Safari를 열기도 벅찰 거예요. 하지만 이런 프로젝트의 진짜 가치는 다른 데 있어요.
운영체제 포팅은 OS 내부를 가장 깊이 이해하는 방법 중 하나예요. 커널이 하드웨어와 어떻게 대화하는지, 부팅 과정에서 어떤 일이 순서대로 일어나는지, 메모리 관리는 어떻게 되는지를 실전으로 배우게 되거든요. 리눅스를 임베디드 보드에 포팅하는 것과 비슷한 맥락인데, 대상이 게임 콘솔이라 더 독특한 도전 과제들이 있었을 거예요.
비슷한 프로젝트로는 Linux가 닌텐도 Switch에 포팅된 사례나, PS4에서 Linux를 돌리는 프로젝트들이 있어요. 게임 콘솔에 다른 OS를 올리는 건 하드웨어 해킹 커뮤니티에서 오랜 전통이에요. 하지만 Mac OS X를 포팅한 건 꽤 드문 사례인데, Apple이 자사 OS의 소스를 완전히 공개하지 않기 때문에 리눅스보다 훨씬 까다롭거든요. XNU 커널 자체는 오픈소스지만 그 위의 프레임워크들은 아니니까요.
한국 개발자에게 주는 시사점
임베디드 시스템이나 OS 내부 구조에 관심 있는 분들에게는 이런 프로젝트를 따라가면서 공부하는 게 정말 좋은 학습 방법이에요. 특히 요즘 RISC-V 기반 보드들이 많이 나오면서 "새로운 하드웨어에 OS를 올리는" 작업에 대한 수요가 늘고 있거든요. 이런 경험이 있으면 커널 개발, 드라이버 개발, 펌웨어 엔지니어링 같은 분야에서 큰 강점이 돼요.
또 하나 재미있는 점은, PowerPC 아키텍처를 다시 들여다보게 된다는 거예요. 지금은 x86과 ARM이 시장을 지배하고 있지만, PowerPC의 설계 철학을 이해하면 컴퓨터 아키텍처 전반에 대한 시야가 넓어져요.
한줄 정리
"같은 CPU 아키텍처"라는 한 줄의 공통점에서 시작해서, 게임 콘솔 위에 데스크톱 OS를 올리기까지의 여정은 운영체제의 본질을 보여주는 멋진 해킹 프로젝트예요.
여러분이라면 어떤 "말도 안 되는" 하드웨어에 OS를 올려보고 싶으세요? 혹시 비슷한 로우레벨 해킹 경험이 있다면 공유해주세요!
🔗 출처: Hacker News
TTJ 코딩클래스 정규반
월급 외 수입,
코딩으로 만들 수 있습니다
17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공