QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 837|回复: 0

Linux历史及简介

[复制链接]
发表于 2004-7-7 23:35:32 | 显示全部楼层 |阅读模式
Linux历史及简介

   
1.1  什么是Linux
   
    在如今的操作系统市场上,除了一些专业的领域以外,可以说微软正在以其Windows
95/NT的强劲攻势横扫全球市场,能与其相抗衡的公司可以说是越来越少了,连微软最大
的对手--拥有一大批忠心耿耿用户的苹果公司也不得不败下阵来,接受微软的合作意向。
但是在迅猛发展的国际互联网上,有这样一群人,他们是一支由编程高手,业余计算机玩
家,黑客们组成的奇怪队伍,完全独立地开发出在功能上毫不逊色于微软的商业操作系统
的一个全新的免费UNIX操作系统--Linux(发音为Li-nucks),成为网络上一支不可小
觑的力量,以不到四年的微薄资格就成为微软的一个强劲对手。据很不精确的统计,全世
界使用Linux操作系统的人已经有数百万之多,而且绝大多数是在网络上使用的。 而在中
国,随着Internet大潮的卷入,一批主要以高等院校的学生和ISP(Internet Service Provider)
的技术人员组成的Linux爱好者队伍也已经蓬蓬勃勃地成长起来,可以说在中国,随着网络
的不断普及,免费而性能优异的Linux操作系统必将发挥出越来越大的作用。

    笔者编写这本书的目的主要是为中国的Linux爱好者提供一本中文的参考书,让大家在
学用Linux的过程中不断提高自己的计算机水平。尤其是UNIX方面的应用水平。就算是抛
砖引玉吧。

    Linux是什么?按照Linux开发者的说法,Linux是一个遵循POSIX(注一)标准的免
费操作系统,具有BSD和SYSV的扩展特性(表明其在外表和性能上同常见的UNIX非常
相象,但是所有系统核心代码已经全部被重新编写了)。它的版权所有者是芬兰籍的Linus
B. Torvalds 先生([email protected])和其他开发人员,并且遵循GPL声明(GNU
General Public License)。

    Linux 可以在基于Intel 386,486,Pentium,PentiumPro,Pentium MMX,PentiumII
型处理器以及Cyrix,AMD的兼容芯片(如6x86,K6等芯片)的个人计算机上运行,它
可以将一台普通的个人电脑立刻变成一台功能强劲的UNIX工作站,在Linux上可以运行大
多数UNIX程序:TEX,X Window系统,GNU的C/C++编译器。它让用户端坐家中就
可以享受UNIX的全部威力。如今有越来越多的商业公司采用Linux作为操作系统,例如科
学工作者使用Linux来进行分布式计算,ISP使用Linux配置Intranet服务器,电话拨号服
务器等网络服务器,CERN(西欧核子中心)采用Linux做物理数据处理,美国98年1月
最卖座的影片《泰坦尼克号》的片中计算机动画的设计工作就是在Linux平台下进行的。更
有趣的是去年InfoWorld把年度最佳技术支持奖颁给了Linux,给批评自由软件没有良好服
务的人好好地上了一课。越来越多的商业软件公司宣布支持Linux。在国外的大学中很多教
授用Linux来讲授操作系统原理和设计。当然对于大多数用户来说最重要的一点是,现在我
们可以在自己家中的计算机上进行UNIX编程,享受阅读操作系统的全部源代码的乐趣了!


1.2 Linux的发展历史

    如果以人类的年龄来算的话,Linux还是一个没有上学的七岁小娃娃。1991年8月一
位来自芬兰赫尔辛基大学的年轻人Linus Benedict Torvalds,对外发布了一套全新的操作系
统。事情的缘起是这样的:为了实习使用著名的计算机科学家 Andrew S. Tanenbaum开发的
Minix (一套功能简单,简单易懂的UNIX操作系统,可以在8086上运行,后来也支持80386,
在一些PC机平台上非常流行),Linus购买了一台486微机,但是他发现Minix的功能还
很不完善,于是他决心自己写一个保护模式下的操作系统,这就是Linux的原型。最开始的
Linux是用汇编语言编写的。主要工作是用来处理80386保护模式,按照Linus本人的描述,
刚开始的时候是这样的:

    “最开始的确是一次痛苦的航行,但是我终于可以拥有自己的一些设备驱动程序了,
并且排错也变的更容易了,我开始使用C语言来开发程序,这大大加快了开发速度,我开
始担心我发的誓言:‘作一个比Minix更好的Minix’,我梦想有一天我能在Linux下重新
编译GCC……”

    “我花了两个月来进行基本的设置工作,直到我拥有了一个磁盘驱动程序(有很多错
误,但碰巧能在我的机器上工作)和一个小小的文件系统,这就是我的第0.01版(大约是
1991年8月下旬的事情),它并不完善,连软盘驱动器的驱动程序都没有,什么事情也做
不了,但是我已经被它吸引住了,除非我能放弃使用Minix,不然我不会停止改进它。”
                                                                     
    1991年10月5日,Linus发布了Linux的第一个“正式”版本: 0.02版,现在Linus
可以运行bash(GNU的一个UNIX shell程序),GCC(GNU的C编译器),它几乎还
是什么事情也做不了,但是它被设计成一个黑客的操作系统,主要的注意力被集中在系统
核心的开发工作上了,没有人去注意用户支持,文档工作,版本发布等等其他东西。

    最开始的Linux版本被放置到一个FTP服务器上供大家自由下载,FTP服务器的管理
员认为这是Linus的Minix,因而就建了一个Linux目录来存放这些文件,于是Linux这个
名字就传开了,如今已经成了约定俗成的名称了。

    Linus是在 USENET 讨论区comp.os.minix  首先发布下面这条消息的:
   
    “用户可曾渴望Minix-1.1会有这样美好的一天:人们可以自己编写驱动程序,用户是
否没有发现这样一个美妙的计划--人们可以自己修改操作系统以适应自己的需要?用户
是否对所有东西都在Minix上运行这一点感到沮丧?用户是否没有找到一个业余时间可以
干的好题目?下面这篇文章也许正是用户所需要的:

    ‘如同我在一个月以前所提到的那样,我正在开发一个类似于Minix的基于AT-386的
操作系统,它现在已经可以工作了(当然得看用户怎么想),现在我将公布它的源代码,
它是第0.02版本,但是可以运行bash,GCC,gnu-make,gnu-sed,compress,等等。’”

    然后这个娃娃操作系统就以两个星期出一次新的修正版本的速度迅速成长,在版本
0.03之后Linus将版本号迅速提高到0.10,这时候更多的人开始在这个系统上工作。在几
次修正之后Linus将版本号提高到0.95,这表明他希望这个系统迅速成为一个“正式”的
操作系统,这时候是1992年,但是直到一年半之后,Linux的系统核心版本仍然是
0.99.p114,已经非常接近1.0了。

    Linux终于在1994年的3月14日发布了它的第一个正式版本1.0版(注二),而Linux
的讨论区也从原来的 comp.os.minix中独立成为alt.os.linux,后来又更名为comp.os.Linux。
这是USENET上有名的投票表决之一,有好几万用户参加了投票。后来由于使用者越来越
多,讨论区也越来越拥挤又不得不再细分成 comp.os.linux.*,如今已经有十几个讨论组了,
这还不把专门为Redhat Linux和Debian Linux设的讨论组计算在内。这个讨论组也是
USENET上最热闹的讨论组之一,每天都有数以万计的文章发表。
   
    目前Linux已经是一个完整的类UNIX操作系统了。其最新的稳定核心版本号为2.0.34。
测试核心版本为2.1.90。

     下面就是Linux的吉祥物,一只可爱的小企鹅(起因是因为Linus是芬兰人,因而挑
选企鹅作为吉祥物):



   
                            图1.1  Linux的吉祥物

    说到这里,就不得不说一下同Linux密切相关的GNU了,如果没有GNU,Linux也
许不会发展得这么快,可是如果没有Linux,GNU也不会有如今这么巨大的影响力。

    什么叫GNU?

    GNU就是GNU's Not Unix的缩写, GNU 的创始人Stallman 认为UNIX 虽然不是最
好的操作系统,但是至少不会太差,而他自信有能力把UNIX 不足的地方加以改进,使它
成为一个优良的操作系统, 就是名为 GNU的一个同UNIX兼容的操作系统,并且开发这
个系统的目的就是为了让所有计算机用户都可以自由地获得这个系统。任何人都可以免费
地获得这个系统的源代码,并且可以相互自由拷贝。因而在使用GNU软件的时候我们可以
理直气壮地说我们使用的是正版软件。当然GNU也是有自己的版权声明(即GPL,见附
录A)的,就是它有名的Copyleft(相对于版权的英文Copyright),就是用户获得GNU
软件后可以自由使用和修改,但是用户在散布GNU软件时,必须让下一个用户有获得源代
码的权利并且必须告知他这一点。这一条看似古怪的规定是为了防止有些别有用心的人或
公司将GNU软件稍加修改就去申请版权,说成是自己的产品。其目的就是要让GNU永远
是免费和公开的。

    GNU是谁发起的? GNU 是由自由软件基金会 (Free Software Foundation, FSF)
的董事长Richard M. Stallman (RMS)于1984年发起的,如今已经有十几年的历史了。
Stallman本来是在美国麻省理工学院的人工智能实验室从事研究工作的研究员, 同时也是
世界上可数的几个顶尖程序员之一,他的最著名的作品也是GNU的第一个软件就是GNU
Emacs,UNIX平台上的一个编辑器。这个软件推出后受到广大UNIX用户 的热烈欢迎,
由于它同时提供源代码,大家都热心地替它排除错误,增加功能,它的功能越来越强大,
终于成为UNIX平台上最好的编辑器,上至CRAY超级计算机,下至最普遍的 PC机,从
DOS到Windows,从VMS到UNIX都可以使用这个Emacs。受到这个软件成功的鼓励,
Stallman成立了自由软件基金会,以推广GNU计划。 基金会成立之后,主要靠一些厂家
的捐献和出售GNU程序的使用手册,以及拷贝GNU软件的电脑磁带和光盘来维持,不过
许多硬件厂家开始基金会提供高性能的工作站,这其中包括HP和 SONY,AT&T这样的
国际性大公司。

    GNU目前已经推出的软件主要由Emacs──功能强大的编辑环境,GCC──性能优
异的多平台的C,C++,Fortran编译器和其他40多种软件。其中GCC的成功为GNU带
来了前所未有的影响。GCC是一种可以在11种硬件平台上编译出可执行程序的超级编译
器,而且其执行效率更是惊人,与一般的编译器相比平均效率要高20%-30%。这使得很多
商业公司也采用GCC来开发软件,其中包括像HP公司这样的专业大公司。 而现在回到苹
果公司的前NeXT公司总裁斯蒂夫·乔布斯也对Stallman尊敬有加,因为NeXT公司的软
件都是用GCC开发的,在PC游戏中最好的3D射击游戏quake(由ID Software公司开发)
也是用GCC的DOS移植版本djgpp编写的。GCC是C,C++,Objective C(由NeXT公
司贡献)三者合一的编译器,它的编译原理同大多数编译器不一样,它先有一个前端处理
程序将C,C++,Ovjective C的语句转换成为一个类似于Lisp的内部语言--RTL,再
由一个后端处理程序将其优化后产生目的CPU可以执行的机器代码,因而对于每种新语言
来说,只要写好一个新的前端处理程序就可以立刻将此语言移植到GCC已经支持的不同硬
件平台上去,而且编译出来的就已经是经过优化的二进制代码。除了C系列以外,GCC还
有Fortran 77,ada9x,Pascal的前端处理程序。GCC的多平台的实现方法同JAVA的虚
拟机技术不太一样,因而其运行速度远非JAVA能望其项背。

    GNU 开始的策略就是先开发 UNIX 已经有的程序(因为计划中GNU将会是一个与
UNIX兼容的操作系统,而UNIX下的标准使用界面已经非常完善了,所以先依照这个标准
开发应用程序,将来 GNU 自己的系统核心一出来,就立即可以使用所有先前开发的GNU
应用程序),因此会先有 emacs,GCC 等工具软件开发出来。其中 GCC 更是GNU计划
自立更生的一个重要步骤(不需要依靠商业软件来产生/编译整个GNU系统),如今这套
程序开发工具已经很成熟了。下一步要做的就是开发GNU的核心--Hurd了,只要Hurd
一开发出来,GNU 就是一套能够自我开机,真正自给自足,完整的自由操作系统。Hurd
是基于Mach这个微内核(micro kernel)上的操作系统核心。 以后会使用尤他大学的Mach4
(一个更为方便和快速的微内核),由于Hurd基于Mach,所以只要Mach移植到什么机
器上,Hurd也立刻就是这种硬件平台的操作系统,就这一点而言,它是一种很前卫的操作
系统。

    但是 Linux 在短短的几年内崛起,也使用 GNU 的版权声明,大有取代 Hurd 之势。
在网络上甚至有不少人认为Hurd 应该停止开发, 因为  Linux 系统已经十分成熟,GNU
实际上可以使用Linux 当作核心,也能构成一套完整的操作系统。甚至连自由软件基金会
的技术人员也承认,要是 Linux早几年出现,也许就不用发展 Hurd 了。但是 Linux 还是
晚了一步,Hurd 已经计划很久了,技术上有很多非常领先的地方,能够支持的硬件平台也
比Linux多,不完成就太可惜了。1994 年 11 月,Hurd 的第一个雏形已经发表; 1995 年
4 月,也发表了第二次snapshot。Hurd目前的版本是0.2,是1997年6月发布的,已经可
以独立安装与稳定运行了,GNU版本的Mach 目前的版本是1.1.3。与此同时,已经开发
出一个基于微内核的Linux版本了,目前有一个可以在HP-PA RISC机器上运行的Linux系
统。 实际上,自由软件基金会目前有一套以 Linux 为核心的 GNU 系统计划。这个计划
就是自由软件基金会支持的 Debian Linux。 Debian Linux 是 GNU软件与公共软件
(Public Domain Software )最彻底的结合,它是一套完全由GNU 和公共软件配置起来的,
而且具有商业操作系统水平的操作系统。


                          图1.2  GNU创始人Stallman
                          图1.3  Linux创始人Linus


(注一):POSIX(Portable Operating System Interface)标准操作系统界面。
(注二):按照编程人员的习惯,一个软件在第一次推出前的所有测试版本都不能称作1.0
版,只能叫作0.3,0.7,0.99版,其数目越接近1,就表明其越来越接近正式发布。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-12-4 04:29 , Processed in 0.088106 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表