| [返回电脑前线首页]·[所有跟贴]·[加跟贴]· [版主管理]·[HappyBoy的留园博客]·*繁體閱讀* | |
|
Linux历史及其发展: Linux 的诞生和发展 下面主要根据这五个基本线索来追寻一下Linux 的开发历程,它的酝酿过程,最初的发展经历。首先分别介绍其中的四个基本要素(UNIX、MINIX、GNU 和POSIX,Internet 的重要性显而易见,所以不用对其罗嗦),然后根据Linux 的创始人Linus Toravlds 从对计算机感兴趣而自学计算机知识,到心里开始酝酿编制一个自己的操作系统,到最初Linux 内核0.01 版公布,以及从此如何艰难地一步一个脚印地在全世界hacker 的帮助下最后推出比较完善的1.0 版本这段时间的发展经过,也即对Linux 的早期发展历史进行详细介绍。 UNIX 操作系统的诞生 MINIX 操作系统 对于Linux 系统,他表示对其开发者Linus 的称赞。但他认为Linux 的发展有很大原因是因为他为了保持minix 的小型化,能让学生在一个学期内就能学完,而没有接纳全世界许多人对Minix 的扩展要求。因此这激发了Linus 编写Linux。Linus 正好抓住了这个好时机。 GNU 计划 到上世纪90 年代初,GNU 项目已经开发出许多高质量的免费软件,其中包括有名的emacs 编辑系统、bash shell 程序、gcc 系列编译程序、gdb 调试程序等等。这些软件为Linux 操作系统的开发创造了一个合适的环境,是Linux 能够诞生的基础之一。以至于目前许多人都将Linux 操作系统称为"GNU/Linux"操作系统。 POSIX 标准 1989 年POSIX 的工作被转移至ISO/IEC 社团,并由15 工作组继续将其制定成ISO 标准。到1990 年,POSIX.1 与已经通过的C 语言标准联合,正式批准为IEEE 1003.1-1990(也是ANSI 标准)和ISO/IEC 9945-1:1990 标准。 在90 年代初,POSIX 标准的制定正处在最后投票敲定的时候,那是1991-1993 年间。此时正是Linux刚刚起步的时候,这个UNIX 标准为Linux 提供了极为重要的信息,使得Linux 的能够在标准的指导下进行开发,能够与绝大多数UNIX 系统兼容。在最初的Linux 内核代码中(0.01 版、0.11 版)就已经为Linux与POSIX 标准的兼容做好了准备工作。在0.01 版的内核/include/unistd.h 文件中就已经定义了几个有关POSXI 标准要求的常数符号,并且在注释中就写到"ok,这也许是个玩笑,但我正在着手研究它呢"。 1991 年7 月3 日在comp.os.minix 上发布的post 上就已经提到了正在搜集POSIX 的资料。(当然此时还不存在Linux 这个名称,当时Linus 的脑子里想的可能是FREAX ,FREAX 的英文含义是怪诞的、怪物、异想天开等)。其中透露了他正在进行Linux 系统的开发,并且在Linux 最初的时候已经想到要实现与POSIX(UNIX 的国际标准)的兼容问题了。 Linux 操作系统的诞生 当时的另一个计算机技术阵营是Unix世界。但是Unix操作系统就不仅是价格贵的问题了。为了寻求高利率,Unix经销商将价格抬得极高,PC小用户就根本不能靠近它。曾经一度受到Bell Labs的许可而可以在大学中用于教学的UNIX源代码一直被小心地守卫着不需公开。对于广大的PC用户,软件行业的大型供应商始终没有给出有效的解决该问题的手段。正在此时,出现了MINIX操作系统,并有一本详细的书本描述它的设计实现原理。由于AST的书写的非常详细,并且叙述有条有理,几乎全世界的计算机爱好者都在看这本书以理解操作系统的工作原理。其中也包括Linux系统的创始者Linus Benedict Torvalds。当时(1991年),Linus Benedict Torvalds 是赫尔辛基大学计算机科学系的二年级学生,也是一个自学hacker。这个21 岁的芬兰年轻人喜欢鼓捣计算机,测试计算机的能力和限制。但当时缺乏的是一个专业级的操作系统。MINIX 虽然很好,但只是一个用于教学目的简单操作系统,而不是一个强有力的实用操作系统。 到1991 年,GNU 计划已经开发出了许多工具软件。最受期盼的Gnu C 编译器已经出现,但还没有开发出免费的GNU 操作系统。即使是MINIX 也开始有了版权,需要购买才能得到源代码。而GNU 的操作系统HURD 一直在开发之中,但并不能在几年内完成。对于Linus 来说,已经不能等待了。从1991 年4 月份起,他开始酝酿并着手编制自己的操作系统。刚开始,他的目的很简单,只是为了学习Intel 386 体系结构保护模式运行方式下的编程技术。但后来Linux 的发展却完全改变了初衷。 1991 年初,Linux 开始在一台386sx 兼容微机上学习minix 操作系统。通过学习,他逐渐不能满足minix 系统的现有性能,并开始酝酿开发一个新的免费操作系统。根据Linus 在comp.os.minix 新闻组上发布的消息,我们可以知道他逐步从学习minix 系统到开发自己的Linux 的过程。 Linus 第1 次向comp.os.minix 投递消息是在1991 年3 月29 日。题目是"gcc on minix-386 doesn't optimize",是有关gcc 编译器在minix-386 上运行的优化问题,由此可知,Linus 在1991 年的初期已经开始深入研究了minix 系统,并在这段时间有了改进minix 操作系统的思想,而且在进一步学习minix系统中,逐步演变为想自己重新设计一个基于Intel 80386 体系结构的新操作系统。他在回答有人提出minix 上的一个问题时,所说的第一句话是"阅读源代码"("RTFSC (Read the Fucking Source Code :-)")。他认为答案就在源程序中。这也说明了对于学习系统软件来说,你不光需要懂得系统的工作基本原理,还需要结合实际系统,学习实际系统的实现方法。因为理论毕竟是理论,其中省略了许多枝节,而这些枝节问题虽然没有太多的理论含量,但却是一个系统必要的组成部分,就像麻雀身上的一根羽毛。 从1991 年的4 月份开始,Linus 几乎花了全部时间研究386-minix 系统(hack the kernel),并且尝试着移植GNU 的软件到该系统上(GNU gcc、bash、gdb 等)。并于4 月13 日在comp.os.minix 上发布说自己已经成功地将bash 移植到了minix 上,而且已经爱不释手、不能离开这个shell 软件了。 第一个与Linux 有关的消息是在1991 年7 月3 日在comp.os.minix 上发布的(当然此时还不存在Linux 这个名称,当时Linus 的脑子里想的可能是FREAX ,FREAX 的英文含义是怪诞的、怪物、异想天开等)。其中透露了他正在进行Linux 系统的开发,并且在Linux 最初的时候已经想到要实现与POSIX(UNIX 的国际标准)的兼容问题了。 在Linus 的下一发布的消息中(1991 年8 月25 日 comp.os.minix),他向所有minix 用户询问"What would you like to see in minix?"("你最想在minix 中见到什么?"),在该消息中他首次透露出正在开发一个(免费的)386(486)操作系统,并且说只是兴趣而已,代码不会很大,也不会象GNU 的那样专业。开发免费操作系统这个想法从4 月份就开始酝酿了,希望大家反馈一些对于minix 系统中喜欢那些特色不喜欢什么等信息,由于实际的和其它一些原因,新开发的系统刚开始与minix 很象(并且使用了minix 的文件系统)。并且已经成功地将bash(1.08 版)和gcc(1.40 版)移植到了新系统上,而且在过几个月就可以实用了。 最后,Linus 申明他开发的操作系统没有使用一行minix 的源代码;而且由于使用了386 的任务切换特性,所以该操作系统不好移植(没有可移植性),并且只能使用AT 硬盘。对于Linux 的移植性问题,Linus 当时并没有考虑。但是目前Linux 几乎可以运行在任何一种硬件体系结构上。 到了1991 年的10 月5 日,Linus 在comp.os.minix 新闻组上发布消息,正式向外宣布Linux 内核系统的诞生(Free minix-like kernel sources for 386-AT)。这段消息可以称为Linux 的诞生宣言,并且一直广为流传。因此10 月5 日对Linux 社区来说是一个特殊的日子,许多后来Linux 的新版本发布时都选择了这个日子。所以RedHat 公司选择这个日子发布它的新系统也不是偶然的。 Linux 名称的来由 在Linus 的自传《Just for Fun》一书中,Linus 解释说:"坦白地说,我从来没有想到过要用Linux 这个名称发布这个操作系统,因为这个名字有些太自负了。而我为最终发布版准备的是什么名字呢?Freax。实际上,内核代码中某些早期的Makefile - 用于描述如何编译源代码的文件 - 文件中就已经包含有"Freax"这个名字了,大约存在了半年左右。但其实这也没什么关系,在当时还不需要一个名字,因为我还没有向任何人发布过内核代码。而Ari Lemke,他坚持要用自己的方式将内核代码放到ftp 站点上,并且非常不喜欢Freax 这个名字。他坚持要用现在这个名字(Linux),我承认当时我并没有跟他多争论。但这都是他取的名字。所以我可以光明正大地说我并不自负,或者部分坦白地说我并没有本位主义思想。但我想好吧,这也是个好名字,而且以后为这事我总能说服别人,就象我现在做的这样。"-- Linus Torvalds《Just for fun》第84-88 页。 通过上述说明,我们可以对上述Linux 的五大支柱归纳如下: www.6park.com 以下是最常见的一些Linux系统:(模样都差不多,因为核心都是一样的) Ubuntu openSUSE Fedora Freespire Linux Mint PCLinuxOS Mandriva Debian Dreamlinux Damn Small Linux FreeBSD CentOS Slackware MEPIS Puppy Linux Gentoo Zenwalk Knoppix Arch Slax Sidux Vector Linux gOS ForeSight Xandros OpenSolaris Scientific Linux 当然不要忘了我们自己的linux - 红旗linux | |
所有跟贴:
加跟贴(积极回贴支持发贴的朋友,才能欣赏到更多精品好贴!)
|