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

16비트 게임기 세가 메가드라이브에서 리눅스를 돌린다고?

16비트 게임기 세가 메가드라이브에서 리눅스를 돌린다고?

추억의 게임기에서 리눅스를?

세가 메가드라이브(북미명 제네시스)는 1988년에 나온 16비트 게임기예요. '소닉'이 뛰어다니던 그 추억의 기계죠. 그런데 누군가 여기에 진짜 리눅스를 올리는 프로젝트를 들고 나왔어요. 처음 들으면 '에이, 농담이겠지' 싶은데, 이게 왜 그렇게 무모한 도전인지, 그리고 어떻게 가능한지 들여다보면 컴퓨터의 밑바닥 원리가 보여요.

메가드라이브가 얼마나 작은 기계냐면

메가드라이브의 두뇌는 모토로라 68000이라는 CPU예요. 동작 속도가 약 7.6MHz인데, 요즘 스마트폰이 수 GHz(기가헤르츠)인 걸 생각하면 대략 천 배쯤 느려요. 메인 메모리(RAM)는 고작 64KB예요. 요즘 웹페이지 하나가 수 MB인 걸 생각하면, 사진 한 장도 다 못 담는 크기죠.

더 큰 문제는 이 칩에 'MMU'가 없다는 거예요. MMU(메모리 관리 장치)가 뭐냐면, 프로그램마다 '가상의 독립된 메모리 공간'을 만들어주는 하드웨어예요. 리눅스 같은 현대 운영체제는 여러 프로그램을 안전하게 동시에 돌리려고 이 MMU에 크게 의존하거든요. 그런데 68000엔 그게 없어요. 게다가 64KB 메모리로는 리눅스 커널은커녕 부팅 메시지조차 다 못 담아요.

그럼 대체 어떻게 돌리나

비밀은 '직접 돌리지 않고 흉내 낸다'는 데 있어요. 이런 극한의 프로젝트들이 즐겨 쓰는 방법인데요. 느린 옛날 CPU 위에 또 다른 가상의 CPU(MMU가 있는 칩)를 소프트웨어로 흉내 내는 '에뮬레이터'를 올리고, 그 가상 CPU 위에서 리눅스를 돌리는 거예요. 비유하자면, 주판으로 계산기를 흉내 내고, 그 흉내 낸 계산기로 엑셀을 돌리는 셈이죠. 당연히 엄청나게 느려요. 부팅하는 데만 몇 시간이 걸리기도 해요.

예전에 한 해커가 8비트 마이크로컨트롤러(아두이노에 쓰이는 작은 칩 종류)에서 ARM을 흉내 내 리눅스를 부팅시킨 유명한 사례가 있었는데, 메가드라이브 리눅스도 같은 계보의 장난이에요. 그리고 64KB 메모리 문제는 카트리지 슬롯을 활용해 푸는 경우가 많아요. 게임 카트리지가 꽂히던 그 자리에 추가 메모리나 보조 칩을 넣어서 부족한 자원을 보충하는 거죠. 게임기 입장에선 그냥 '특별한 게임 팩'을 꽂은 걸로 보이는 거예요.

이런 걸 왜 하나

'실용성 제로인데 왜?'라고 물을 수 있어요. 사실 이런 프로젝트의 가치는 실용성에 있지 않아요. 첫째는 순수한 기술적 호기심과 한계 탐구예요. '이 작은 기계의 진짜 한계는 어디까지일까'를 밀어붙이는 거죠. 둘째는 학습이에요. CPU 에뮬레이션, MMU의 역할, 메모리 관리, 부트 과정 같은 걸 이만큼 깊이 이해하게 만드는 교재가 또 없어요. 참고로 MMU가 없는 작은 기기를 위해 'uClinux(마이크로컨트롤러용 리눅스)'라는 갈래도 따로 있는데, 이런 프로젝트들은 그런 임베디드 리눅스의 세계와도 맞닿아 있어요.

한국 개발자에게

임베디드나 펌웨어를 다루는 분이라면 이런 프로젝트가 그냥 장난으로만 보이지 않을 거예요. MMU가 없는 환경, 극단적으로 적은 메모리, 직접 부트로더를 짜는 경험은 실제 마이크로컨트롤러 개발에서 마주치는 고민과 똑 닮아 있거든요. 또 '추상화 계층을 하나 더 쌓으면 무엇이든 흉내 낼 수 있지만 그만큼 느려진다'는 교훈은, 우리가 매일 쓰는 가상머신·컨테이너·에뮬레이터를 이해하는 데도 그대로 적용돼요.

무엇보다 이런 '쓸모없어 보이는 도전'들이 결국 엔지니어의 실력을 키우고, 가끔은 진짜 혁신의 씨앗이 되기도 해요. 주말에 오래된 하드웨어 하나 꺼내서 만져보고 싶어지지 않나요?

여러분이라면 가장 도전해보고 싶은 '말도 안 되는' 옛날 기계는 무엇인가요?


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://github.com/LinuxMD/linuxmd
SHARE
처리 중...