GNU(發音為 /ɡnu?/,類似“革奴”)是一個自由軟件操作系統項目,由理查德·斯托曼(Richard Stallman)于1983年發起,目標是創建一個完全由自由軟件組成的類Unix操作系統。它的名字是一個遞歸縮寫,全稱為 “GNU’s Not Unix”(GNU不是Unix),既致敬了Unix的設計理念,又強調了其獨立性和自由性。
1. GNU的核心目標
- 替代Unix:在保持與Unix兼容的同時,確保所有軟件均可自由使用、修改和分發。
- 自由軟件理念:強調用戶的“四大自由”:
- 自由0:按自己的意愿運行軟件。
- 自由1:研究并修改軟件源代碼。
- 自由2:自由分發軟件副本。
- 自由3:自由分發修改后的版本。
- Copyleft許可:通過GNU通用公共許可證(GPL),要求衍生作品也必須保持自由(與“Copyright”相反)。
2. GNU的組成部分
雖然GNU最初目標是開發完整的操作系統,但實際完成的核心組件包括:
- GNU工具鏈:
- GCC(GNU Compiler Collection):支持C/C++/Fortran等語言的編譯器。
- GNU Make:自動化構建工具。
- GNU Binutils(如
ld
、as
):二進制工具集。
- 核心工具:
- GNU Bash:默認的Unix shell。
- GNU Coreutils(如
ls
、cp
、cat
):基礎命令行工具。 - GNU Libc(glibc):C標準庫的實現。
- 其他重要軟件:
- GNU Emacs:可擴展的文本編輯器。
- GDB(GNU Debugger):調試工具。
- GNU GRUB:多系統引導程序。
3. GNU與Linux的關系
- GNU缺少內核:GNU項目開發了自己的內核Hurd,但因技術復雜進展緩慢。
- Linux的補位:1991年,林納斯·托瓦茲(Linus Torvalds)發布了Linux內核,與GNU工具鏈結合后形成了可用的完整操作系統。
- 爭議與正名:斯托曼主張將這類系統稱為**“GNU/Linux”**(如Debian GNU/Linux),以強調GNU的貢獻,但實踐中多簡稱為“Linux”。
4. GNU的現狀
- GNU/Linux系統:主流的Linux發行版(如Ubuntu、Fedora)均包含大量GNU組件。
- Hurd內核:仍在開發中,但僅作為實驗性項目使用。
- 自由軟件運動:GNU項目是自由軟件基金會(FSF)的核心,持續推動開源和反壟斷(如反對DRM技術)。
5. 常見誤解
- GNU ≠ Linux:Linux是內核,GNU是工具鏈和理念。
- GPL ≠ 所有開源協議:GPL具有“傳染性”,而MIT/BSD等許可更寬松。
- 自由軟件 ≠ 免費軟件:自由軟件強調權利,而非價格(如Red Hat Enterprise Linux是商業軟件,但遵循GPL)。
總結
GNU是自由軟件運動的基石,其工具鏈和理念深刻影響了現代計算生態。雖然完整的GNU操作系統未實現,但“GNU/Linux”已成為服務器、嵌入式設備和開發者環境的主流選擇。理解GNU有助于認識開源文化的起源和軟件自由的價值觀。