零基础趣学Linux
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 "GNU is Not UNIX"

GNU计划又译为革奴计划,“GNU”源于“GNU is Not UNIX”的递归缩写。这项计划的目标是创建一套完全自由的操作系统。

我们将时间线拉回到1979年,正如上文介绍的,在1979年AT&T公司收回了UNIX的版权,并且将UNIX打造成商品进行售卖,价格非常昂贵。而且当时不仅操作系统如此,由操作系统衍生出来的软件也是一样,在那个软件逐渐商业化的年代,越来越多的软件被打造成商品进行售卖。

麻省理工学院的一位职业黑客逐渐忍受不了操作系统和软件的商业化转变,他认为私藏源代码是一种违反人性的罪恶行为,分享源代码可以让原创作者和所有参与者都受益良多,他立志要把运行、复制、发布、研究和改进软件的权利重新赋予世界上的每一个人。

1983年,他在net.unix-wizards新闻组上公开发布了GNU计划,并附带了一份《GNU宣言》,这个计划的Logo是一头非洲牛羚,如图1-8所示。

图1-8 GNU计划的Logo

这个著名的黑客名为Richard Matthew Stallman,他被人们称为自由软件运动的精神领袖,同时也是自由软件基金会(Free Software Foundation)的创立者。

GNU计划的软件开发工作于1984年开始,称为GNU工程。GNU的许多软件程序是在GNU工程下发布的,我们称之为“GNU软件包”。

1985年,为了更好地实施GNU计划,自由软件基金会应运而生,该基金会的主要工作就是执行GNU计划,开发更多的自由软件,同时该基金会赋予软件使用者4项基本自由:

(1)不论目的为何,有运行软件的自由;

(2)有研究该软件如何工作和按需改写软件的自由,取得该软件源代码是达成此目的的前提;

(3)有重新发布拷贝的自由;

(4)有向公众发布软件改进版的自由。

1989年,Richard Matthew Stallman与自由软件基金会的律师共同起草了《GNU通用公共协议证书》,也就是GPL协议,用此协议来保证GNU计划中所有软件的自由性。

到了1990年,自由软件基金会已经初具规模,同时也出现了许多优秀的软件,仅Richard Matthew Stallman自己就开发了Emacs、GCC、GDB等著名软件,世界各地被激励的黑客们也编写了大量的自由软件。

说到这里,各位可能发现了一个问题:咦?怎么只有软件,不是说要创建一个完全自由的、完整的、类似UNIX的操作系统嘛,只有软件而没有内核,能叫完整的操作系统?

其实Richard Matthew Stallman并没有忘记这个初衷,他们也开发了一款叫Hurd的内核,但是正在开发的这个Hurd内核不论是工程进度还是所具备的功能都没有达到预期效果,当时自由软件基金会汇集了很多的软件,但是迟迟没能开发出满意的内核,没有内核就组不成一套完整的操作系统,这种尴尬的状态一直持续到1991年,这一年发生的事情相信大家都清楚,那就是Linux内核在网上公开发布。

在Linux内核公开发布时,GNU工程已经几乎完成了除系统内核之外的各种必备软件的开发,到了这个时候,系统开发和软件开发两条时间线就已经开始重合了。

1992年,在Linus Benedict Torvalds和世界各地的程序员、黑客们的共同努力下,Linux内核成功与自由软件基金会下数以百计的软件工具相结合,完全自由的操作系统正式诞生了!

由于Linux内核使用了许多GNU软件,GNU计划的开创者Richard Matthew Stallman提议将Linux操作系统更名为“GNU/Linux”,但是绝大多数人还是习惯称为“Linux”。

在整个GNU计划的发展史中,有两个协议(GPL、LGPL)非常重要,对它们必须了解清楚。

“GPL”是GNU General Public License(GNU通用公共许可证)的缩写。GPL协议的特点是具有“传染性”,该协议规定,只要软件中包含了遵循GPL协议的产品或代码,该软件就必须也遵循GPL许可协议。打个比方就是,我若是遵循了GPL许可协议,我未来的子子孙孙也必须遵循,因此这个协议并不适用于商用软件。GPL协议的图标如图1-9所示。

GPL协议的出发点是源代码的开源和免费引用以及修改后衍生代码的开源和免费引用,不允许修改后将衍生的源代码作为闭源的商业软件进行发布和销售。GPL开源协议的特点见表1-1。

图1-9 GPL协议的图标

表1-1 GPL开源协议的特点

“LGPL”是GNU Lesser General Public License(GNU宽通用公共许可证)的缩写。LGPL协议是GPL协议的变种,也是GNU为了得到更多商用软件开发商的支持而提出的。与GPL的最大不同就是,LGPL协议授权的自由软件可以私有化,而不必公布全部源代码。LGPL协议的图标如图1-10所示。

图1-10 LGPL协议的图标

到现在为止,开源精神已经蔓延至全球,国内国外出现了许许多多的开源社区,比较著名的有GitHub、Gitee、开源中国社区、MySQL社区等。随着各种开源社区的出现,开源软件也借着这股东风发展起来了,著名的开源软件有Apache、火狐浏览器、OpenOffice、Nginx、MariaDB等,其中前三者的Logo如图1-11所示。

图1-11 部分开源软件的Logo

至此,GNU计划的内容就讲完了,整条时间线已经与1.2节重合起来,通过这条时间线可以基本掌握完整的Linux发展史。