유닉스인데 Z80에서 돌아간다고요?
리눅스를 돌리려면 보통 최소한 몇 MB 램은 있어야 한다고 알고 있잖아요. 그런데 8비트 CPU, 램 32KB짜리 레트로 머신에서 돌아가는 유닉스 계열 OS가 있다면 믿으시겠어요? 그게 바로 Fuzix OS예요. 리눅스 커널 초기 포팅으로 유명한 Alan Cox가 오랫동안 다듬어온 프로젝트인데, UZI(Unix Z80 Implementation)라는 1980년대 코드베이스를 현대적으로 계승한 OS예요.
"이걸 왜 만드나" 싶으실 수 있어요. 현대 컴퓨터에선 쓸 일이 없는 게 맞아요. 하지만 Fuzix는 Z80, 6502, 6809, 8085, 8086, 68000 같은 고전 CPU를 쓰는 레트로 컴퓨터, 그리고 초저사양 임베디드 장치를 타깃으로 해요. TRS-80, Amstrad CPC, MSX, ZX Spectrum 같은 옛날 컴퓨터 소유자들이 "내 기계에서 유닉스를 돌려보고 싶다"는 낭만적인 욕구를 충족해주는 OS인 셈이에요.
32KB에서 유닉스가 돌아가는 원리
이게 가능한 이유는 Fuzix가 유닉스의 전체가 아니라 핵심 아이디어만 살렸기 때문이에요. 프로세스, 파일 시스템, 파이프, fork/exec, 시그널 같은 유닉스의 정수는 유지하면서, 현대 리눅스가 짊어지고 있는 엄청난 복잡도는 덜어냈어요.
예를 들어 멀티태스킹이 되지만 swap to disk 방식을 써요. 프로세스 하나가 램에 올라가 있고, 다른 프로세스로 전환할 때 현재 프로세스를 통째로 디스크로 내렸다가 다음 프로세스를 올리는 식이에요. 현대 OS의 페이지 단위 가상 메모리에 비하면 원시적이지만, MMU(메모리 관리 유닛)가 없거나 빈약한 칩에서도 동작해요. 일부 플랫폼에서는 뱅크 스위칭이라는 8비트 시대 트릭으로 64KB 한계를 넘기도 하고요.
파일 시스템은 옛날 유닉스 V7 스타일을 따라서 단순하면서도 i-node 기반의 전통적 구조를 갖추고 있어요. 쉘도 Bourne shell과 비슷한 문법을 지원하고, ls, cat, grep, sed 같은 기본 유틸리티가 다 들어 있어요. C 컴파일러까지 포함돼서 자기 자신을 빌드할 수 있는 셀프 호스팅도 일부 플랫폼에서 가능해요.
재밌는 건 POSIX의 부분집합을 지키려고 한다는 거예요. 그래서 유닉스 기반으로 짠 간단한 C 프로그램은 크게 고치지 않고도 컴파일해서 돌릴 수 있어요. 당연히 스레드, 네트워크 스택 같은 무거운 기능은 제한적이거나 없지만요.
업계 맥락 – 작은 OS들의 생태계
Fuzix 말고도 소형 유닉스 계열 OS는 꽤 많아요. Minix는 Tanenbaum 교수가 교육용으로 만든 게 유명하고(리눅스가 여기서 영감을 받았죠), xv6는 MIT에서 수업용으로 만든 V6 유닉스 재구현이에요. ELKS는 원래 8086 같은 16비트 x86에서 리눅스 느낌을 내보자는 프로젝트고요.
Fuzix가 차별화되는 지점은 지원 플랫폼의 다양성이에요. 한 CPU에 묶이지 않고 Z80, 6502, 6809 등 다양한 8비트 아키텍처로 포팅돼 있어서, 레트로 하드웨어 커뮤니티 전반에 공통 OS 역할을 할 수 있어요. 그래서 homebrew 컴퓨터를 만드는 분들이 "내 보드용 Fuzix 포트를 하겠다"는 식으로 합류하기도 해요.
한편 현대 IoT/임베디드 쪽에서는 Zephyr, FreeRTOS, NuttX 같은 RTOS가 주류예요. 이들은 유닉스 스타일이 아니라 이벤트/태스크 기반이고, 훨씬 더 작은 풋프린트에 최적화돼 있어요. Fuzix는 이들과 목적이 달라요. 실시간성이나 극한의 저전력보다는 "유닉스 모델을 작은 하드웨어에서 경험하는 것" 자체가 가치예요.
한국 개발자에게 주는 시사점
솔직히 말해서 Fuzix를 바로 실무 프로젝트에 넣을 일은 거의 없어요. 그런데도 살펴볼 가치가 있는 이유는 OS의 본질을 공부하는 데 최고의 교재이기 때문이에요. 리눅스 소스는 이제 너무 방대해서 "어디부터 읽어야 하나" 싶은데, Fuzix는 코드가 수만 라인 수준이라 주말 몇 번이면 커널의 전체 구조를 따라 읽을 수 있어요. 스케줄러, 시스템 콜, 파일 시스템, 디바이스 드라이버가 어떻게 엮이는지 직관이 잡혀요.
취업이나 이직을 준비하는 주니어 분들, 특히 시스템/임베디드 쪽을 노리시는 분들에게는 포팅이나 드라이버 작성 기여가 좋은 포트폴리오가 돼요. 오픈소스 활동이면서 저수준 지식을 증명할 수 있는 드문 자료거든요. 레트로 하드웨어가 없어도 에뮬레이터(예: z88dk 계열, MAME)에서 Fuzix를 올려볼 수 있으니 진입 장벽도 낮아요.
또 하나, "작게 만드는 기술"의 가치를 체감할 수 있어요. 요즘 소프트웨어는 풍요로운 하드웨어 위에서 낭비를 당연시하는 경향이 있잖아요. 도커 이미지가 기본 1GB, 노드 모듈이 수백 MB. 그런데 32KB에서 멀티태스킹 OS를 돌리는 사람들을 보면, 우리가 쓰고 있는 리소스 중 얼마가 정말 필요한 건지 돌아보게 돼요. 이 감각은 성능 엔지니어링, 비용 최적화, 엣지 디바이스 개발 같은 현대 실무에서도 의외로 큰 자산이 돼요.
마무리
Fuzix는 실용 OS라기보다 유닉스라는 아이디어가 얼마나 작은 곳까지 닿을 수 있는가를 보여주는 증명에 가까워요. 40년 전 철학이 지금도 살아 있고, 그걸 현대 개발자들이 이어가고 있다는 사실 자체가 인상적이에요.
혹시 레트로 컴퓨팅이나 저수준 OS에 관심을 가져보신 적 있으세요? 요즘 같은 고성능 시대에 일부러 작은 OS를 공부해보는 게 의미가 있다고 느끼시는지, 아니면 시간 낭비라고 보시는지 솔직한 의견이 궁금해요.
🔗 출처: Hacker News
TTJ 코딩클래스 정규반
월급 외 수입,
코딩으로 만들 수 있습니다
17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공