GNU(GNU’s Not Unix)是一个自由操作系统项目,名字是一个递归的 GNU’s Not Unix 缩写,其目标是创建一个类Unix的操作系统。
该项目由Richard Stallman于1983年发起,并由自由软件基金会(Free Software Foundation)支持。
GNU的目标是提供一个完全自由、开放源代码的操作系统,用户可以自由地运行、学习、修改和分享。
GNU工具: GNU项目开发了一系列标准的系统工具,如文本编辑器(Emacs)、编译器(GCC)、调试器(GDB)等。这些工具在许多Unix-like系统上广泛使用。
GNU库: GNU C库(glibc)是GNU项目中的一个重要组件,提供了在GNU系统上运行程序所需的标准C库功能。
GNU核心工具: GNU核心工具集合,如bash(GNU Bourne Again Shell)等,为用户提供了与系统交互的界面。
Hurd操作系统: GNU的原始计划是开发一个称为Hurd的内核,作为GNU操作系统的内核。然而,Hurd的开发进展较慢,目前大多数GNU系统使用Linux内核。
GPL许可证: GNU项目使用了GNU通用公共许可证(GPL),这是一种自由软件许可证,它确保用户有权查看、修改和重新分发软件的源代码。
尽管GNU项目的内核计划(Hurd)未能在大规模上成功,但GNU工具和库已经成为许多自由和开源软件项目的基础。
此外,许多Linux发行版,如Ubuntu、Debian等,将Linux内核与GNU工具和库相结合,形成了一个完整的自由操作系统。
因此,我们通常使用术语“GNU/Linux”来描述这样的系统。
Unix 系统被发明之后,大家用的很爽。但是后来开始收费和商业闭源了。
一个叫 RMS 的大叔觉得很不爽,于是发起 GNU 计划,模仿 Unix 的界面和使用方式,从头做一个开源的版本。
然后他自己做了编辑器 Emacs 和编译器 GCC。
GNU 是一个计划或者叫运动。在这个旗帜下成立了 FSF,起草了 GPL 等。
接下来大家纷纷在 GNU 计划下做了很多的工作和项目,基本实现了当初的计划。包括核心的 gcc 和 glibc。
但是 GNU 系统缺少操作系统内核。原定的内核叫 HURD,一直完不成。同时 BSD(一种 UNIX 发行版)陷入版权纠纷,x86 平台开发暂停。
然后一个叫 Linus 的同学为了在 PC 上运行 Unix,在 Minix 的启发下,开发了 Linux。
注意,Linux 只是一个系统内核,系统启动之后使用的仍然是 gcc 和 bash 等软件。
Linus 在发布 Linux 的时候选择了 GPL,因此符合 GNU 的宗旨。
最后,大家突然发现,这玩意不正好是 GNU 计划缺的么。于是合在一起打包发布叫 GNU / Linux。
然后大家念着念着省掉了前面部分,变成了 Linux 系统。