GNU到底是什么,与Unix和Linux是什么关系

发布于:2025-07-24 ⋅ 阅读:(11) ⋅ 点赞:(0)

GNU(发音为 /ɡnuː/,类似“革奴”)是一个自由软件操作系统项目,由理查德·斯托曼(Richard Stallman)于1983年发起,目标是创建一个完全由自由软件组成的类Unix操作系统。它的名字是一个递归缩写,全称为 “GNU’s Not Unix”(GNU不是Unix),既致敬了Unix的设计理念,又强调了其独立性和自由性。


1. GNU的核心目标

  • 替代Unix:在保持与Unix兼容的同时,确保所有软件均可自由使用、修改和分发。
  • 自由软件理念:强调用户的“四大自由”:
    1. 自由0:按自己的意愿运行软件。
    2. 自由1:研究并修改软件源代码。
    3. 自由2:自由分发软件副本。
    4. 自由3:自由分发修改后的版本。
  • Copyleft许可:通过GNU通用公共许可证(GPL),要求衍生作品也必须保持自由(与“Copyright”相反)。

2. GNU的组成部分

虽然GNU最初目标是开发完整的操作系统,但实际完成的核心组件包括:

  • GNU工具链
    • GCC(GNU Compiler Collection):支持C/C++/Fortran等语言的编译器。
    • GNU Make:自动化构建工具。
    • GNU Binutils(如ldas):二进制工具集。
  • 核心工具
    • GNU Bash:默认的Unix shell。
    • GNU Coreutils(如lscpcat):基础命令行工具。
    • 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有助于认识开源文化的起源和软件自由的价值观。


网站公告

今日签到

点亮在社区的每一天
去签到