คนส่วนใหญ่ แม้แต่คนที่เล่น Linux อยู่ ไม่เข้าใจความแตกต่างระหว่าง Linux, GNU/Linux และ GNU toolchain จริงๆ แต่มันสำคัญเมื่อคุณคิดเกี่ยวกับ software dependencies บางประเภท
Linux และ GNU
Linux มาจากโซ่การพัฒนาที่เริ่มจาก Unix ดังนั้น Linux ส่วนใหญ่จึงถูกออกแบบคล้าย และอาจมีโค้ด Unix อยู่บ้าง
GNU แต่ผู้สร้าง Richard Stallman ตั้งใจให้เป็นระบบปฏิบัติการที่เสรีและอิสระสมบูรณ์ ใช้โค้ดเบสหรือมาตรฐานใบอนุญาตเดียวกับ Unix หรือ Linux ไม่ได้ สองโปรเจกต์นี้เป็นของต่างหาก เกือบจะ

GNU/Linux
ความท้าทายกับโปรเจกต์ GNU คือ kernel ของมัน — ซอฟต์แวร์แกนกลางที่โต้ตอบกับฮาร์ดแวร์และประสานงานแอปพลิเคชันอื่นๆ — ยังไม่พร้อมสำหรับ production GNU Hurd kernel ที่ปล่อยในสถานะ pre-production ในปี 2015 ยังไม่พร้อมสำหรับ prime time
วิธีแก้? Linux Linux kernel ในรูปของ Linux-Libre กลายเป็นส่วนหนึ่งของโปรเจกต์ GNU ดังนั้น GNU ที่รัน Linux kernel หรือ GNU/Linux
GNU Toolchain
GNU distribution ทั่วไปจะรัน Linux kernel แม้ GNU Hurd จะยังพร้อมสำหรับ non-mission-critical testing อย่างไรก็ตาม สิ่งที่แยก GNU distribution จาก Linux distribution อื่นๆ คือการรวม GNU toolchain ชุดของโปรแกรมหลายร้อยโปรแกรมที่เป็นฟรีและโอเพนซอร์ส และสนับสนุนการพัฒนาซอฟต์แวร์ฟรีใหม่ๆ
องค์ประกอบทั่วไปของ GNU toolchain รวมถึง GNU Make, GNU C Library, GNU Debugger, และ GNU build system
GNU Packages อื่นๆ
แอปพลิเคชัน รวมถึง graphical apps ที่ตั้งใจสำหรับ end-user interaction อาจเป็นส่วนหนึ่งของ GNU umbrella หากปฏิบัติตามหลักการปรัชญาที่ Stallman กำหนด แอปพลิเคชัน GNU-family ทั่วไป ได้แก่:
- TexInfo: ภาษาและโปรแกรมสำหรับแสดงเอกสารทางเทคนิค
- GNU Emacs: ระบบประมวลผลเอกสาร
- GNOME: Desktop manager ที่ให้ core look-and-feel สำหรับ graphical user interface
- GNU Octave: สภาพแวดล้อมสถิติโมเดลตาม Matlab
- GNU Health: บันทึกสุขภาพอิเล็กทรอนิกส์สำหรับแพทย์และโรงพยาบาล
- GnuCash: ระบบการเงินส่วนตัว