TECH 으로 돌아가기
TECH HACKER NEWS 오늘 5분 읽기 23 READS

1993년 게임기 '아타리 재규어'에 리눅스를 올렸다고요? 실용성 0, 낭만 100

1993년 게임기 '아타리 재규어'에 리눅스를 올렸다고요? 실용성 0, 낭만 100

1993년 게임기에 리눅스를 올린 사람이 있어요

가끔 개발자들 중에 ‘될까 안 될까?’를 순수한 호기심 하나로 밀어붙이는 분들이 있잖아요. 이번엔 무려 1993년에 나온 게임기 ‘아타리 재규어(Atari Jaguar)’에 리눅스를 올린 사람이 나왔어요. 실용성? 거의 없어요. 그런데 그 과정이 기가 막히게 재밌어요.

아타리 재규어가 뭔데

아타리 재규어는 닌텐도, 세가가 한창 잘나가던 시절에 아타리가 ‘우리는 64비트다!’라고 광고하며 내놓은 게임기예요. 사실 이 ‘64비트’는 마케팅 과장이 좀 섞여 있었고, 실제 두뇌 역할을 하는 메인 CPU는 모토로라 68000이라는 칩이었어요. 이 68000은 우리 개발자들에게도 친숙한 유서 깊은 칩인데, 옛날 매킨토시나 아미가, 세가 제네시스에도 들어갔던 물건이에요. 그리고 여기 램은 고작 2MB밖에 없어요. 요즘 사진 한 장도 안 들어가는 용량이죠.

어떻게 리눅스가 돌아가지

여기서 기술적으로 흥미로운 지점이 나와요. 보통 리눅스는 MMU(메모리 관리 장치)라는 하드웨어가 있어야 제대로 돌아가요. MMU가 뭐냐면, 프로그램마다 자기만의 가상 주소 공간을 주고 서로 침범하지 못하게 교통정리를 해주는 장치예요. 그런데 68000에는 이 MMU가 없어요.

그래서 등장하는 게 uClinux예요. 이건 MMU가 없는 저사양 칩에서도 돌아가도록 만든 리눅스의 특수 버전이에요. 임베디드 기기나 아주 오래된 하드웨어에서 리눅스를 굴려야 할 때 쓰는 물건이죠. 이걸 재규어의 68000과 2MB 램에 맞게 이식(porting)한 거예요. 이식이란 건, 특정 하드웨어에서 돌던 소프트웨어를 다른 하드웨어에서도 돌아가게 뜯어고치는 작업을 말해요.

물론 화면에 그래픽 데스크톱이 뜨는 그런 건 아니에요. 시리얼 콘솔(글자만 나오는 옛날식 터미널)로 리눅스 셸이 뜨고, 명령어를 쳐서 반응이 오는 수준이에요. 하지만 이 정도만 해도 엄청난 일이에요. 2MB 안에 커널을 욱여넣고, 부팅 과정을 하나하나 맞추고, 게임기 특유의 하드웨어를 리눅스가 알아듣게 다리를 놓는 작업이 다 필요했으니까요.

이런 거 왜 하나

‘쓸모도 없는데 왜?’라고 물을 수 있어요. 하지만 이런 극한 이식 프로젝트는 저수준 시스템 지식의 끝판왕 연습이에요. CPU가 어떻게 부팅하는지, 메모리를 어떻게 배치하는지, 커널이 하드웨어와 어떻게 대화하는지를 진짜 밑바닥까지 이해해야만 성공하거든요. 레트로 컴퓨팅 커뮤니티에서는 이런 도전이 하나의 문화이자 훈장 같은 거예요.

한국 개발자에게

임베디드나 시스템 프로그래밍에 관심 있는 분이라면 이런 프로젝트가 정말 좋은 교재예요. 요즘은 라즈베리파이 같은 걸로 쉽게 시작하지만, 리소스가 극도로 부족한 환경에서 커널을 올려보는 경험은 결이 완전히 달라요. ‘메모리 2MB로 뭘 할 수 있을까’를 고민하다 보면, 평소 우리가 얼마나 자원을 흥청망청 쓰는지도 새삼 느끼게 되고요. MMU, 부트로더, 크로스 컴파일 같은 개념을 손으로 익히기에 이만한 소재가 없어요.

정리하면, 실용성은 0이지만 시스템 프로그래밍의 낭만은 100인 프로젝트예요. 여러분은 이런 ‘쓸모없어 보이지만 멋진’ 사이드 프로젝트, 해본 적 있으세요? 있다면 자랑 좀 해주세요!


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://cakehonolulu.github.io/linux-for-jaguar/
SHARE
처리 중...