📄 2.htm
字号:
尽管Linux大受欢迎,但是Hurd内核还在继续开发。原因有几个方面,其一是Hurd的体系 <br>
结构十分清晰地体现了Stallman关于操作系统工作方式的思想,例如,在运行期间,任何 <br>
用户都可以部分地改变或替换Hurd(这种替换不是对每个用户都是可见的,而是只对申请 <br>
修改的用户可见,而且还必须符合安全规范)。另一个原因是据介绍Hurd对于多处理器的 <br>
支持比Linux本身的内核要好。还有一个简单的原因是兴趣的驱动,因为程序员们希望能 <br>
够自由地进行自己所喜欢的工作。只要有人希望为Hurd工作,Hurd的开发就不会停止。如 <br>
果他们能够如愿以偿,Hurd有朝一日将成为Linux的强劲对手。不过在今天,Linux还是自 <br>
由内核王国里无可争议的统治者。 <br>
在GNU发展的中期,也就是1991年,一个名叫Linus Torvalds的芬兰大学生想要了解Intel <br>
的新CPU—80386。他认为比较好的学习方法是自己编写一个操作系统的内核。出于这种目 <br>
的,加上他对当时Unix变种版本对于80386类机器的脆弱支持十分不满,他决定要开发出 <br>
一个全功能的、支持POSIX标准的、类Unix的操作系统内核,该系统吸收了BSD和System V <br>
的优点,同时摒弃了它们的缺点。Linus(虽然我知道我应该称他为Torvalds,但是所有 <br>
人都称他为Linus)独立把这个内核开发到0.02版,这个版本已经可以运行gcc、bash和很 <br>
少的一些应用程序。这些就是他开始的全部工作了。后来,他又开始在因特网上寻求广泛 <br>
的帮助。 <br>
不到三年,Linus的Unix—Linux,已经升级到1.0版本。它的源代码量也呈指数形式增长 <br>
,实现了基本的TCP/IP功能(网络部分的代码后来重写过,而且还可能会再次重写)。此 <br>
时Linux就已经拥有大约10万用户了。 <br>
现在的Linux内核由150多万行代码组成,Linux也已经拥有了大约1000万用户(由于Linux <br>
可以自由获取和拷贝,获取具体的统计数字是不可能的)。Linux内核GNU/Linux附同GNU <br>
工具已经占据了Unix 50%的市场。一些公司正在把内核和一些应用程序同安装软件打包在 <br>
一起,生产出Linux的发行版本,这些公司包括Red Hat和Caldera 公司。现在的 <br>
GNU/Linux已经备受瞩目,得到了诸如Sun、IBM、SGI等公司的广泛支持。SGI最近决定在 <br>
其基于Intel的Merced的系列机器上不再搭载自己的Unix变种版本IRIX,而是直接采用 <br>
GNU/Linux;Linux甚至被指定为Amiga将要发布的新操作系统的基础。 <br>
1.2 GNU通用公共许可证 <br>
这样一个如此流行的操作系统当然值得我们学习。按照通用公共许可证(GPL,General <br>
Public License)的规定,Linux的源代码可以自由获取,这满足了我们学习该系统的强烈 <br>
愿望。GPL这份非同寻常的软件许可证,充分体现了上面提到的Stallman的思想:只要用 <br>
户所做的修改是同等自由的,用户可以自由地使用、拷贝、查询、重用、修改甚至重新发 <br>
布这个软件。通过这种方式,GPL保证了Linux(以及同一许可证保证下的大量其他软件) <br>
不仅现在自由可用,而且以后经过任何修改之后都仍然可以自由使用。 <br>
请注意这里的自由并不是说没有人靠这个软件盈利,有一些日益兴起的公司,比如发行最 <br>
流行的Linux发行版本的Red Hat就是一个例子(Red Hat自从上市以来,市值已经突破数 <br>
十亿美元,每年盈利数十万美元,而且这些数字还在不断增长)。但是任何人都不能限制 <br>
其他用户涉足本软件领域,而且所做的修改不能减少其自由程度。 <br>
本书的附录B中收录了GNU通用公共许可证协议的全文。 <br>
1.3 Linux开发过程 <br>
如上所述,由于Linux是一个自由软件,它可以免费获取以供学习研究。Linux之所以值得 <br>
学习研究,是因为它是相当优秀的操作系统。如果Linux操作系统相当糟糕,那它就根本 <br>
不值得我们使用,也就没有必要去研究相关的书籍。Linux是一个十分优秀的操作系统还 <br>
在于几个相互关联的原因。 <br>
原因之一在于它是基于天才的思想开发而成的。在学生时代就开始推动整个系统开发的 <br>
Linus Torvalds是一个天才,他的才能不仅展现在编程能力方面,而且组织技巧也相当杰 <br>
出。Linux的内核是由世界上一些最优秀的程序员开发并不断完善的,他们通过Internet <br>
相互协作,开发理想的操作系统;他们享受着工作中的乐趣,而且也获得了充分的自豪感 <br>
。 <br>
Linux优秀的另外一个原因在于它是基于一组优秀的概念。Unix是一个简单却非常优秀的 <br>
模型。在Linux创建之前,Unix已经有20年的发展历史。Linux从Unix的各个流派中不断吸 <br>
取成功经验,模仿Unix的优点,抛弃Unix的缺点。这样做的结果是Linux 成为了Unix系列 <br>
中的佼佼者:高速、健壮、完整,而且抛弃了历史包袱。 <br>
然而,Linux最强大的生命力还在于其公开的开发过程。每个人都可以自由获取内核源程 <br>
序,每个人都可以对源程序加以修改,而后他人也可以自由获取你修改后的源程序。如果 <br>
你发现了缺陷,你可以对它进行修正,而不用去乞求不知名的公司来为你修正。如果你有 <br>
什么最优化或者新特点的创意,你也可以直接在系统中增加功能,而不用向操作系统供应 <br>
商解释你的想法,指望他们将来会增加相应的功能。当发现一个安全漏洞后,你可以通过 <br>
编程来弥补这个漏洞,而不用关闭系统直到你的供应商为你提供修补程序。由于你拥有直 <br>
接访问源代码的能力,你也可以直接阅读代码来寻找缺陷,或是效率不高的代码,或是安 <br>
全漏洞,以防患于未然。 <br>
除非你是一个程序员,否则这一点听起来仿佛没有多少吸引力。实际上,即使你不是程序 <br>
员,这种开发模型也将使你受 匪浅,这主要体现在以下两个方面: <br>
* 可以间接受益于世界各地成千上万的程序员随时进行的改进工作。 <br>
* 如果你需要对系统进行修改,你可以雇用程序员为你完成工作。这部分人将根据你的需 <br>
求定义单独为你服务。可以设想,这在源程序不公开的操作系统中将是什么样子。 <br>
Linux这种独特的自由流畅的开发模型已被命名为bazaar(集市模型),它是相对于 <br>
cathedral(教堂)模型而言的。在cathedral模型中,源程序代码被锁定在一个保密的小 <br>
范围内。只有开发者(很多情况下是市场)认为能够发行一个新版本,这个新版本才会被 <br>
推向市场。这些术语在Eric S. Raymond的《教堂与集市》(The Cathedral and the <br>
Bazaar)一文中有所介绍,大家可以在http://www.tuxedo.org/~esr/writings/找到这篇 <br>
文章。bazaar开发模型通过重视实验,征集并充分利用早期的反馈,对巨大数量的脑力资 <br>
源进行平衡配置,可以开发出更优秀的软件。(顺便说一下,虽然Linux是最为明显的使 <br>
用bazaar开发模型的例子,但是它却远不是第一个使用这个模型的系统。) <br>
为了确保这些无序的开发过程能够有序地进行,Linux采用了双树系统。一个树是稳定树 <br>
(stable tree),另一个树是非稳定树(unstable tree)或者开发树(development <br>
tree)。一些新特性、实验性改进等都将首先在开发树中进行。如果在开发树中所做的改 <br>
进也可以应用于稳定树,那么在开发树中经过测试以后,在稳定树中将进行相同的改进。 <br>
按照Linus的观点,一旦开发树经过了足够的发展,开发树就会成为新的稳定树,如此周 <br>
而复始的进行下去。 <br>
源程序版本号的形式为x.y.z。对于稳定树来说,y是偶数;对于开发树来说,y比相应的 <br>
稳定树大一(因此,是奇数)。截至到本书截稿时,最新的稳定内核版本号是2.2.10,最 <br>
新的开发内核的版本号是2.3.12。对2.3树的缺陷修正会回溯影响(back-propagated) <br>
2.2树,而当2.3树足够成熟的时候会发展成为2.4.0。(顺便说一下,这种开发会比常规 <br>
惯例要快,因为每一版本所包含的改变比以前更少了,内核开发人员只需花很短的时间就 <br>
能够完成一个实验开发周期。) <br>
http://www.kernel.org及其镜像站点提供了最新的可供下载的内核版本,而且同时包括 <br>
稳定和开发版本。如果你愿意的话,不需要很长时间,这些站点所提供的最新版本中就可 <br>
能包含了你的一部分源程序代码。 <br>
<br>
<br>
-- <br>
※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.196.22] <br>
</small><hr>
<p align="center">[<a href="index.htm">回到开始</a>][<a href="index.htm">上一层</a>][<a href="3.htm">下一篇</a>]
<p align="center"><a href="http://cterm.163.net">欢迎访问Cterm主页</a></p>
</table>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -