技术开发 频道

linux的历史演绎

【IT168 技术教程】

    1.8什么是自由软件? 

    1.8.1全球流行的软件按其提供方式和是否赢利可以划分为四种模式
 
    商业软件(Commercial software) 

    商业软件由开发者出售拷贝并提供技术服务,用户只有使用权,但不得进行非法拷贝、扩散和修改;当然不可能给你源代码。如果你想升级就只能等他的升级版本。 

    共享软件(Shareware 

    由开发者提供软件试用程序拷贝授权,用户在试用该程序拷贝一段时间之后,必须向开发者交纳使用费用,开发者则提供相应的升级和技术服务;也不提供源代码。 

    自由软件(Freeware或Freesoftware)
 
   
而自由软件则由开发者提供软件全部源代码,任何用户都有权使用、拷贝、扩散、修改。但自由软件不一定免费。它可以收费也可以不收费。 

    免费软件(freeware) 

    他的英文名称和自由软件一样。所以很多书上都把它归为自由软件。其实那是不确切的。免费软件是不要钱的。但免费软件不一定提供源代码。可以提供可以不提供。只有当自由软件免费的或者免费软件提供软代码的时候才是一样的。 

    1.8.2 Richard Stallman和GPL 

    看得出来,自由软件继承了其它软件的很多优点。这里我们不得不介绍一个人:Richard Stallman。他在1971年加入MIT的人工智能实验室,并在工作期间取得哈弗的物理博士学位。他认为:知识应该与其它能从知识中受益的人一起共享,重要的资源应该被利用。他想把自己开发的软件与其它人共享,按照法律,他是MIT的员工,他写的程序是属于MIT的。为了不冒犯法律,毅然辞职。大约在一年以后,由于个别的公司控制了许多公共软件的开发项目。自1984年起MIT开始支持Richard Stallman的努力。这样就导致了自由软件基金会(Free Software Foundation,FSF)的建立。他认为:计算机系统因该开放,软件应该自由使用。在其它人协作下,他创作了通用软件许可证(General Public Licese,GPL)。这对推动自由软件的发展起了重要作用。        
   
GPL主要的规定: 

    1) GPL保证任何人有共享和修改自由软件的自由。还可以把修改后的软件向公众发布。但是发布者要无条件开放其源代码。这样就保证自由软件的低价。 

    2) GPL规定自由软件的衍生作品必须以GPL为重新发布的许可证。这样就保证了自由软件的持续性。 

    3) GPL规定允许公司销售自由软件。这就为公司介入自由软件事业敞开大门。 

    同时,Richard Stallman打算组织开发一个完全基于自由软件的软件体系——GNU(GNU's Not Unix,GNU这个单词含义正好是产于南非州的一种大羚羊,所以我们经常可以看到有些linux书的封面是一只羚羊,就是这个道理。)。它的目标是:写一个完整的与UNIX兼容的软件系统。由于刚开始还没有很好的自由软件可供使用。所以他们先从系统的应用软件和工具着手。比如很有名的:emacs(编辑器) gcc(据说是世界上效率最高的编译器)等等。同时他们也开发GUN体系的操作系统内核:hurd。可是开发得很缓慢。到现在也没有全部完工。 

    自从1991Linux发布以来,一直是完全自由扩散的。他要求所有的源码必须公开且任何人不准从中获利。这样它限制了Linux以磁盘或CD-ROM等媒介的发布形式。从而阻碍了Linux得发展。因为没有哪家公司愿意使用没有厂商保证和没有良好技术支持的操作系统。linus想到了GPL。事实也证明,加入GPL之后,许多软件公司就介入其中,开发了多种Linux的发行版本。如:Redhat 、Mandrake等等。他们增加了许多实用软件和易用的图形界面。linus本人也认为:“使Linux成为GPL的一员是我一生中作过最漂亮的一件事”。 

    那边hurd还在十月怀胎。这边Linux却长大成人。很自然,Linux很快成为GNU的基本操作系统。大有取代hurd之意。甚至有人认为没有再继续开发hurd的必要。可是hurd是一种很前卫的系统,比如微内核结构。看来还是有一定价值的。就这样,Linux成为了GPL的一员,自由软件的一员。 

    1.8.3 两个最有名的开放源代码协议(简称开源协议)
看到这里,我们发现自由软件的最重要的标志是开放源代码。GPL是一种开放源代码的许可。当然还有其它的。最有名的是LGPL和BSD许可。 

    1).LGPL(Lesser GPL) 

    较宽松公共许可证:也是由FSF制定的。FSF发现GPL很难满足所有的程序。特别是库函数的调用。在编写程序的时候,免不了要用到其中的函数,总不能就这样成为自由软件了。所以就发布了GNU 函式库公共许可证 (GNU Library Public License)。规定虽然这个函式库是在GPL下面的,但如果程序中使用了函数库,程序作者还是可以把该软件定为非自由软件。 

    2).BSD 

    如果读者仔细看上面UNIX的介绍的话,就知道BSD系统也是开放源代码的。当然也有一个相应的许可。称之为BSD许可。简单来说,BSD许可是最宽松的许可。你可以在BSD许可下做任何事。 

    1.9 Linux的版本问题 

    说到Linux版本,有两种含义: 

    1.9.1 Linux的内核版本 

    在Windows应用中很少提到内核的概念,而Linux中经常用到。简单来说,Linux内核就是这个系统的最小化。当系统引导的时候被调入内存。外部程序通过调用其中的函数完成操作。所以它是系统的核心。Linux内核由其创始人linus带领的小组维护。这个版本我们就认为是“官方版本”。内核版本号的格式是: 

    主版本号.次版本号.修正号 

    例如:Linux 2.4.10 ,主版本号是2,次版本号是4,第10次修正. 

    例如:Linux 2.5.13 ,主版本号是2,次版本号是5,第13次修正.这个内核是本书完成时的最新版本。 

    内核版本号还有一个规则:次版本号为偶数的是稳定版本,为基数的是发展版本。所谓稳定版本是指内核的特性已经固定,代码运行稳定可靠,不再增加新的特性,要改进也只是修改代码中的错误。如上面的一个例子.这个内核是在Redhat7.2使用的,是一个稳定版本.而发展版本是指相对于上一个稳定版本增加了新的特性,还处于发展之中,代码运行不大可靠。如上面第二个列子,可见他是一个不稳定板。 

    1.9.2 linux发行版本 

   
光有内核还不能构成一个完整的操作系统,于是一些组织或公司将内核与一些应用程序包装起来就构成了一个完整的操作系统,这就是发行套件,不同的公司或组织的发行套件各不相同,版本号也不相同,尽管它们使用了同一版本号的内核。现在的发行公司很多,如:我们常听说的RedHat,中软,红旗。   

0
相关文章