เวลาเราเรียก Linux — เรามักนึกถึงระบบปฏิบัติการที่รันเซิร์ฟเวอร์ 99% ของโลก รัน Android รัน Raspberry Pi แต่สิ่งที่หลายคนไม่รู้คือ Linux ไม่ใช่ "ระบบปฏิบัติการที่สมบูรณ์" ตั้งแต่แรก มันเป็นแค่ kernel — หัวใจที่คอยคุยกับฮาร์ดแวร์
ส่วน shell, compiler, text editor, core utilities — ทั้งหมดนั่นมาจาก โครงการ GNU
เรื่องราวของ GNU และ Linux มันเริ่มจากการที่เครื่องพิมพ์เครื่องหนึ่ง... พัง
📌 ออกเสียงอย่างไร: GNU อ่านว่า "กะ-นู" (hard g, พยางค์เดียว) — GNU's Not Unix
เรื่องเล่าจากเครื่องพิมพ์
ปี 1980 Richard Stallman ทำงานที่ MIT AI Lab เครื่องพิมพ์ Xerox ในห้องแล็บ jam กระดาษบ่อยมาก เขาเลยอยากแก้ซอฟต์แวร์ให้มันแจ้งเตือนตอน jam แต่ Xerox ไม่ยอมให้ source code
สำหรับคนยุค 2026 นี่คือเรื่องปกติ — บริษัทไม่ให้ source code ก็หาอันอื่นสิ
แต่สำหรับ Stallman และวัฒนธรรม hacker ใน MIT AI Lab ยุค 1970s — นี่คือการทรยศ
เพื่อนบ้าน hack รั้วบ้านคุณ และคุณไม่มีสิทธิ์แม้แต่จะรู้ว่ารั้วมันสร้างยังไง
Stallman เขียนไว้ในภายหลังว่า:
"ผมบอกตัวเองไม่ได้ว่า non-disclosure agreement มันไม่มีพิษมีภัย"
กำเนิด GNU
27 กันยายน 1983 — Stallman โพสต์ประกาศโครงการ GNU บน Usenet ภายใต้หัวข้อ "new Unix implementation"
"ผมเชื่อว่ากฎทอง (golden rule) กำหนดว่า ถ้าผมชอบโปรแกรมใด ผมต้องแบ่งปันมันกับคนอื่นที่ชอบมันด้วย ผมไม่สามารถเซ็นสัญญาไม่เปิดเผยข้อมูล (NDA) หรือสัญญาอนุญาตซอฟต์แวร์แบบปิด ด้วยจิตสำนึกที่ดีได้"
— Richard Stallman, GNU Initial Announcement, 27 ก.ย. 1983
เป้าหมาย: สร้างระบบปฏิบัติการแบบ Unix ที่ ทุกคนมีอิสระ ในการใช้ แก้ไข และแชร์
ฟรี ไม่ได้แปลว่า gratis (ของฟรี)
ฟรี แปลว่า libre (เสรีภาพ)
— Free Software Foundation
Stallman เริ่มเขียนทีละ component:
- GNU Emacs — text editor ในตำนาน (1985)
- GCC — GNU C Compiler (1987)
- glibc — C library (1988)
- Bash — shell ที่เราใช้กันมาจนถึงทุกวันนี้ (1989)
- Coreutils, binutils, gdb... ไล่เรียงไปเรื่อย ๆ
ภายในปี 1990 — เกือบทั้งระบบปฏิบัติการพร้อมแล้ว ยกเว้น kernel
Hurd — kernel ที่ไม่มีวันเสร็จ
kernel ที่ GNU เลือกใช้คือ GNU Hurd — ออกแบบด้วยสถาปัตยกรรม microkernel บน Mach (CMU) ที่ทะเยอทะยานเกินยุค
ปัญหาคือ:
- รอ Mach เป็น free software — CMU ล่าช้าในการปล่อย source code เพราะฝ่ายกฎหมาย
- Multithreaded servers สื่อสารด้วย IPC — "very hard to debug" (คำพูดของ Stallman เอง)
- Perfect is the enemy of good — ดีไซน์ซ้ำไปซ้ำมาเพื่อความ "สมบูรณ์แบบ" ทางทฤษฎี
- Hurd 0.1 ออกปี 1996 — 6 ปีหลังจากเริ่มพัฒนา
- Hurd 0.9 ออกธันวาคม 2016 — ล่าสุด และไม่เคยถึง 1.0
Stallman พูดตรง ๆ:
"GNU Hurd ไม่เหมาะสำหรับ production use และเราไม่รู้ว่ามันจะเหมาะเมื่อไหร่"
เด็กฟินแลนด์กับ kernel ของเขา
25 สิงหาคม 1991 — Linus Torvalds นักศึกษาปี 2 มหาวิทยาลัย Helsinki (อายุ 21 ปี) โพสต์บน Usenet group comp.os.minix:
Hello everybody out there using minix -
I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones.
I've currently ported bash(1.08) and gcc(1.40), and things seem to work.
สังเกตว่า Linus เองก็พอร์ต bash และ gcc — GNU tools — มาตั้งแต่วันแรก
17 กันยายน 1991 — Linux 0.01 ออกสู่สาธารณะ (คนที่ตั้งชื่อว่า "Linux" คือ Ari Lemmke ผู้ดูแล ftp.funet.fi — Linus อยากให้ชื่อ "Freax" แต่ Lemmke ไม่ชอบ)
Linus เขียนใน release notes ของ 0.01:
"Sadly, a kernel by itself gets you nowhere… Most of the tools used with linux are GNU software and are under the GNU copyleft."
"น่าเศร้าที่ kernel อย่างเดียวมันไปไหนไม่ได้... เครื่องมือส่วนใหญ่ที่ใช้กับ linux คือซอฟต์แวร์ GNU"
ทำไม Linux ถึงสำเร็จ
ทั้งที่ Hurd มีคนเก่งกว่า มี philosophy ล้ำกว่า ทำไม Linux ถึงชนะ?
| GNU Hurd | Linux | |
|---|---|---|
| สถาปัตยกรรม | Microkernel | Monolithic |
| ออกแบบโดย | นักทฤษฎี OS | "ค่าเทอมถูกกว่า Sun" |
| ปรัชญา | Perfect from day 1 | Release early, release often |
| ทีม | อาสาสมัคร | ชุมชน (Git แจกตั้งแต่ 2005) |
"Release early, release often" — หลักการที่ Linus สอนโลก open source โดยไม่ตั้งใจ
Linux 0.01 (ก.ย. 1991) — ~10,000 บรรทัด
Linux 0.12 (ก.พ. 1992) — เปลี่ยนไปใช้ GPL — นี่คือจุดเปลี่ยนสำคัญ
Linux 1.0 (มี.ค. 1994) — 176,250 บรรทัด
Linux 6.x (2024) — เกิน 30 ล้านบรรทัด
GNU + Linux = ?
เมื่อ Linux ถือกำเนิด มันขาด userspace tools — shell, compiler, basic utilities
GNU มีของทุกอย่าง — GCC compiler, Bash shell, coreutils
Linux + GNU tools = ระบบปฏิบัติการที่สมบูรณ์ ครั้งแรกที่โลกมี free Unix ทั้งระบบ
"It is due to Linux that we can actually run a version of the GNU system today."
— Richard Stallman
MCC Interim Linux (กุมภาพันธ์ 1992) — ผลงานของ Owen Le Blanc จาก Manchester Computing Centre — คือ distro แรกที่รวม Linux kernel กับ GNU userspace เข้าด้วยกัน ตามด้วย TAMU Linux และ SLS (Softlanding Linux System) ในสิงหาคม 1992
SLS เป็น distro แรกที่คนใช้กันเยอะ... แต่ package management ของมันพังไม่เป็นท่า จนทำให้ Ian Murdock วัย 20 ปี ประกาศบน Usenet ในเดือนสิงหาคม 1993 ว่าจะสร้าง distro ใหม่ที่ "maintained openly, in the spirit of GNU" — distro นั้นคือ Debian
ตามมาด้วย Slackware (กรกฎาคม 1993) ที่พัฒนาโดย Patrick Volkerding — เรียบง่าย ไม่มี dependency resolution แต่ stable จนกลายเป็น distro ที่เก่าแก่ที่สุดที่ยัง maintain อยู่จนถึงทุกวันนี้
เมื่อ Debian เปลี่ยนชื่อเป็น "Debian GNU/Linux" ในต้นปี 1994 ตามคำขอของ Stallman — การถกเถียงเรื่องชื่อก็เริ่มต้นขึ้น
GNU/Linux — การถกเถียงที่ยังไม่จบ
Stallman ยืนกราน: เรียกมันว่า "GNU/Linux" เพราะ:
- GNU project เริ่มตั้งแต่ 1983 — 7-8 ปีก่อน Linux
- Stallman อ้างอิงตัวเลขจากงานวิจัยภายในของ Red Hat (2001) และ gNewSense (2008) ว่า ใน distro หนึ่ง ๆ: โค้ด GNU ≈ 15-28%, โค้ด Linux kernel ≈ 1.5-3% (ตัวเลขนี้เป็นที่ถกเถียงในชุมชน — วัดยังไงให้นับ "หน่วย" ของโค้ดอย่างเที่ยงตรง)
- ถ้าไม่มี GNU — Linus ต้องเขียน compiler, shell, utilities เองทั้งหมด
Linus ตอบกลับ:
"It doesn't really matter what people call Linux, as long as credit is given where credit is due."
— comp.os.linux.misc, 1996
และในหนังสารคดี Revolution OS (2001):
"Calling Linux in general 'GNU Linux' I think is just ridiculous."
แต่ Linus ก็ไม่ได้ดูถูก GNU — ในหนังสืออัตชีวประวัติ Just for Fun (2001) เขาเขียนว่า:
"Richard Stallman is the God of Free Software."
"Stallman, who deserves a monument in his honor for giving birth to the GPL…"
มรดกที่เรายังใช้อยู่ทุกวันนี้
ลองเปิด terminal แล้วพิมพ์:
$ ls --version | head -1
ls (GNU coreutils) 9.x
$ gcc --version | head -1
gcc (GCC) 14.x
$ bash --version | head -1
GNU bash, version 5.x
GNU คือวิญญาณของ Linux — kernel คือหัวใจ แต่ shell, compiler, utilities ที่เราใช้ทุกวันนี้ คือ GNU
ถ้าไม่มีโครงการ GNU: Linus ต้องเขียนทุกอย่างเองตั้งแต่ compiler, linker, shell... และ kernel "งานอดิเรก" ของเขาคงไม่รอด
และถ้าไม่มี Linux: GNU มีเกือบทุกอย่างยกเว้น kernel ที่รันได้จริง — Hurd ก็ยังเป็น prototype มาจนถึงทุกวันนี้
สองโครงการ — หนึ่งปรัชญา หนึ่ง pragmatic — มาบรรจบกันในเวลาที่เหมาะสมพอดี
สำหรับคนที่อยากอ่านเพิ่ม
- The GNU Manifesto (1985) — Stallman ต้นฉบับ
- The GNU Project — essay ของ Stallman
- Linux 0.01 Release Notes — Torvalds, 1991
- Linux 0.12 Release Notes (เปลี่ยนไปใช้ GPL) — Torvalds, ก.พ. 1992
- Linus โพสต์แรกบน Usenet (25 ส.ค. 1991) — เก็บใน Wayback Machine
- Just for Fun — Linus Torvalds autobiography (2001)
- Revolution OS — หนังสารคดี open source
📅 สิงหาคม 2026 | ⚠️ ตรวจสอบข้อมูล ณ วันที่เขียน
Top comments (0)