애플의 운영체제 역사에는 세상에 나오지 못한 이름들이 있다. 그중에서도 코플랜드(Copland)는 대표적인 실패작으로 기록된다. 1990년대 중반 애플은 낡은 System 7을 대체할 현대적 운영체제로 코플랜드를 준비했다. 마이크로커널 기반 구조로 메모리 보호와 선점형 멀티태스킹 같은 당시 애플에 결여돼 있던 현대적 기능을 갖추겠다는 구상이었다. 그러나 프로젝트는 지연과 방향 상실 끝에 취소됐고, 애플은 대신 넥스트(NeXT)의 넥스트스텝/오픈스텝을 사들여 이를 토대로 훗날 맥 OS X를 만들어냈다. 즉 코플랜드의 좌절은 결과적으로 오늘날 macOS의 출발점이 된 전환점이기도 했다.
최근 pagetable.com에 공개된 작업은 이 잊힌 운영체제를 다시 실행 가능한 형태로 되살렸다는 점에서 주목할 만하다. 코플랜드의 마지막 빌드인 D11E4를 개량된 파워PC 에뮬레이터 딩거스PPC(DingusPPC) 위에서, 그것도 웹어셈블리(wasm)로 포팅해 브라우저에서 부팅시킨 것이다. 작성자는 코플랜드를 실제 하드웨어에서 돌리기가 악명 높을 만큼 까다롭고, 그동안 에뮬레이션으로도 구동된 적이 없었다고 설명한다. 미완성 상태로 취소된 OS인 만큼 정식 배포나 안정된 설치 경로가 존재하지 않기 때문이다.
11개의 패치가 여는 문
이 프로젝트의 핵심은 코플랜드를 부팅시키기 위해 에뮬레이터에 가한 11개의 패치다. 작성자는 자신의 딩거스PPC 포크 브랜치에 이 수정 사항을 올려 두었고, wasm 버전용 패치는 별도의 브랜치로 분리해 두었다. 흥미로운 대목은 이 패치들이 AI의 도움을 받아 작성됐다는 점, 그리고 딩거스PPC 본체 프로젝트가 AI가 관여해 작성된 패치를 받아들이지 않는다는 점이다. 그래서 작성자는 커밋 메시지의 설명을 바탕으로 누군가가 이 수정들을 다시 손으로 작성해 주기를 제안하고 있다.
이 지점은 단순한 복고 취미를 넘어 오픈소스 커뮤니티의 현실적인 논쟁을 건드린다. AI 생성 코드에 대한 라이선스·저작권·품질 우려로 기여를 받지 않는 프로젝트가 늘고 있으며, 딩거스PPC도 그런 방침을 취하고 있다. 결과적으로 '동작하는 코드'는 이미 존재하지만, 상류(upstream) 프로젝트에 병합되려면 사람이 원리를 이해하고 다시 구현해야 하는 이중의 작업이 필요한 셈이다. 실무자 입장에서는 AI 산출물의 기술적 유효성과 프로젝트의 수용 정책이 별개의 문제라는 점을 잘 보여주는 사례다.
실무적으로 무엇을 시사하는가
에뮬레이션과 레트로컴퓨팅에 관심 있는 개발자에게 이 작업은 몇 가지 실용적 함의를 갖는다. 우선 취소된 미완성 소프트웨어를 되살리는 일은 정상 배포된 OS를 구동하는 것과 근본적으로 다르다. 기대 환경이 문서화돼 있지 않고, 하드웨어 초기화나 특정 레지스터 상태를 전제로 짜인 코드가 에뮬레이터의 재현 정도에 극도로 민감하기 때문이다. 11개라는 비교적 적은 수의 패치로 부팅에 도달했다는 사실 자체가, 문제의 병목이 광범위한 재작성이 아니라 몇몇 정밀한 지점의 재현에 있었음을 시사한다. 또한 wasm 포팅을 통해 설치 장벽 없이 브라우저만으로 체험할 수 있게 한 점은 역사적 소프트웨어의 접근성과 보존이라는 측면에서 의미가 크다.
다만 한계도 분명히 짚어야 한다. 공개된 내용은 '부팅된다'는 사실에 초점이 맞춰져 있을 뿐, 운영체제로서 얼마나 완전하게 동작하는지, 어떤 기능이 살아 있고 어디서 멈추는지에 대한 구체적 지표는 제시되지 않았다. 코플랜드가 애초에 취소된 미완성 빌드라는 점을 감안하면, 이는 완성된 시스템의 복원이라기보다 역사적 유물을 실행 가능한 상태로 관찰하게 해 주는 성격에 가깝다. 상류 병합이 이뤄지지 않는 한 이 실행 환경은 개인 포크에 머물 가능성도 있다.
그럼에도 이런 시도의 가치는 실용성만으로 재단되지 않는다. 작성자가 코플랜드 화면 속 창의 옛 3D 입체 베벨(bevel) 디자인을 그리워하며 현대 기기에서 되살릴 방법을 아쉬워한 대목처럼, 이 작업은 애플이 걸어갈 뻔했으나 걷지 않은 길을 눈으로 확인하게 해 준다. 사라진 소프트웨어를 보존하고 다시 실행 가능하게 만드는 일은 기술사(技術史)의 공백을 메우는 작업이며, 오늘의 macOS가 어떤 선택의 결과였는지를 되짚는 창이기도 하다.