GNU
1.1、GNU简介

GNUGNU is Not UNIX的递归缩写。

GNU的发音为Guh-NOO(革奴),以避免与new这个单词混淆,因为GNU在英文中的发音与new相同。

GNU在英文中的意思为非洲牛羚,所以GNU的图标就是非洲羚羊。

GNU官网:http://www.gnu.org

1.2、GNU的发起人

GNU的发起人是Richard Stallman,简称RSM

1.3、GNU Project

由于受到UNIX操作系统版权的影响,Richard Stallman想要创建一套完全自由的操作系统。

1983年9月27日,Richard Stallman在net.unix-wizards新闻组上公布了一条消息, 他发起了GNU Project,并附带一份《GNU宣言》的文章,解释为何发起该工程,其中一个理由就是要“重现当年软件界合作互助的团结精神”。

GNU Project要创建一套完全自由的操作系统,这个操作系统要实现UNIX系统的接口标准。

1985年,Richard Stallman创立了FSF来为GNU Project提供技术、法律以及资金支持。 尽管GNU Project大部分时候是由个人自愿无偿贡献, 但FSF有时还是会聘请程序员帮助编写。

为保证GNU Project开发的软件可以自由地“使用、复制、修改和发布”, 所有GNU Project开发的软件都保护在一个协议条款——GPL下,即“反版权”(或称Copyleft)概念。

GNU Project开始逐渐获得成功时,一些商业公司开始介入开发和技术支持。 当中最著名的就是之后被Red Hat兼并的Cygnus Solutions

GNU Project采用了部分当时已经可自由使用的软件,例如TeX排版系统和X Window视窗系统等。

GNU Project也开发了大批其他的自由软件。 到了1990年,GNU Project已经开发出的软件包括了一个功能强大的文字编辑器Emacs、 一套编程语言编译器GCC、以及大部分UNIX系统的程序库和工具。 唯一依然没有完成的重要组件就是操作系统的内核Hurd

1.3、GNU操作系统

GNU操作系统是由一系列应用程序、系统库和开发工具构成的软件集合,并加上用于资源分配和硬件管理的内核,如下:

1.4、GNU Software

GNU Project开发了大量的开源软件, 现在我们广泛使用的GNU/Linux系统, 实际上,里面很多的软件,都需要依赖GNU Project开发的软件!

不仅GNU/Linux系统,WindowsmacOS等系统也会大量使用GNU Project开发的这些开源的软件!

1.4.1、GNU Software以什么方式提供

GNU Project官方只提供软件源文件的压缩包,不提供编译好的二进制包。 因为GNU Project提供的这些软件都是完全自由使用的,你可以根据自己的喜好进行修改。

1.4.2、GNU Software如何安装

如果通过从GNU Project官方下载的源码压缩包进行安装的话,就需要三步曲:

  • 通过./configure命令进行配置
  • 通过GNU make命令按照Makefile中的流程,调用GCC进行编译
  • 通过[sudo ]make install命令进行安装,这里是否需要sudo,要看你要安装在哪儿, 如果安装位置需要root权限的话,就需要sudo,否则就不需要。

这三个步骤前面的步骤是后面步骤的前提,每一步出错了,后面的步骤就不能执行,所以,通常把这三步连成下面的方式写:

./configure && make && sudo make install

另外,一些其他组织或者个人已经事先编译好了特定平台的二进制包,我们也可以通过一些包管理工具进行安装。

1.4.3、常用的GNU Software
1.4.4、GNU ToolChain

你可能经常会听到、看到GNU ToolChain这个名词,在软件工程中,工具链(ToolChain)是一系列工具软件的集合,并且 这些工具软件一般是一个接一个地运用,一个工具软件的输出是另外一个工具软件的输入,就这样串联起来,像一条链。