◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎
在开始学习Linux之前,有必要了解一些Linux的基础知识,比如Linux的前世今生、开源软件、Linux的特点及应用等。
Linux通常被称为类UNIX操作系统,这是因为Linux和UNIX有着很深的渊源。关于UNIX的发展,读者可以自行了解。
1986年,Andrew Tanenbaum教授为了教学需要,开发了一种小型UNIX操作系统,并称之为Minix。1991年,Linus Torvalds还是芬兰赫尔辛基大学的一名学生,由于对课堂上使用的Minix不太满意,他决定开发自己的Minix,该系统一开始只具有操作系统内核的大致雏形,必须在Minix的机器上编译以后才能运行。Linus Torvalds最初为自己的这套系统取名为freax,并将源代码放在了芬兰的一个FTP站点上供大家下载。该站点的FTP管理员认为这个系统是Linus Torvalds的Minix,因此建立了一个名称为Linux(Linus'UNIX)的目录来存放这个新系统的源代码。这就是Linux名称的由来。
Linus Torvalds先于1991年10月5日发布了Linux的第1个版本——Linux 0.0.2。在这个版本中已经可以运行Bash(the GNU Bourne Again Shell——一种用户与操作系统内核通信的软件)和GCC(GNU Compiler Collection)编译器。同时,Linus Torvalds在网络上公布了Linux的核心程序的源代码,并决定以GPL(大众所有版权,也叫GNU通用公共许可证)的方式来发行传播,也就是说,这个软件允许任何人以任何形式进行修改和传播。
随着网络的日益发展,越来越多技术高超的程序员加入了Linux的开发与完善。在这个过程中,无数富有个性和开创性的程序员在没有计较任何报酬的前提下,完全自发地加入开发行列。一旦某个程序员完成了其中的部分程序,他就会立即将这个程序发布出来,并免费将它发送给任何一个需要这个程序的人,而其他的一些程序员在研究后会立即发布并发回这个程序的修正和改良程序。这个过程周而复始,因此Linux的改进速度是非常快的,同时,它的稳定性也是非常高的。这种集市型的开发模式促进了Linux的繁荣。可以这么说,Linux是一个热情、自由、开放的网络产物。
目前,Linux已经成为一个功能完善的主流网络操作系统。作为服务器的操作系统,Linux包括配置和管理各种网络所需的所有工具,并且得到了华为、Oracle、IBM、惠普、戴尔等大型企业的支持。因此,越来越多的企业开始采用Linux作为服务器的操作系统,也有很多用户采用Linux作为桌面操作系统。
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这个名称,可以更好地概括它的内容。