日期:2014-05-16  浏览次数:20730 次

Linux网管日记(9):Linux的前世今生

1.Linux的前世

地球人都知道,Linus Torvalds在1991年编写了Linux的核心原型。Torvalds为什么可以写出Linux操作系统?为什么他要选择386的计算机来开发?为 什么Linux的发展这么迅速?为什么Linux是免费的?目前为什么有这么多的Linux发行版(distributions)呢?了解这些知识后,才 能知道为什么Linux可以免除软件版权之争,并且了解到Linux为什么可以同时在个人计算机与大型机上大放异彩。在实际进入Linux的世界前,我们 先来谈一谈这些有关Linux的陈年旧事。

还是那句话,地球人都知道,计算机的基本功能就是:"接受用户输入的指令,通过CPU的数学与逻辑单元运算处理后,产生或存储成有用的信息"。为了实现这项功能,计算机就必须要有以下组件。

  1. 输入单元:如鼠标、键盘、卡片阅读机,等等。
  2. 中央处理器(CPU):含有算术逻辑、控制、记忆等单元。
  3. 输出单元:如屏幕、打印机等。

这 些其实就是组成计算机的主要组件。为了连接各个组件,主机板应运而生,计算机的主机中包含了主机板以及CPU,还有各种需要的适配卡。显示器、键盘、鼠标 与主机连接,就构成一台可运行的计算机了。另外,由于计算机只能识别0/1,因此,计算机主要是以二进制方式来计算的。计算机根据复杂度分为:超级计算机 (Supercomputer),大型机(Mainframe Computer),小型机(Minicomputer),微机(Microcomputer)。

计算机所进行的工作都是计算机硬件实 现的,那么,这些硬件如何知道播放VCD呢?这是因为有一种系统在正确地控制硬件工作,该系统就称为操作系统。操作系统可以管理整台计算机的硬件,它可以 控制CPU进行正确的运算,可以分辨硬盘里的数据并进行读取,它还必须能够识别所有的适配卡,这样才能正确地使用所有的硬件。所以,如果没有这个操作系 统,计算机就等于一堆废铁。说到这里,就要谈谈我们所说的Linux了。

从定义来看,只要能让计算机硬件正确地运行,就算是操作系统 了。所以,操作系统其实就是核心与其提供的接口工具。如上所述,因为最基本的核心缺乏与用户沟通的友好界面,所以在目前,一般提到的操作系统,都会包含核 心与相关的用户应用软件。核心就是"Kernel",它是操作系统最底层的东西,每个操作系统都有自己的核心,由它来掌管整个硬件资源的工作状态。所以, 当有新的硬件加入到系统中时,若核心并没有支持它,这个新硬件就无法工作,因为控制它的核心并不认识它。

Linux就是一个操作系统。 在这个操作系统中,含有最主要的核心以及核心提供的工具。它提供了一个完整的操作系统中最底层的硬件控制与资源管理的架构,这个架构沿袭了UNIX良好的 传统,所以相当稳定且功能强大。此外,由于这个优良的架构可以在目前的个人计算机(x86系统)上运行,所以很多软件开发人员将他们的工作重心移到了这个 架构上,即指很多的应用软件。虽然Linux仅是其核心与核心提供的工具,不过,由于核心、核心工具与这些软件开发人员提供软件的整合,Linux成为一 个更完整的、功能强大的操作系统。

2.关于GNU计划

1984年,创立GNU计划与FSF基金会的史托曼先生认 为,编写程序最大的快乐就是让自己开发的好软件可供大家使用。既然程序是供大家分享的,而且每个人所使用的计算机软硬件并不相同,那么,该程序的源码就应 该同时发布,这样才能方便大家修改,适用于每个人的计算机中。这种发布源码的举动就称为开放源码。此外,史托曼还认为,如果能分享程序的源码,该程序是很 优秀的,那么将会有很多人使用它,而且每个人都可以查阅程序源码,排除程序中的错误,这个程序将会越来越健壮,越来越优秀。

为了避免开 发的开放源码的自由软件被用做版权软件,史托曼同时将GNU与FSF开发出来的软件都挂上GPL的版权声明,这个FSF的核心观念是“版权制度是促进社会 进步的手段,版权本身不是自然权力”。为什么要称为GNU呢?其实GNU是GNU's Not UNIX的缩写,意思是说,GNU并不是UNIX。如果写过程序,就会知道,这个GNU = GNU's Not UNIX可是无穷循环。

什么是开放源码呢?所谓的源码(source),就是程序开发人员编写出来的原始程序代码,开放源码就是在发布软件时同时将作者的源码一起公布。

那么,GPL(GNU General Public License, GPL)是什么?为什么要将自由软件挂上GPL的“版权声明”呢?这个版权声明对于作者有什么好处?首先,克托曼对GPL一直是强调Free的,这个Free的意思是这样的:
"Free software" is a matter of liberty, not price. To understand the concept, you should think of "free speech", not "free beer". "Free software" refers to the users freedom to run, copy, distribute, study, change, and improve the software
大意是说,Free Software(自由软件)是一种自由的权力,并非是“价格”。举例来说,您可以拥有自由呼吸的权力,拥有自由发表言论的权力,但是,这并不代表您可以 到处喝“免费的啤酒(free beer)”。也就是说,自由软件的重点并不是指“免费”的,而是指具有“自由度(freedom)”的软件。史托曼进一步说明了自由度的意义是:用户可 以自由执行、复制、再发行、学习、修改与强化自由软件。这无疑是个好消息。因为如此一来,所拿到的软件可能原先只能在UNIX上运行,但是,经过源码的修 改之后,您将可以在Linux或是Windows上运行。总之,一个软件挂上了GPL版权声明之后,它自然就成了自由软件。这个软件就具有如下特性。

? 获取软件与源码:可以根据自己的需求来执行这个自由软件。
? 复制:可以自由复制该软件。
? 修改:可以将获取的源码进行程序修改,使之适合自己的工作。
? 再发行:您可以将修改过的程序再度自由发行,而不会与原先的编写者发生冲突。
? 回馈:您应该将您修改过的程序代码回馈于社会。
请特别注意,您所修改的任何一个自由软件都不应该也不能有下面这样的要求。

? 修改授权:一个GPL授权的自由软件,在您修改后,不能取消GPL授权。
? 单纯销售:您不能单纯销售自由软件。

也 就是说,既然GPL是站在互助互利的角度上去开发的,您不能将大家的成果占为己有,而取消GPL授权。因此,您不可以取消GPL软件的授权,即使已经对该 软件进行了大幅度的修改。那么,自由软件也不能销售吗?当然不是。上一节中我们提到史托曼曾通过销售Emacs获取一些经费。自由软件是可以销售的,不 过,不可以仅销售该软件,应同时与售后服务与相关手册一起提供,这些可就需要工本费了。

很多人也许还有疑问,目前不是有很多Linux 开发商吗?为什么他们可以销售Linux这个GPL授权的软件? 原因很简单,因为他们大多都是在销售“售后服务”,所以,他们所使用的自由软件,都可以在网站下载(当然,每个厂商自己开发的工具软件就不是GPL的授权 软件了)。但是,您可以购买他们的Linux光盘,如果购买了光盘,他们会提供相关的手册说明文件,同时也会提供您数年的咨询、售后服务、软件升级与其他 相关服务,所以,目前自由软件工作人员赖以维生的几乎都是“服务”领域。毕竟自由软件并不是每个人都会编写,有人需要您的自由软件时,他就会请求您的协 助,此时,您就可以通过服务来收取费用。这样来说,自由软件确实还是具有商业空间的。

当然,GPL给程序开发人员带来的好处相当多,但 对于那些不熟悉程序的人们来说,GPL的优点不太容易看出来。首先,虽然它是随手可得的自由软件,您也必须要会使用基本的编译器(这也是您为什么要买这本 书/查看笔者网站的原因)。这对于一般人来说并不容易。当然,如果每个人都跟史托曼一样,那么商业公司就不用存在了。对于不懂程序的人来说,商业公司可以 快速提供帮助;而对于读者来说,认识了/学习了Linux与自由软件的相关技巧后,会有益于我们将来的发展。

3.Linux的开发故事

Linux 虽然是托瓦兹发明的,但内容不会涉及版权软件的版权问题。不过,如果只靠托瓦兹自己一个人的力量,Linux要茁壮成长也很困难,因为一个人的力量毕竟很 有限。好在托瓦兹选择Linux的开发方式相当务实。首先,他将发布的Linux核心放在FTP上,并告知大家新的版本信息,等到用户下载了这个核心并且 安装之后,如果发生问题,或者是由于特殊需求需要某些硬件的驱动程序,那么这些用户就会主动将信息反馈给托瓦兹。在托瓦兹能够解决的问题范围