1.GNU和GPL
GNU是“GNU is Not UNIX”的递归缩写,是1985年由“自由软件运动”的精神领袖理查德·马修·斯托曼(Richard Matthew Stallman)提出的,目标是创造一套完全免费、开源,并且兼容UNIX的操作系统GNU。斯托曼是自由软件基金会(Free Software Foundation)的创立者,创建基金会的目标是为了完成GNU计划。
1989年,斯托曼与一些律师起草了被广泛使用的GNU通用公共许可证(GNU General Public License,GNU GPL),创造性地提出了“反版权”(copyleft,与版权的英文copyright相反)的概念。
GPL最重要的原则就是所有符合GPL协议的软件都可以被复制,可以被修改,可以被出售,但是源代码中所有的改进和修改必须向每个用户公开,所有用户都可以获得修改后的源代码。copyleft可以保证自由软件传播的延续性,也可以防止一些厂商利用自由软件,使其专有化。斯托曼认为,软件从业者不应依靠copyright(版权),迫使客户花费巨额资金购买软件,而应通过提供服务(如技术支持、训练)来获取应得的报酬。简而言之,自由软件时代的基本准则就是“资源免费,服务收费”。GNU的主要软件有GNU Emacs文字编辑器、GCC编译器、GDB调试器等。
2.GNU/Linux
GNU工程激励了许多年轻的“黑客”,他们编写了大量自由软件。斯托曼也受此鼓舞写出了Linux内核。Linux加入GNU计划,并遵循GPL协议是一件在Linux的发展历程上具有里程碑意义的事情。
在斯托曼的计划里,GNU操作系统的内核(Hurd),是自由软件基金会发展的重点,但是其发展一直尚未成熟。Linux的出现使得所有GNU软件可以在硬件上运行起来。Linux最初只是一个内核,但由于加入了GNU计划,在GPL协议下,允许商家对自由软件进一步开发,并且允许在Linux上开发商业软件。Linux的发展又获得了一次飞跃,出现了很多Linux发行版,如Slackware、Red Hat、SuSE、Ubuntu等10多种,而且还在增加。同时,一些公司开始在Linux上开发商业软件,或者把其他UNIX平台的软件移植到Linux中。另外,自由软件精神的引领,以及IBM、Intel、Oracle、Sysbase、Novell等ICT行业领袖宣布对Linux的支持或兼容,使Linux得到迅速普及,进入商业应用领域。
GNU和Linux很难厘清谁成就了谁,甚至斯托曼及许多人都认为整个操作系统应该称为GNU/Linux。整个操作系统包括GNU计划软件与Linux核心,使用GNU/Linux这个名称,可以更好地概括它的内容。