30년 전 애플 서버를 맥OS에서 실행하는 기술
원제 MacOS Extensions Pack for the Apple Network Server v1.0
110 포인트댓글 2

Key Point
1996년 하드웨어의 OS 호환성을 소프트웨어로 복원하는 역사적 기술 복원 사례로, 레트로 컴퓨팅과 드라이버 개발의 깊이 있는 사례 연구를 제시한다.
핵심 요약
- 1996년 애플 네트워크 서버(ANS)는 원래 하푼(Harpoon) AIX만 실행했지만, 애플이 개발 중에 맥OS 부팅 로직이 있었고 생산 로롬이 제거되었다.
- 최근 공개된 사전프로덕션 롬(1.1.20.1)은 AIX와 맥OS 양쪽을 모두 부팅할 수 있지만, 사전프로덕션 롬의 맥OS 지원에는 결함이 있었다(온보드 비디오 미지원, MACE 이더넷 작동 안 함, 재부팅 후 검은 화면).
- 저자는 이러한 문제를 소프트웨어로 수정하여 ANS Extensions Pack v1.0을 개발했으며, MACE 이더넷을 고정하고 온보드 비디오를 활성화하며 맥OS에서 적절히 재부팅하도록 했다.
- 설정 과정에서 BlueSCSI를 사용한 외부 SCSI 부팅 드라이브 구성과 프리프로덕션 롬 DIMM 교체 등의 하드웨어 준비가 필요하다.
- ANS Video Enabler는 사전프로덕션 맥OS 롬에서 직접 추출한 54M30 비디오 드라이버의 파워PC 네이티브 드라이버로, 8비트 색상 깊이만 지원하는 기존 드라이버의 제약을 그대로 유지한다.
- ANS Startup Fixer는 매부팅마다 맥OS가 NVRAM에 설치하는 부적절한 OpenFirmware 설정(ttya 직렬 포트 입출력)을 자동으로 수정하여 비디오와 키보드를 정상 동작하게 한다.
- ANS MACE Fixer INIT은 Open Firmware의 nvramrc에 PLSCC(Physical Layer Signaling Configuration Control) 값을 설정하여 MACE가 직접 AUI 연결을 사용하도록 구성하므로, Apple Enet INIT이 이를 올바르게 인식하고 네트워크가 작동한다.
- 저자는 CodeWarrior Pro 7을 사용하여 이 패키지를 개발했고, 3개의 구성 요소(ANS MACE Fixer, ANS Video Enabler, ANS Startup Fixer)를 Extensions 및 Startup Items 폴더에 배치한다.
- 본문은 드라이버 개발 과정에서 Power Mac의 PCI 드라이버 아키텍처, Copland의 영향, 68K 코드 호환성 요구 사항, 그리고 Name Registry와 family expert의 역할에 대해 상세히 설명한다.
- 프리프로덕션 롬의 비디오 드라이버는 2D 가속 기능을 미구현했으며 54M30 칩이 리틀엔디안 프레임버퍼만 제공하므로 바이트스왑이 필요하지만 애플이 작성하지 않아 8비트만 지원하는 한계가 있다.
- 저자는 이 프로젝트의 일부 성과를 Jeff Walther가 제공한 ROM DIMM 설계와 Joe Strosnider가 판매하는 레플리카 롬(수익은 Tinker Different 포럼 유지보수에 기부)을 활용해 달성했으며, 이후 Windows NT 네이티브 부팅을 목표로 한다.