GNU
或 GNU is Not Unix
是由Richard Stallman发起的一个项目,旨在创建自由软件,以尊重用户的自由。GNU项目为计算提供了不同的自由软件工具。GNU的主要目标是创建一个免费的操作系统和相关的工具,但是目前,Linux内核用于操作系统,而其他大多数工具都是由GNU项目创建的。

GNU项目历史
GNU项目是由RichardStallman在麻省理工学院人工智能实验室工作时发起的。GNU项目于1983年9月27日在互联网上公开宣布。软件开发始于1984年1月5日,RichardStallman为了专注GNU项目而从麻省理工学院辞职。
1985年3月出版的GNU宣言解释了GNU项目哲学,它为计算提供了一个非常不同的方面。根据GNU宣言,软件的源代码应该可以自由学习、共享、修改和发布。
自由软件基金会成立于1985年,最初是为了筹集资金帮助和发展GNU项目。
1991年Linux内核项目启动,为GNU项目提供了尚未完成的操作系统内核。GNU项目提供了很多不同的工具来提升Linux内核项目。
自由软件
由于GNU项目的目标是创建一个具有完全自由软件的生态系统,因此软件要想自由,就必须满足以下属性。下面是自由软件的4个基本原则。
- 为任何目的随意运行程序的自由(自由0)。
- 研究程序如何工作的自由,并对其进行更改,使其按您的意愿进行计算(自由1)。访问源代码是实现这一点的先决条件。
- 重新分发副本以便帮助他人的自由(自由2)。
- 向他人分发修改版本副本的自由(自由3)。通过这样做,你可以给整个社区一个从你的改变中获益的机会。访问源代码是实现这一点的先决条件。
自由软件基金会
Free Software Foundation
或 FSF
与GNU项目有关,FSF为GNU项目提供基础设施和资金。FSF作为GNU项目的基础,按照GNU宣言进行工作。FSF还发起了一场关于自由软件的宣传活动,并与计算机用户权利受到的威胁作斗争。FSF还运营着一个许可与合规实验室,为自由许可的软件辩护。
GNU-Linux和GNU操作系统
关于GNU项目的另一个热门话题是gnulinux和GNU操作系统。GNU操作系统命名为 The Hurd
1991年,Linux内核开发作为一个宠物项目由Linux Torvalds启动。Linux内核的开发模式和授权方式使得Linux内核开发成为主流。但赫德项目并没有像预期的那样发展,即使在30年后的今天,它仍在积极开发中,但没有稳定的版本。
![图片[2]-GNU项目是什么?-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/05/poftut_image-63.png)
Linux内核的版本号是5.X,gnuhurd当前的版本号是0.9。因此,开源世界使用Linux内核并称之为Linux。但是richardstallman的想法有点不同,他把Linux项目表示为GNU/Linux,其中GCC、g++、gdb、make、diff、bash等不同的GNU项目工具用于开发和使用Linux操作系统和相关的发行版,如Debian、Ubuntu、CentOS、RHEL、SUSE、Fedora、Kali等。
流行的GNU项目和工具
即使GNU项目未能提供完整的操作系统或内核,它也为开发、调试、系统管理和命令提供了许多有用的工具。这里我们将列出一些流行的GNU工具。
GCC
或 GNU Compiler Collection
是为源代码编译而创建的一组工具。GCC为编译器提供了不同的编程语言,如C++、C++、java等,但是最完整和最流行的编程语言是C和C++。如今,GCC被广泛应用于编译、二进制、库和其他相关源代码到不同的格式和平台,如X86、X86u64、ARM、MIPS、Alpha等。
Gdb
是一个软件或二进制调试,以发现和检查软件错误它是一个配套工具的通用条款。
make
是另一种用于自动编译软件的流行工具。Make脚本用于自动化编译操作,并提供启动和运行编译操作的源代码。
bash
是一种非常流行的shell,它为系统管理员和用户提供命令行界面来访问所使用的操作系统。大多数Linux发行版都使用bash作为默认shell。