4P by GN⁺ 7시간전 | ★ favorite | 댓글 1개
  • 단일 플로피 디스크(1.44MB) 에서 부팅 가능한 경량 리눅스 배포판 Floppinux가 2025년판(v0.3.1)으로 업데이트됨
  • 새 버전은 Linux 커널 6.14.11BusyBox 1.36.1을 기반으로 하며, 지속적 저장공간(264KB) 과 최신 하드웨어 호환성을 포함
  • Intel 486DX(33MHz) 이상 CPU와 20MB RAM 만으로 실행 가능하며, 텍스트 편집기(vi) 와 기본 파일 조작 명령어를 지원
  • 실제 하드웨어 및 에뮬레이터(qemu, Bochs, 86Box) 모두에서 동작하며, 사용자가 직접 커널과 툴체인을 빌드하도록 구성
  • 4년 전 첫 공개 이후 교육용·실험용으로 활용되어 왔으며, 이번 판은 최신 커널 유지와 학습용 튜토리얼 갱신에 중점

프로젝트 개요

  • Floppinux는 단일 플로피 디스크에서 부팅 가능한 최소 리눅스 시스템 구축을 목표로 함
    • “Linux From Scratch”와 유사한 학습용 워크숍 형태로 설계되어, 사용자가 직접 수정 및 확장 가능
  • 완성된 배포판은 텍스트 기반 터미널 환경을 제공하며, 파일 편집과 간단한 스크립트 작성 가능
  • 남은 저장공간은 264KB 로, 사용자가 생성한 파일을 플로피에 직접 저장 가능

핵심 기능 및 요구 사양

  • 단일 플로피 부팅, 최신 커널(6.14) , 32비트 x86 CPU(486DX 이상) 지원
  • 텍스트 편집기(vi) , 기본 파일 조작 명령어(cat, cp, mv, rm 등) , 간단한 스크립팅 기능 포함
  • 지속적 저장공간(persistent storage) 을 통해 플로피에 파일 저장 가능
  • 최소 하드웨어 요구사항: Intel 486DX 33MHz, 20MB RAM, 내부 플로피 드라이브

커널 구성

  • Linux 6.14.11 버전이 i486 CPU를 완전 지원하는 마지막 커널로 사용됨
  • 커널 설정은 최소 부팅 기능 중심으로 구성되어 있으며, XZ 압축 initramfs, ELF 실행 지원, FAT 파일시스템 포함
  • TTY, 블록 장치, /proc 및 sysfs 파일시스템 지원 활성화
  • 커널 빌드 결과물은 bzImage(881KiB) 로 생성

빌드 환경 및 툴체인

  • Omarchy Linux(Arch 기반 64비트 OS) 에서 빌드 진행, POSIX 호환 시스템에서도 동일 절차 적용 가능
  • i486-linux-musl-cross 크로스 컴파일러 사용으로 32비트 대상 빌드 지원
  • 에뮬레이션 환경으로 qemu 사용, Bochs는 디버깅용, 86Box는 느리지만 대안 가능

BusyBox 기반 도구 세트

  • BusyBox 1.36.1 버전 사용, GNU 유틸리티를 대체하는 경량 명령어 모음 제공
  • 선택된 주요 명령어: cat, cp, df, echo, ls, mkdir, mv, rm, sync, vi, mount, umount, clear, test
  • 정적 바이너리(static binary) 로 빌드되어 공유 라이브러리 의존성 제거
  • BusyBox 빌드 후 생성된 루트 파일시스템(rootfs.cpio.xz)은 137KiB 크기

파일시스템 및 초기화 구성

  • 최소 디렉터리 구조와 환영 메시지(welcome) , inittab, rc 초기화 스크립트 포함
    • rc 스크립트는 /proc, /sys 마운트 후 /home 디렉터리 생성 및 플로피를 /mnt 에 마운트
    • 부팅 시 환영 배너 출력 후 쉘(/bin/sh) 로 진입
  • syslinux.cfg 설정을 통해 부팅 메시지와 커널 파라미터 지정
    • APPEND root=/dev/ram rdinit=/etc/init.d/rc console=tty0 tsc=unstable

부팅 이미지 생성

  • 1.44MB 플로피 이미지(floppinux.img) 생성 후 포맷 및 부트로더(syslinux) 설치
  • 커널, 루트파일시스템, 설정파일을 이미지에 복사
  • qemu 로 부팅 테스트 후 실제 플로피에 기록 가능
  • 잘못된 드라이브 선택 시 데이터 손실 위험 경고 포함

최종 요약

  • 버전: 0.3.1 (2025년 12월)
  • 커널: 6.14.11
  • BusyBox: 1.36.1
  • 이미지 크기: 1.44MiB
  • 남은 공간: 약 253KiB
  • 지원 명령어: 파일 조작(cat, cp, mv, rm, ls, mkdir), 시스템 관리(df, sync, mount, umount), 텍스트 처리(echo, more), 편집기(vi)

의의

  • Floppinux는 리눅스 커널 구조와 부팅 과정 학습용으로 최적화된 초경량 배포판
  • 실제 하드웨어에서도 동작 가능한 완전한 리눅스 환경을 플로피 한 장에 구현
  • 교육, 복고형 시스템 실험, 임베디드 개발 입문에 유용한 예제 플랫폼으로 활용 가능
Hacker News 의견들
  • 크리스마스 때 32비트 시대의 컴퓨터를 실제로 사용 가능한 수준으로 만들어보려 했음
    문제는 성능이 아니라 소프트웨어 지원비디오 드라이버였음
    요즘은 32비트용 패키지를 거의 빌드하지 않아서 CLI조차 64비트 의존성 때문에 제한적임
    커널에서도 오래된 GPU 드라이버가 빠져 기본 VGA 모드만 남아 MPEG2 재생도 버거움
    결국 하드웨어에 맞는 Debian 5를 설치하려 했지만, 당시 ISO는 USB 부팅이 안 돼 포기했음
    이런 프로젝트는 재미는 있지만 실사용은 어렵다는 결론임

    • Office 97을 VM에서 돌려봤는데 여전히 기능이 풍부하고 빠름
      리본 UI보다 예전 인터페이스가 더 좋고, WordArt 같은 기능이 향수를 자극함
      최신 버전의 기능도 좋지만, 30년 가까운 소프트웨어가 이렇게 완성도 높다는 게 놀라움
    • 이건 Linux 한정 이야기 같음
      NetBSD는 여전히 i386용 패키지와 pkgsrc를 제공함
      pkgsrc 저장소 링크
      나는 그래픽보다는 VGA 텍스트 모드를 선호함
    • 문제는 성능이 아니라 현대 소프트웨어의 비대함
      브라우저 기반 앱이 너무 많고, JS로 만든 느린 프로그램이 넘쳐남
      LLM이 이런 코드로 학습된다는 게 흥미로움
    • 2000년대 초 AMD 800MHz, RAM 256MB로 CS 1.6 서버를 돌렸던 기억이 있음
      NAT 게이트웨이, 웹서버까지 함께 돌렸는데도 잘 됐음
      그런데 요즘은 16GB도 부족하다고 느끼는 현실이 아이러니함
    • Plop Boot Manager를 추천함
      플로피나 CD에서 부팅해 오래된 PC에서도 USB로 체인로딩 가능함
      펜티엄 MMX에서 써봤는데 느리긴 해도 잘 작동했음
  • 예전에 처음 써본 리눅스 배포판이 Damn Small Linux (DSL) 였음
    원래 GameCube 포팅 시도에 쓰였지만, 주 개발팀은 Gentoo로 전환했음
    현재 DSL 2024는 antiX 23 i386 기반으로, 700MB 제한 안에 데스크탑 환경을 넣기 위해 언어팩과 문서를 줄였음
    복원 스크립트로 필요한 파일을 다시 받을 수 있음
    공식 사이트

    • 최근 Puppy Linux, DSL, TinyCoreLinux를 다시 살펴보며 LLM 에이전트 샌드박스용 VM을 만들었음
      리뷰를 보면 Alpine이 추천 배포판이었는데, 신뢰도는 잘 모르겠음
  • 실제 486에서 테스트해봤는데 부팅 실패함
    32MB RAM을 꽂았지만 “Booting kernel failed: Invalid Argument” 오류가 남
    BIOS가 E820h 메모리 맵 루틴을 지원하지 않아 생긴 문제로 추정함
    스크린샷
    실제 하드웨어 갤러리 참고 가능함

  • 글에서 제시된 FAT12 기반 지속성 전략이 공간 절약에는 똑똑한 접근임
    하지만 플로피는 저널링이 없어 전원 차단 시 데이터 손상 위험이 큼
    대신 로그 구조 파일시스템(JFFS2 등)을 쓰거나, 종료 시점에만 tar로 직렬화하는 방법이 더 안전할 수도 있음

    • 저널링이 생각보다 큰 이점이 아님
      수십 년간 FAT을 써왔지만 데이터 손상은 거의 없었음
      지금도 임베디드 기기 대부분이 FAT을 사용함
    • FAT도 드라이버 설계로 저널링 수준의 안정성을 구현할 수 있음
      FAT1/FAT2 복사와 파일 크기 업데이트 순서를 조정해 충돌 시 복구 가능함
    • 예전에는 initrd 같은 게 없고, 시스템 전체를 디스크에서 바로 읽었음
      Slackware 8이나 최신 NetBSD도 여전히 그런 구조를 유지함
    • OpenWrt의 squashfs + jffs2 오버레이 구조처럼 읽기 전용 루트와 쓰기 가능한 오버레이를 함께 쓰는 방식도 가능함
    • 전원 차단 위험을 줄이려면 두 번째 플로피 드라이브를 쓰는 게 낫다고 생각함
  • 1999년 QNX 데모 플로피를 기억함
    1.44MB 디스크에서 바로 GUI와 웹브라우저가 실행됐음
    이후로 그런 걸 본 적이 없음

    • MenuetOS/KolibriOS도 비슷한 예임
      이제는 그런 시스템이 다시 존재함
    • xwoaf-rebuild도 그 계열임
    • 처음 봤을 때 GUI와 드라이버를 1.44MB에 넣은 게 믿기 어려웠음
    • 요즘은 유니코드 테이블만 넣어도 용량이 넘칠 듯함
  • 남은 264KB 공간을 늘리려면 확장 플로피 포맷을 쓰면 됨
    Windows 95 설치 디스크처럼 21섹터 트랙 포맷을 쓰면 1680KB까지 가능함
    Linux의 표준 포맷 도구에서도 이런 레이아웃을 만들 수 있음

  • 플로피 디스크의 소리와 로딩의 설렘이 그립음

    • 요즘 노트북의 코일 와인이 그나마 그 시절의 “컴퓨터가 일하는 소리”를 떠올리게 함
      이 소리를 설정으로 조절할 수 있으면 좋겠음
  • “5분 만에 플로피를 굽는” 문장을 보고 웃음이 나왔음

    • 그건 확실히 CD-R/RW 세대의 감성이 느껴지는 표현임
  • 플로피를 꼭 포맷해야 할까 궁금함
    syslinux나 lilo가 커널을 플로피 섹터에서 직접 로드할 수 있다면 더 단순할 듯함
    ext2가 FAT보다 작을 수도 있음

  • 1997년에 Slackware를 12장짜리 플로피 세트로 받았던 기억이 있음

    • 그 시절 매장에서 Slackware가 담긴 플로피를 ‘미친 특가’로 팔았음
      다만 품질이 좋지 않아 설치가 힘들었음
    • MuLinux도 플로피 기반의 라이브 배포판이었고, X11이나 언어팩을 추가 플로피로 확장 가능했음
    • 실제로는 30장 이상이었던 것 같음
      VAX에서 FTP로 받고, Kermit으로 DOS PC로 전송해 설치했는데, 중간에 디스크 불량으로 반복했음
      X 시리즈는 X11용, A/B/C 시리즈는 기본 시스템용이었음
    • 아마 두 장짜리로 돌아가던 건 Puppy Linux였을 것임
      933MHz Coppermine 시스템에서 돌렸고, 나중에 HDD 교체 후 X11을 빌드하려다 실패했던 기억이 있음