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

플로피 디스크 한 장에 진짜 리눅스를 담았다고? Floppinux 이야기

플로피 디스크 한 장에 진짜 리눅스를 담았다고? Floppinux 이야기

요즘 운영체제는 설치하려면 기본 수 기가바이트(GB)는 우습게 먹잖아요. 윈도우는 수십 GB고요. 그런데 옛날 플로피 디스크 한 장, 그러니까 딱 1.44MB(메가바이트, 기가바이트의 1024분의 1쯤 되는 아주 작은 용량)에 부팅까지 되는 진짜 리눅스를 담아낸 사람이 있어요. 'Floppinux'라는 프로젝트인데, 폴란드 개발자 Krzysztof Krystian Jankowski(닉네임 w84death)가 만들었어요. "이게 가능해?" 싶지만, 리눅스가 어떻게 켜지는지 그 속을 들여다보면 충분히 말이 되는 이야기예요.

1.44MB에 뭐가 들어갈 수 있을까

운영체제를 아주 거칠게 나누면 두 부분이에요. 하드웨어를 직접 다루는 '커널(kernel)'과, 우리가 쓰는 명령어·프로그램들이 모인 '유저랜드(userland)'요. Floppinux는 이 둘을 극단적으로 다이어트시켜서 플로피에 욱여넣어요.

먼저 커널은 리눅스 커널을 직접 가져다가, 필요 없는 기능을 거의 다 꺼버린 채로 새로 컴파일(소스 코드를 실행 파일로 변환)해요. 요즘 커널은 온갖 하드웨어 드라이버와 기능을 다 품고 있어서 그대로면 수십 MB거든요. 그걸 "이 프로젝트엔 이것만 있으면 돼" 수준으로 잘라내고 압축까지 하면 몇백 KB로 줄어요.

유저랜드는 'BusyBox'라는 걸 써요. 이게 뭐냐면, 평소 우리가 터미널에서 쓰는 ls, cat, cp, sh 같은 수십, 수백 개의 명령어를 각각 따로 두지 않고 하나의 작은 실행 파일 안에 전부 합쳐놓은 거예요. 임베디드(작은 기기) 리눅스에서는 거의 표준처럼 쓰이는 도구죠. 명령어 하나하나를 다 담으면 용량이 커지니까, 스위스 군용칼처럼 한 덩어리로 묶어서 공간을 아끼는 거예요.

켜지는 과정도 단순해요

부팅하면 커널이 메모리로 올라오고, 커널은 'initramfs'라는 초기 파일 시스템(메모리에 통째로 올라가는 작은 디스크라고 보면 돼요)을 펼친 다음 그 안의 BusyBox 셸을 띄워요. 그러면 끝이에요. 화면에 프롬프트가 뜨고, 명령어를 입력할 수 있는 진짜 리눅스가 플로피 한 장(혹은 USB, 가상머신)에서 돌아가는 거죠. 무겁고 복잡한 부팅 단계를 다 걷어내고 핵심만 남겼기 때문에, 리눅스가 어떻게 시작되는지 그 뼈대를 눈으로 확인하기에 이만한 교재가 없어요.

비슷한 흐름들

이렇게 작게 만드는 시도는 Floppinux만의 일은 아니에요. Tiny Core Linux는 십몇 MB대의 초경량 배포판이고, 도커 이미지로 유명한 Alpine Linux도 작고 가볍게를 모토로 임베디드와 컨테이너 세계를 평정했죠. Buildroot나 Yocto 같은 도구는 아예 내가 필요한 것만 골라서 나만의 리눅스를 빌드하게 해줘요. Floppinux는 이 미니멀리즘 계보의 가장 극단에 있는, 일종의 예술 작품 같은 프로젝트예요.

한국 개발자에게

이게 단순한 추억팔이나 장난이 아니에요. 첫째, 임베디드·IoT 개발을 한다면 이 원리가 그대로 실무거든요. 라즈베리파이보다 더 작은 기기에 리눅스를 올릴 때 정확히 이런 식으로 커널을 잘라내고 BusyBox를 씁니다. 둘째, 커널을 직접 컴파일해보는 경험은 운영체제가 추상적인 무언가에서 내가 옵션을 켜고 끌 수 있는 구체적인 코드 덩어리로 바뀌는 계기가 돼요. 셋째, 요즘 다들 고민하는 도커 이미지 용량 줄이기도 결국 같은 사고방식이에요. 꼭 필요한 것만 남긴다는 원칙이요. 주말에 한 번 따라 만들어보면 리눅스를 보는 눈이 확실히 달라질 거예요.

마무리

핵심 한 줄: Floppinux는 리눅스를 1.44MB로 줄인 곡예가 아니라, 운영체제의 본질이 얼마나 단순할 수 있는지 보여주는 살아있는 교과서다.

여러분은 커널을 직접 빌드해보거나 최소 리눅스를 만들어본 경험이 있으세요? 우리가 평소 쓰는 OS에서 '사실은 없어도 되는 것'은 얼마나 될까요?


🔗 출처: Hacker News

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