1、什么是Linux?

也许很多人会不屑的说,Linux不就是个操作系统么。错!Linux不是一个操作系统,严格来讲,Linux只是一个操作系统中的内核。内核是什么?内核建立了计算机软件与硬件之间通讯的平台,内核提供系统服务,比如文件管理、虚拟内存、设备I/O等。

既然Linux只是一个内核,那么我们通常所说的Linux操作系统又是什么?我们通常所说的Linux,指 GNU/Linux ,即采用Linux内核的GNU操作系统。

2、什么是GNU?

GNU是一个技术组织,发起人是 Richard Stallman。这个组织中黑客云集,而且多是掌握核心技术的真正高手,他们的作品多是编译器、词法/语法分析器、底层函数库等大作。更重要的不是他们的技术,而是他们的哲学!他们的哲学就是:软件源码看成人类共同拥有的知识财富,应该公开地自由交换、修改。GNU建立了自由软件基金会,同时发布了一份举足轻重的法律文件---GNU 通用公共授权书(GNU GPL, GNU General Public License)。

3、什么是GPL?

计算机软件作为人类的知识财富,为人类社会的发展起到了巨大的作用,但长期以来软件源码作为个人或公司的私有财产受到严格的保密,很难做到像文学艺术作品一样地进行公开的交流,很大程度上造成软件的低水平,重复劳动严重,在一定意义上制约了软件的发展。

直到 1985 年由 MIT 教授理查德·斯托曼(Richard Stallman)提出应将软件源码看成人类共同拥有的知识财富,应该公开地自由交换、修改,提出了 GNU 计划,并建立了自由软件基金会;同时,发布了一份举足轻重的法律文件---GNU 通用公共授权书(GNU GPL, GNU General Public License)。

该授权书主要有以下几点:
自由软件(free software)指的是源码自由,不是价格;
自由软件必须附带程序源代码,但可收取费用;
任何人都可以自由分发自由软件并收取费用,但必须列明原创者姓名;
任何人都可以修改源代码,但必须列明修改人名字,以保护原创者名誉;
任何人都可以采用源代码中的某一段,但其开发之软件必须也为自由软件;
任何自由软件的衍生品也必须是自由软件;
自由软件没有担保,以保护分发者。

GPL 协议的核心就是要对源码进行公开,并且允许任何人修改源码,但是只要使用了 GPL 协议的软件源码,其衍生软件也必须公开源码,准许其他人阅读和修改源码,即 GPL 协议具有继承性。

另一个问题就是 GPL 软件并非就是免费软件,这里所说的自由软件是指对软件源码的自由获得与自由使用、修改,软件开发者不但可以通过服务来收费,而且还可以通过出售 GPL 软件来获利。

至此,在 GPL 下人们就可以自由交流、修改软件源码了,这一协议极大地推动了整个计算机软件行业的发展,并带来了以下明显的益处:

(1)对于广大计算机软件的学习者来说,可以直接从源码中吸取营养,缩短学习的时间,提高学习的效率,少走弯路,再也不必花大量时间去看那些不知正确与否的“未解之谜”了,学习在某种程度上变成了一件轻松愉快的事情了。

(2)可以集中大家的智慧发展软件,避免重复劳动。一个软件只有公开源码,通过很多人的研究才有可能发现其中深藏的错误,大家才能公开探讨相关的问题,并进行改进,在大家的共同“挑剔与监督”下才有可能编写出尽善尽美的软件来。

4、什么是GUN/Linux?

GNU本来向开发自己的操作系统——HURD,但是因为种种原因进度非常慢。这时候,一个荷兰黑客制作出了Linux,并宣布:遵循GPL版权可协议。Linux的发展非常快,它本身遵循GPL版权可协议,同时又把GNU的很多软件集成了进去(注意,Linux仅仅是一个内核,不包含外围的应用程序),所以现在我们使用的Linux系统,应该完整地称之为GNU/Linux才对。