嵌入式Linux中文站

Linux内核与GNU计划详解


    Linux发展已经有十年了,发展的十分迅速,你了解Linux内核么?Linux内核的名字也是“Linux”。Linux操作系统也是自由软件和开放源代码发展中最着名的例子。我们主要讲讲Linux内核版本。
   
    Linux从1.0版本后就具有两种 不同的版本号,叫做版本树。 一个版本树是由一个是实验版本,一个是产品版本。 每一个版本是由三位数字组成的,第二位数字说明版本类型。如果第二位是偶数,则说明这种版本是产品化版本,如果是奇数,则是实验版本,比如说版本 1.2.0是产品化的版本,而1.3.0则是实验版本。这两种版本是有关联的,是一前一后完成的。每一个版本树开始时间都是相同的,然后呢,这两个版本不 断的扩充增长,稳定代码会添加到产品化版本中,而测试阶段的代码则添加到实验版本中。当linus确定实验版本具有足够的新功能并且性能稳定的时候,他就 称为代码冻结(code freeze)。这时候稳定的实验版本成为新的x.y.0,开发又按新的版本进行。
   
    比如说:1.0.0和 1.1.0是相同的,1.0.1是对1.0版代码的第一次错误修复,而1.1.1是往1.1版中第一次添加新功能。最后到1.0.9中的错误在1.0中得 到修复,1.1.9最终为1.1。最后随着新功能的不断增加到达足够有足够的新功能时,代码冻结,版本一同升级为 1.2.0和1.3.0,然后继续1.2.0修复错误,1.3.0添加功能。
   
    我们可以看到Linux的发展历程要比其他的操作系统短暂的多, 它的原因是多方面的,但谈到Linux的发展历程我们不得不先来谈一下自由软件基金会和它的GNU计划。 我们知道当前流行的软件按其提供方式可以大致划分为三种模式:商业软件、共享软件、自由软件。 商业软件是由开发者出售拷贝并提供技术服务,用户只有使用权,但不能进行非授权的拷贝、扩散、修改或添加新功能; 共享软件则是开发者提供软件试用程序拷贝,用户在使用一段时间后,必须向开发者交纳使用费用,开发者则提供相应的升级和技术服务;自由软件则是由开发者提供软件全部的源代码,任何用户都有权使用、拷贝、扩散、修改该软件。同时用户也有义务将自己修改过的程序源代码公开。
   
    其实在计算机工业发展的初期,是没有这三种模式的,当时软件只是硬件的附属品。公司只卖硬件,随系统赠送软件。在这一时期,软件的设计思想,新的算法和 软件的源代码在专家和公司技术人员之间自由交流,促进了软件的迅速发展。但是,公司很快认识到软件的价值,对软件实施了版权控制,并限制源代码的发布。许 多原本属于公众创造的知识财富现在成为公司的私有财产。软件的开发方式也发生了变化,变成以公司为主体的封闭的开发模式。Unix就是这样的例子。 虽然AT&T开创了Unix的历史,但是Unix的发展与完善却与许多大学的专家、技术人员的努力分不开。事实上,Unix是在协作基础上开发的。当 AT&T在70年代末期对Unix的使用和发布强制实施版权控制后,使早期对Unix发展做出贡献的人们感到失望。

    Richard Stallman,与BillGates曾经同是哈佛大学的学生,他就这个时候就在软件开发团体中发起支持开发自由软件的运动。自1984年起,麻省理工 学院(MIT)开始支持他,这就导致了自由软件基金会(Free Software Foundation,FSF)的建立。
   
    在同年 Richard Stallman组织开发了一个完全基于自由软件的软件体系计划——GNU(GNU's Not Unix)计划,这个计划的目的就是要开发一个完全自由的,与Unix类似的但功能更强大的操作系统,以便为所有的计算机使用者提供一个功能齐全性能良好 的基本系统。GNU的名称很有意思,它采用了一个无限递归的法则来命名的,它的全称是“GNU's Not Unix”,意思是说GNU不是Unix。取它的每个单词的首写字母就组成了“GNU”。 当开始实施GNU项目时,当时没有多少高质量的自由软件可供项目使用。所以,为GNU项目做出贡献的人们(Member of FSF)先从系统的应用软件和工具入手,开发了大量的自由软件。但是对核心GNU HURD的开发速度却很迟缓,直到现在还没有正式发布,仍处于测试阶段。
   
    Richard Stallman针对这个GNU计划还组织拟订了一份通用公共许可证书GPL(General Public License),用它来规范这些“自由软件”的发行、复制和修改等一系列行为。GPL许可证可能大家也听说过,但是也有不少人对他还不是很清楚或者还有 误解。很多人认为GPL许可证下的软件是公共领域的软件,没有任何的版权,属于公众的。其实GPL是有版权的,它的版权属于开发者,并且受到标准国际版权 法的保护。GPL条款的目的是保证软件自由地发行和修改。禁止在发行和使用上进行交易获利,并且不允许任何人限制其他人在发布和修改方面的权利。但是 GPL条款让许多人迷惑的地方是它允许团体或个人从买卖GPL版权的软件中获利,换句话说,就是允许他们在发行时收取一定的费用,甚至赢利。
   
    这乍起来一看好象自相矛盾,为什么允许卖软件赢利而另一方面允许任何人自由免费的获取呢?其实这不难理解。免费并不意味着它不花钱。尽管通常情况下是这 样的。代码的获得是免费的,我们可以想一下,如果某个公司准备把大量的免费软件装到CD-Rom上发行,那这个公司肯定要收取一定的费用来支付生产和发行 CD-Rom的成本。如果这个公司从中获利,这也是GPL条款所允许的。允许公司发行和销售免费软件是一件相当好的事情,我们可以想一下,并非所有的人都 能够有机会通过Internet来免费获取GPL软件,GPL条款允许公司或团体销售GPL软件从而扩大了这些软件的发行范围,极大的拓展了这些软件的全 球用户基础。自由软件基金会的GNU计划为后来的Linux操作系统迅速发展奠定了坚实的基础。
   
    在1994年,Linus发布 Linux的第一个“产品”版Linux1.0的时候,它是按照完全自由发布的版权进行发布的。这种版权它要求所有的源代码都必须公开,而且任何人均不得 从Linux交易中获利。这种纯粹的自由软件的方式对于Linux的发布和发展实际上是一种阻碍,因为它限制了Linux以磁盘或CD-Rom等媒体的形 式进行发布的可能,同时也限制了一些商业公司参与Linux的进一步开发并提供技术支持的良好愿望。于是半年以后,Linus决定把Linux转向GPL 版权。这一步对Linux发展十分重要。它赢得了许多专业人员的支持,这些人将GNU项目的许多成果移植到Linux系统上来。包括很多系统工具包,程序 开发环境,应用程序等等,甚至标准文件工具(如ls,mv,cp和rm等)都是GNU实用工具包的一部分。所以我们一开始说什么是Linux的时候有一种 比较科学的说法是Linux只是一个操作系统的内核,其实也是这样的,Linux本身只有一些磁盘访问代码和很少的几个软件。它从GNU中得到了许多的益 处。
   
    以上就是Linux内核版本以及GNU计划。

本文永久更新链接:http://embeddedlinux.org.cn/emb-linux/entry-level/201109/23-1621.html



分享:

评论