TECH 으로 돌아가기
TECH HACKER NEWS 7분 읽기 25 READS

68k 맥을 위한 현대적 MacTCP 대체 스택, MoofTCP

68k 맥을 위한 현대적 MacTCP 대체 스택, MoofTCP
SOURCE IMAGE · HACKER NEWS

1990년대 초의 68000 계열 매킨토시를 지금도 인터넷에 연결해 쓰려는 레트로 컴퓨팅 애호가라면 애플의 MacTCP를 거치게 된다. MacTCP는 고전 맥 OS 시절의 표준 TCP/IP 구현이지만, 설계가 오래된 탓에 메모리 여유가 거의 없는 환경에서는 응답이 느리고 메모리를 많이 차지하며 설정도 까다롭다는 지적이 꾸준히 있었다. MoofTCP는 바로 이 지점을 겨냥해 등장한 프로젝트로, System 6에서 돌아가는 68000 맥을 대상으로 한 '드롭인(drop-in)' 방식의 MacTCP 대체 스택이다. MIT 라이선스로 공개되어 있으며, 기존 MacTCP용으로 작성된 프로그램을 수정 없이 그대로 구동하는 것을 목표로 한다.

바닥부터 새로 쓴 TCP/IP 스택

MoofTCP의 핵심은 겉으로는 MacTCP와 호환되지만 내부는 완전히 새로 작성되었다는 점이다. 이식성을 고려한 C 언어로 TCP/IP 스택을 처음부터 다시 구현했고, 전용 제어판(control panel)과 설치 프로그램, 그리고 자체 DHCP 클라이언트까지 갖추고 있다. 개발 기준 기기가 램 4MB짜리 매킨토시 클래식이었던 만큼, 프로젝트는 '한 바이트도 허투루 쓰지 않는다'는 원칙을 전면에 내세운다. 애초에 메모리 압박이 심한 구형 기기에서 쓰라고 만든 소프트웨어이므로, 상주 메모리 사용량이 MacTCP를 넘지 않도록 하는 것을 분명한 조건으로 삼았다.

이런 호환성 전략은 레트로 하드웨어 생태계에서 현실적인 선택이다. 당시의 통신 프로그램들을 일일이 다시 짤 수 없는 상황에서, 애플리케이션이 기대하는 인터페이스는 그대로 두고 그 아래 엔진만 교체하는 방식이기 때문이다. 다만 MoofTCP는 애플이나 제3자의 코드를 전혀 포함하지 않으며, 빌드 과정에서 Retro68 툴체인에 포함된 애플의 인터페이스 정의를 사용할 뿐이라고 명시한다. 이름에 쓰인 'MacTCP'와 'StuffIt'은 호환성을 설명하기 위한 상표 표기일 뿐이다.

실제 하드웨어와 에뮬레이터에서의 검증

프로젝트는 구체적인 테스트 환경을 밝히고 있다. 실기로는 System 6.0.8을 올린 4MB 매킨토시 클래식에, 다이나포트(DaynaPORT)를 지원하는 BlueSCSI v2 WiFi 어댑터를 물린 구성에서 동작을 확인했고, 에뮬레이터로는 Snow에서 검증했다. 배포본은 .hqx 형태로 제공되며, 압축 해제에는 StuffIt Lite 3.6이 정상 동작하는 것으로 확인됐다. MacTCP로 되돌리고 싶다면 설치 프로그램을 다시 실행해 Remove를 누르면 되고, 더 가벼운 MoofTCP Lite와의 전환 방법 등 세부 사항은 릴리스에 포함된 Read Me 문서에 정리돼 있다. 또한 MultiFinder 환경에서는 시스템 힙이 필요에 따라 늘어나기 때문에, 보고되는 여유 메모리가 더 크게 변동할 수 있다는 점도 함께 안내한다.

진단 도구와 개발 워크플로

호환성 문제를 다루기 위한 장치도 마련돼 있다. MoofTCP는 메모리에 작은 진단 로그를 유지하는데, 어떤 프로그램이 오작동하지만 맥 자체는 멈추지 않았다면 즉시 진단 도구에 포함된 MoofDiag를 실행하도록 권한다. 이 도구가 생성한 MoofDiag.out 파일과 당시 상황 설명을 이슈로 올리면 되고, 특정 프로그램의 동작 여부를 알리는 호환성 리포트와 풀 리퀘스트 역시 환영한다는 입장이다. 흥미롭게도 프로젝트는 코드베이스와 진단 출력을 LLM에게 분석시키고 수정 PR을 제출해도 좋다고 안내하는데, 이는 레트로 소프트웨어 개발에 현대적 도구를 적극적으로 끌어들이는 요즘 흐름을 보여준다.

빌드 환경은 개발 접근성을 낮추는 쪽으로 구성돼 있다. 기본적으로 Docker만 있으면 되며, 버전이 고정된 Retro68 크로스 컴파일러 이미지가 자동으로 내려받아진다. 릴리스를 만드는 release.sh는 여기에 더해 hfsutils, macutils, unar, gcc, Python 3를 필요로 한다. 이식성 있는 핵심 코어와 접착 로직은 데스크톱에서 gcc와 CMake로 테스트할 수 있는데, 이때 AddressSanitizer와 UBSan이 기본으로 켜져 있어 메모리 오류 검증을 기본값으로 삼는다. Snow를 이용한 에뮬레이터 테스트에는 애플 시스템 소프트웨어와 BlueSCSI 다이나포트 이미지가 필요한데, 이들은 저작권상 저장소에 포함돼 있지 않으므로 사용자가 직접 준비해야 하며 scripts 디렉터리의 스크립트들이 기대되는 구성을 보여준다.

실무적 관점에서 MoofTCP의 의미는 분명하다. 수십 년 된 네트워크 스택을 그대로 쓰는 대신, 동일한 애플리케이션 호환성을 유지하면서 메모리 효율과 설정 편의를 개선한 대안을 선택지로 제공한다는 점이다. 다만 그 적용 범위는 System 6 기반 68000 맥이라는 특정 세대에 한정되며, 검증된 조합도 매킨토시 클래식과 BlueSCSI라는 구체적 구성에 집중돼 있다. 모든 통신 프로그램에서의 완전한 호환은 아직 사용자 제보와 이슈 보고에 기대고 있는 단계인 만큼, 실제 투입 전에는 자신이 쓰는 애플리케이션으로 직접 동작을 확인하고, 문제가 생기면 진단 로그와 함께 피드백하는 과정을 거치는 편이 안전하다.

SOURCE · HACKER NEWS
원문 전체 보기 → https://github.com/matthewmrichter/mooftcp
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기 →
처리 중...