11 คะแนน โดย GN⁺ 2026-02-04 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Floppinux ดิสโทรลินุกซ์ขนาดเบาที่สามารถบูตได้จาก ฟลอปปีดิสก์เพียงแผ่นเดียว (1.44MB) ได้รับการอัปเดตเป็นฉบับปี 2025 (v0.3.1)
  • เวอร์ชันใหม่นี้ใช้ Linux kernel 6.14.11 และ BusyBox 1.36.1 เป็นฐาน พร้อม พื้นที่เก็บข้อมูลแบบถาวร (264KB) และรองรับฮาร์ดแวร์สมัยใหม่
  • สามารถทำงานได้ด้วย CPU ระดับ Intel 486DX (33MHz) ขึ้นไปและ RAM 20MB เท่านั้น พร้อมรองรับ โปรแกรมแก้ไขข้อความ (vi) และคำสั่งจัดการไฟล์พื้นฐาน
  • ทำงานได้ทั้งบน ฮาร์ดแวร์จริงและอีมูเลเตอร์ (qemu, Bochs, 86Box) และถูกออกแบบให้ผู้ใช้สร้างเคอร์เนลกับ toolchain ได้ด้วยตนเอง
  • หลังจากเปิดตัวครั้งแรกเมื่อ 4 ปีก่อน ก็ถูกนำไปใช้เพื่อการศึกษาและการทดลองมาโดยตลอด โดยฉบับนี้เน้นที่ การคงเคอร์เนลให้ทันสมัยและการอัปเดตทิวทอเรียลสำหรับการเรียนรู้

ภาพรวมโครงการ

  • Floppinux มีเป้าหมายในการสร้าง ระบบลินุกซ์ขนาดเล็กที่สุดที่บูตได้จากฟลอปปีดิสก์เพียงแผ่นเดียว
    • ถูกออกแบบในรูปแบบ เวิร์กช็อปเพื่อการเรียนรู้ ที่คล้ายกับ “Linux From Scratch” ทำให้ผู้ใช้สามารถแก้ไขและขยายระบบได้ด้วยตนเอง
  • ดิสโทรที่สร้างเสร็จแล้วจะมอบ สภาพแวดล้อมเทอร์มินัลแบบข้อความ ที่สามารถแก้ไขไฟล์และเขียนสคริปต์อย่างง่ายได้
  • พื้นที่เก็บข้อมูลที่เหลืออยู่มี 264KB ทำให้ผู้ใช้สามารถบันทึกไฟล์ที่สร้างขึ้นลงบนฟลอปปีดิสก์ได้โดยตรง

ความสามารถหลักและข้อกำหนดระบบ

  • รองรับ การบูตจากฟลอปปีดิสก์แผ่นเดียว, เคอร์เนลล่าสุด (6.14) และ CPU x86 แบบ 32 บิต (486DX ขึ้นไป)
  • มี โปรแกรมแก้ไขข้อความ (vi), คำสั่งจัดการไฟล์พื้นฐาน (cat, cp, mv, rm เป็นต้น) และความสามารถด้าน สคริปต์อย่างง่าย
  • สามารถบันทึกไฟล์ลงฟลอปปีดิสก์ได้ผ่าน persistent storage
  • ความต้องการฮาร์ดแวร์ขั้นต่ำ: Intel 486DX 33MHz, RAM 20MB, ฟลอปปีดิสก์ไดรฟ์ภายใน

การตั้งค่าเคอร์เนล

  • ใช้ Linux 6.14.11 ซึ่งเป็นเคอร์เนลรุ่นสุดท้ายที่ยังรองรับ CPU i486 อย่างสมบูรณ์
  • การตั้งค่าเคอร์เนลมุ่งเน้นที่ ความสามารถขั้นต่ำสำหรับการบูต และรวม initramfs แบบบีบอัด XZ, การรองรับการรัน ELF และ ระบบไฟล์ FAT
  • เปิดใช้งานการรองรับ TTY, block device, ระบบไฟล์ /proc และ sysfs
  • ผลลัพธ์จากการบิลด์เคอร์เนลถูกสร้างเป็น bzImage (881KiB)

สภาพแวดล้อมการบิลด์และ toolchain

  • บิลด์บน Omarchy Linux (OS 64 บิตที่อิงกับ Arch) และสามารถใช้ขั้นตอนเดียวกันได้บนระบบที่เข้ากันได้กับ POSIX
  • รองรับการบิลด์เป้าหมายแบบ 32 บิตด้วยคอมไพเลอร์ข้ามแพลตฟอร์ม i486-linux-musl-cross
  • ใช้ qemu เป็นสภาพแวดล้อมจำลอง โดย Bochs ใช้สำหรับดีบัก และ 86Box แม้จะช้าแต่ก็ใช้แทนได้

ชุดเครื่องมือบนพื้นฐานของ BusyBox

  • ใช้ BusyBox 1.36.1 ซึ่งเป็นชุดคำสั่งขนาดเบาที่ใช้แทน GNU utilities
  • คำสั่งหลักที่เลือกมาได้แก่ cat, cp, df, echo, ls, mkdir, mv, rm, sync, vi, mount, umount, clear, test
  • บิลด์เป็น static binary เพื่อตัดการพึ่งพา shared library ออกไป
  • หลังจากบิลด์ BusyBox แล้ว root filesystem ที่สร้างขึ้น (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)
  • คัดลอกเคอร์เนล, root filesystem และไฟล์ตั้งค่าลงในอิมเมจ
  • สามารถทดสอบการบูตด้วย qemu แล้วจึงเขียนลงฟลอปปีดิสก์จริง
  • มีคำเตือนถึงความเสี่ยงของข้อมูลสูญหายหากเลือกไดรฟ์ผิด

สรุปสุดท้าย

  • เวอร์ชัน: 0.3.1 (ธันวาคม 2025)
  • เคอร์เนล: 6.14.11
  • BusyBox: 1.36.1
  • ขนาดอิมเมจ: 1.44MiB
  • พื้นที่ที่เหลือ: ประมาณ 253KiB
  • คำสั่งที่รองรับ: การจัดการไฟล์ (cat, cp, mv, rm, ls, mkdir), การดูแลระบบ (df, sync, mount, umount), การประมวลผลข้อความ (echo, more), โปรแกรมแก้ไข (vi)

ความสำคัญ

  • Floppinux คือ ดิสโทรขนาดจิ๋วที่ถูกปรับแต่งมาอย่างเหมาะสมสำหรับการเรียนรู้โครงสร้างเคอร์เนลลินุกซ์และกระบวนการบูต
  • ทำให้ สภาพแวดล้อมลินุกซ์ที่สมบูรณ์และทำงานได้บนฮาร์ดแวร์จริง อยู่ภายในฟลอปปีดิสก์เพียงแผ่นเดียว
  • สามารถใช้เป็นแพลตฟอร์มตัวอย่างที่มีประโยชน์สำหรับ การศึกษา การทดลองกับระบบย้อนยุค และการเริ่มต้นพัฒนา embedded

1 ความคิดเห็น

 
GN⁺ 2026-02-04
ความเห็นจาก Hacker News
  • ตอนคริสต์มาสเคยพยายามทำให้คอมพิวเตอร์ยุค 32 บิตกลับมาอยู่ในสภาพที่ ใช้งานได้จริง
    ปัญหาไม่ใช่ประสิทธิภาพ แต่เป็น การรองรับซอฟต์แวร์ และ ไดรเวอร์วิดีโอ
    ทุกวันนี้แทบไม่มีใคร build แพ็กเกจสำหรับ 32 บิตแล้ว ทำให้แม้แต่ CLI ก็ยังถูกจำกัดเพราะ dependency ฝั่ง 64 บิต
    ใน kernel ก็ถอดไดรเวอร์ GPU รุ่นเก่าออกไป เหลือแค่โหมด VGA พื้นฐานจนแม้แต่เล่น MPEG2 ยังลำบาก
    สุดท้ายเลยพยายามติดตั้ง Debian 5 ที่เหมาะกับฮาร์ดแวร์นี้ แต่ ISO ในยุคนั้นบูตจาก USB ไม่ได้เลยต้องยอมแพ้
    สรุปคือโปรเจกต์แบบนี้สนุกดี แต่เอาไปใช้งานจริงยาก

    • เคยลองรัน Office 97 บน VM แล้วมันยัง ฟังก์ชันครบและเร็ว อยู่เลย
      ชอบอินเทอร์เฟซแบบเก่ามากกว่า Ribbon UI และฟีเจอร์อย่าง WordArt ก็ชวนให้นึกถึงวันวาน
      ฟีเจอร์ของรุ่นใหม่ก็ดี แต่ก็น่าทึ่งที่ซอฟต์แวร์อายุเกือบ 30 ปียังสมบูรณ์ขนาดนี้
    • เรื่องนี้น่าจะจำกัดอยู่แค่ Linux
      NetBSD ยังมี แพ็กเกจและ pkgsrc สำหรับ i386 อยู่
      ลิงก์คลัง pkgsrc
      ส่วนตัวชอบ VGA text mode มากกว่ากราฟิก
    • ปัญหาไม่ใช่ประสิทธิภาพ แต่คือ ความบวมของซอฟต์แวร์สมัยใหม่
      แอปแบบ browser-based มีมากเกินไป และโปรแกรมช้าๆ ที่เขียนด้วย JS ก็เต็มไปหมด
      น่าสนใจที่ LLM กำลังเรียนรู้จากโค้ดแบบนี้
    • จำได้ว่าช่วงต้นยุค 2000 เคยรัน เซิร์ฟเวอร์ CS 1.6 บน AMD 800MHz กับ RAM 256MB
      แถมยังรัน NAT gateway กับเว็บเซิร์ฟเวอร์ไปพร้อมกันได้สบาย
      แต่ทุกวันนี้กลับรู้สึกว่า 16GB ยังไม่พอ มันช่างน่าขำดี
    • ขอแนะนำ Plop Boot Manager
      บูตจากฟลอปปีดิสก์หรือ CD แล้ว chainload ไป USB ได้แม้บนพีซีรุ่นเก่า
      เคยใช้บน Pentium MMX ช้าอยู่บ้างแต่ทำงานได้ดี
  • Linux ดิสโทรแรกที่เคยใช้คือ Damn Small Linux (DSL)
    เดิมทีถูกใช้กับความพยายามพอร์ตลง GameCube แต่ทีมพัฒนาหลักภายหลังย้ายไป Gentoo
    ตอนนี้ DSL 2024 ใช้ฐาน antiX 23 i386 และเพื่อต้องยัดเดสก์ท็อปทั้งชุดให้อยู่ใน ข้อจำกัด 700MB จึงลด language pack กับเอกสารออก
    สามารถใช้สคริปต์กู้คืนเพื่อดาวน์โหลดไฟล์ที่ต้องการกลับมาได้
    เว็บไซต์ทางการ

    • ช่วงหลังได้กลับไปดู Puppy Linux, DSL และ TinyCoreLinux อีกครั้ง แล้วทำ VM สำหรับ sandbox ของ LLM agent ขึ้นมา
      จากรีวิวที่อ่านมา Alpine เป็นดิสโทรที่ถูกแนะนำ แต่ก็ยังไม่แน่ใจเรื่องความน่าเชื่อถือ
  • ลองทดสอบบน 486 จริงแล้ว แต่บูตไม่ผ่าน
    ใส่ RAM 32MB แล้ว แต่ขึ้นข้อผิดพลาด “Booting kernel failed: Invalid Argument”
    คาดว่าสาเหตุมาจาก BIOS ไม่รองรับ E820h memory map routine
    ดูได้จากภาพหน้าจอ และ
    แกลเลอรีฮาร์ดแวร์จริง

  • กลยุทธ์ persistence แบบ อิง FAT12 ที่บทความเสนอถือว่าเป็นแนวทางที่ฉลาดสำหรับการประหยัดพื้นที่
    แต่ฟลอปปีดิสก์ไม่มี journaling จึงเสี่ยงข้อมูลเสียหายเมื่อไฟดับ
    ทางเลือกที่ปลอดภัยกว่าอาจเป็นการใช้ log-structured filesystem เช่น JFFS2 หรือ serialize เป็น tar เฉพาะตอนปิดระบบ

    • journaling อาจไม่ได้เป็น ข้อได้เปรียบใหญ่ อย่างที่คิด
      ใช้ FAT มาหลายสิบปีแทบไม่เคยเจอข้อมูลเสียหายเลย
      แม้ตอนนี้อุปกรณ์ embedded ส่วนใหญ่ก็ยังใช้ FAT อยู่
    • FAT ก็สามารถทำให้มี ความเสถียรระดับ journaling ได้ด้วยการออกแบบไดรเวอร์
      ปรับลำดับการคัดลอก FAT1/FAT2 และการอัปเดตขนาดไฟล์ ก็ช่วยให้กู้คืนได้เมื่อระบบล่ม
    • สมัยก่อนยังไม่มีอะไรอย่าง initrd และระบบทั้งหมดถูกอ่านจากดิสก์โดยตรง
      Slackware 8 หรือแม้แต่ NetBSD รุ่นใหม่ก็ยังคงโครงสร้างแบบนั้นอยู่
    • ยังทำแบบโครงสร้าง squashfs + jffs2 overlay เหมือน OpenWrt ได้เช่นกัน โดยใช้ root แบบอ่านอย่างเดียวคู่กับ overlay ที่เขียนได้
    • ถ้าอยากลดความเสี่ยงจากไฟดับ คิดว่าใช้ ไดรฟ์ฟลอปปีตัวที่สอง น่าจะดีกว่า
  • จำ QNX demo floppy ปี 1999 ได้
    มันรันทั้ง GUI และเว็บเบราว์เซอร์ได้ทันทีจากดิสก์ 1.44MB
    หลังจากนั้นก็ไม่เคยเห็นอะไรแบบนั้นอีกเลย

    • MenuetOS/KolibriOS ก็เป็นตัวอย่างคล้ายกัน
      ตอนนี้ระบบแบบนั้นกลับมามีอีกครั้งแล้ว
    • xwoaf-rebuild ก็อยู่ในสายเดียวกัน
    • ตอนเห็นครั้งแรก รู้สึกว่าเอา GUI กับไดรเวอร์ใส่ใน 1.44MB ได้มัน เหลือเชื่อมาก
    • ทุกวันนี้แค่ใส่ตาราง Unicode ก็น่าจะเต็มแล้ว
  • ถ้าอยากเพิ่มพื้นที่จาก 264KB ที่เหลือ ก็ใช้ extended floppy format ได้
    ถ้าใช้ฟอร์แมตแบบ 21 sectors/track เหมือนดิสก์ติดตั้ง Windows 95 ก็ขยายได้ถึง 1680KB
    เครื่องมือฟอร์แมตมาตรฐานของ Linux ก็สร้าง layout แบบนี้ได้

  • คิดถึง เสียง ของฟลอปปีดิสก์กับความตื่นเต้นตอนโหลด

    • ทุกวันนี้อย่างน้อย coil whine ของโน้ตบุ๊กก็ยังพอทำให้นึกถึง “เสียงคอมพิวเตอร์กำลังทำงาน” ในยุคนั้นได้
      ถ้าปรับเสียงนี้ได้จากการตั้งค่าก็คงดี
  • อ่านประโยคที่ว่า “เขียนฟลอปปีเสร็จใน 5 นาที” แล้วหลุดขำ

    • มันให้ความรู้สึกแบบยุค CD-R/RW ชัดเจนมาก
  • สงสัยว่าจำเป็นต้องฟอร์แมตฟลอปปีจริงหรือเปล่า
    ถ้า syslinux หรือ lilo โหลด kernel ตรงจาก sector ของฟลอปปี ได้ ก็น่าจะง่ายกว่า
    ext2 อาจเล็กกว่า FAT ก็ได้

  • จำได้ว่าในปี 1997 เคยได้ Slackware มาเป็น ชุดฟลอปปี 12 แผ่น

    • ตอนนั้นตามร้านมีขายฟลอปปีที่ใส่ Slackware ไว้ในราคาแบบ ‘ถูกบ้าเลือด’
      แต่คุณภาพไม่ดีเลยทำให้ติดตั้งยาก
    • MuLinux ก็เป็น live distribution แบบฟลอปปี และขยายด้วยฟลอปปีเพิ่มสำหรับ X11 หรือ language pack ได้
    • เอาเข้าจริงน่าจะเกิน 30 แผ่น
      ตอนนั้นดาวน์โหลดจาก VAX ผ่าน FTP แล้วส่งต่อมาที่ DOS PC ด้วย Kermit เพื่อติดตั้ง แต่ต้องทำซ้ำเพราะมีดิสก์เสียกลางทาง
      ซีรีส์ X ใช้สำหรับ X11 ส่วนซีรีส์ A/B/C ใช้สำหรับระบบพื้นฐาน
    • ที่น่าจะรันได้ด้วยสองแผ่นคือ Puppy Linux มากกว่า
      เคยใช้บนระบบ 933MHz Coppermine และจำได้ว่าภายหลังเปลี่ยน HDD แล้วพยายาม build X11 แต่ไม่สำเร็จ