📄 00000002.htm
字号:
修改的用户可见,而且还必须符合安全规范)。另一个原因是据介绍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)一文中有所介绍,大家可以在<A HREF="http://www.tuxedo.org/~esr/writings/找到这篇">http://www.tuxedo.org/~esr/writings/找到这篇</A> <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><A HREF="http://www.kernel.org及其镜像站点提供了最新的可供下载的内核版本,而且同时包括">http://www.kernel.org及其镜像站点提供了最新的可供下载的内核版本,而且同时包括</A> <BR>稳定和开发版本。如果你愿意的话,不需要很长时间,这些站点所提供的最新版本中就可 <BR>能包含了你的一部分源程序代码。
<BR> <BR> <BR>-- <BR>※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.196.22] <BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -