Linux的发展历史历程是怎样的
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux的发展历史历程是怎样的相关的知识,希望对你有一定的参考价值。
说起Linux的诞生,不得不提Unix,如果没有Unix就不会有Linux,那么Unix和Linux到底有什么关系呢? 我们通过一张按照时间顺序排列的表格,快速浏览下Unix的发展历程以及Linux的诞生。
Linux的历史与GNU密切相关。GNU项目始于1983年,致力于开发一个免费的、完整的类unix操作系统,包括软件开发工具和各种应用程序。到1991年Linux内核发布时,GNU已经几乎完成了除系统内核之外的各种必备软件的开发。在Linus Torvalds和其他开发人员的努力下,GNU组件可以运行在Linux内核之上。整个内核基于GNU通用公共许可证,它是GPL (GNU通用公共许可证),但是Linux内核不是GNU项目的一部分。1994年3月,Linux 1.0版正式发布,Marc Ewing创建了Red Hat软件,成为最著名的Linux发行商之一。
严格地说,Linux这个词本身只指Linux内核,但实际上人们已经习惯使用Linux来描述整个基于Linux的内核,并使用GNU工程工具和应用程序(也称为GNU/)。Linux)。基于这些组件的Linux软件称为Linux发行版。通常,Linux发行版包含大量软件,如软件开发工具、数据库、web服务器(如Apache)、X Window、桌面环境(如GNOME和KDE)、办公套件(如OpenOffice.org)等。
在1991年到1995年之间,Linux从概念版的0.1内核原型发展成为在性能和特性上具有可比性的专用Unix操作系统,并在一些重要的统计数据上击败了Unix,比如连续正常的营业时间。他们中的大多数。1995年,Linux找到了自己的杀手级应用程序,开放源码web服务器Apache。与Linux一样,Apache也非常稳定和高效。不久,运行Apache的Linux机器成为全球ISP平台的首选。大约60%的站点使用Apache,轻松击败了其他两个主要的专有竞争对手。今天的LAMP (Linux、Apache、mysql、php)已经成为构建Web服务器的首选。
参考技术A Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。它除了在服务器操作系统方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。使用者不仅可以直观地获取该操作系统的实现机制,而且可以根据自身的需要来修改完善这个操作系统,使其最大化地适应用户的需要。Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux操作系统不仅仅是被网络运维人员当作服务器使用,Linux既可以当作服务器,又可以当作网络防火墙是Linux的
一大亮点。
Linux与其他操作系统相比 ,具有开放源码、没有版权、技术社区用户多等特点
,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议栈
,经过适当的配置就可实现路由器的功能。这些特点使得Linux成为开发路由交换设备的理想开发平台。 参考技术B 早在Linux出现之前的二十年(1970年代),就有一个相当稳定而成熟的操作系统了,那就是Linux的前身Unix。
linux的核心是由Linus Torvalds(拖瓦尔兹,莱纳斯)在1991年时候开发出来的,放在网络上给大家提供下载,后来大家感觉此物好用而精简。后来相关技术人员就去下载研究它了。具体的时间线网上都可查到的,关于其知识介绍看看下《Linux就该这么学》。 参考技术C 在1981 年,IBM 公司推出了享誉全球的微型计算机IBM PC。在1981-1991 年间,MS-DOS 操作系统一直是微型计算机操作系统的主宰。此时计算机硬件价格虽然逐年下降,但软件价格仍然居高不下 【a】。
当时Apple 的MACs 操作系统可以说是性能最好的,但是其天价使得没人能够轻易靠近 【b】。
当时的另一个计算机技术阵营就是UNIX 世界。但是UNIX 操作系统就不仅是价格昂贵的问题 了。为了寻求高利润率,UNIX 经销商们把价格抬得极高,PC 小用户根本不能靠近它。曾经一度收到Bell Labs许可而能在大学中用于教学的UNIX 源代码也一直被小心地守卫着不许公开 【c】。
对于广大的PC 用户,软件行业的大型供应商们始终没有给出有效的解决这个问题的手段。
正在此时,出现了MINIX 操作系统 【d】,并且有一本描述其设计实现原理的书 同时发行。由于AST的这本书写的非常详细,并且叙述得有条有理,于是几乎全世界的计算机爱好者都开始看这本书,以期能理解操作系统的工作原理。
其中也包括Linux 系统的创始者Linus Benedict Torvalds。当时(1991 年),Linus Benedict Torvalds 是赫尔辛基大学计算机科学系的二年级学生,也是一个自学的计算机hacker。这个21岁的芬兰年轻人喜欢鼓捣他的计算机,测试计算机的性能和限制。但当时他所缺乏的就是一个专业级的操作系统。
在同一年间,GNU 计划已经开发出了许多工具软件。其中最受期盼的GNU C 编译器已经出现,但还没有开发出免费的GNU 操作系统。 即使是教学使用的MINIX 操作系统也开始有了版权,需要购买才能得到源代码。虽然GNU 的操作系统HURD一直在开发之中【e】,但在当时看来不能在几年内完成。
(已经有了【a-e】,但是还没有一个os)
为了能更好地学习计算机知识(或许也只是为了兴趣),Linus 使用圣诞节的压岁钱和贷款购买了一台386 兼容电脑 ,并从美国邮购了一套MINIX 系统软件 。就在等待MINIX 软件期间,Linus 认真学习了有关Intel 80386 的硬件知识。为了能通过Modem 拨号连接到学校的主机上,他使用汇编语言并利用80386 CPU的多任务特性编制出一个终端仿真程序。此后为了将自己一台老式电脑上的软件复制到新电脑上,他还为软盘驱动器、键盘等硬件设备编制出相应的驱动程序。(他编写了一些os相关的程序)
通过编程实践,并在学习过程中认识到MINIX 系统的诸多限制(MINIX 虽然很好,但只是一个用于教学目的简单操作系统,而不是一个强有力的实用操作系统),而且通过上述实践Linus 已经有了一些类似于操作系统硬件设备驱动程序的代码,于是他开始有了编制一个新操作系统的想法。(一个影响深远的想法诞生了)
从1991年4月份起(let take this time as thestart),他通过修改终端仿真程序和硬件驱动程序,开始编制起自己的操作系统来。开始,他的目的很简单,只是为了学习Intel 386 体系结构保护模式运行方式下的编程技术。但后来Linux发展却完全改变了初衷。(起始的时间)
根据Linus 在comp.os.minix 新闻组上发布的消息,我们可以知道他逐步从学MINIX 系统阶段发展到开发自己的Linux 系统的过程。(具体了解的来源)
Linus第1次向comp.os.minix 投递消息是在1991年3月29日。所发帖子的题目是“gcc on minix-386doesn't optimize”,是有关gcc 编译器在MINIX-386 系统上运行优化的问题(由此可知,Linus在1991 年初期就已经开始深入究了MINIX 系统,并在这段时间有了改进MINIX 操作系统的思想。在进一步学习MINIX 系统之后,这个想法逐步演变成想重新设计一个基于Intel 80386 体系结构的新操作系统的构思。(思想的转变)
他在回答有人提出MINIX 上的一个问题时,所说的第一句话就是“阅读源代码”(“RTFSC (Read the F**ing Source Code :-)”)。他认为答案就在源程序中。这也说明了对于学习系统软件来说,我们不光需要懂得系统的工作基本原理,还需要结合实际系统,学习实际系统的实现方法。因为理论毕竟是理论,其中省略了许多枝节,而这些枝节问题虽然没有太多的理论含量,但却是一个系统必要的组成部分,就象麻雀身上的一根羽毛。(实践的重要意义)
(以下是按照时间顺序进行介绍)
从1991 年4 月 份开始,Linus 几乎花费了全部时间研究MINIX-386 系统(Hacking 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 系统的开发,并且已经想到要实现与POSIX 兼容的问题了。
在Linus 另一个发布的消息中(1991 年8 月25日 comp.os.minix),他向所有MINIX 用户询问“Whatwould you like to see in minix?”(“你最想在MINIX系统中见到什么?”),在该消息中他首次透露出正在开发一个(免费的)386(486)操作系统,并且说只是兴趣而已,代码不会很大,也不会象GNU 的那样专业。希望大家反馈一些对于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发展历程
Linux发展历程
Multics:
早期没有操作系统的前提下我们的计算机程序都会在硬件上直接运行,表现为一个个的作业(job1$$$$$job2$$$$$job3)job1运行完了用分隔符隔开运行下一个job2,这种机制叫做批处理,这时候其实远远无法发挥计算机的性能的,在这个时候有三个组织:通用电气公司GE、美国的电报电话公司ATMT的Bell实验室、麻省理工大学的人工智能实验室MIT,三个组织联合起来研究一个要比批处理系统功能更强大的多任务多用户的系统,功能很复杂技术很先进,当初都是使用汇编语言开发的,叫做Multics,后来失去目标,迷失方向,2个组织先后退出,首先是GE,然后是Bell实验室,只留下MIT;
Unix:
Bell实验室有一个叫做Ken的人当时为Multics系统上研发出了一个游戏叫做Space Travel(太空旅行),只能运行在Multics上,由于Bell实验室退出了研究,因此Ken无法再免费使用Multics提供的计算机能力,Ken就向实验室申请一台PDP-11计算机被拒绝,某一天在实验室墙角发现了一台没人用的PDP-7主机,如获至宝开始研究他的Space Travel,Space Travel是个应用程序,应用程序要运行必须依赖于内核Kernel,由于不能使用Multics无奈只好自己仿照Multics开发出一个最简单的,能够运行他的太空旅行游戏的操作系统,叫做Unics,只是后来才改名为:Unix;
C:
由于当时是使用汇编语言写的,性能不错,但是程序移植起来比较困难,为了解决这个问题,Ken的一个同事叫Dennis Ritchie改进了当时脚本语言BPBL,给它引进了变量指针等,使B语言摇身一变成为了一种编译性语言C,而后两个人在C语言的基础上重写了整个Unix(当时高级语言的执行效率要比汇编语言至少低30%);
BSD:
美国加州大学伯克利分校有一位学生Bill Joy(当时学校已经获得unix源代码的研究)成立了一个团体BSRG的小组,研究Unix改进新功能修复BUG等等,后来Ken在学校任教也加入了研究。重新取的名字叫做BSD:Berkeley System Distribution;Bell实验室的Unix就叫System,后面接版本号12345;
CP/M:
Gary Kildall创始人:Control Program/Monitor(控制程序或监控程序)
DOS:
美国西雅图一个小公司Microsoft成立了,一共有三个人:比尔盖茨、保罗艾伦、罗伯特,刚成立的时候卖Basic编译器(当时的一种脚本语言,类似B语言),后来包装发行卖Unix,保罗艾伦的一个同学花了4个星期写出来一个操作系统,被比尔盖茨发现商机买断与IBM沃森合作装在IBM小型机上卖License,取名DOS(Disk Operating System磁盘操作系统)
Mac:
乔布斯jobs非常崇拜计算机之父图灵,图灵好像是个同性恋,在当时社会是不会被接受的,在监狱咬了一口涂了氰化钾的苹果自杀了,乔布斯成立的公司就叫苹果,还是咬了一口的,当时出售Apple one,操作系统是Unix,Xerox(当时生产复印机的公司)有个有名的实验室叫PARK,第一个生产鼠标和图形化的操作系统,卖给了乔布斯,Apple 2出现的时候图形界面也就出来了;
Windows:
比尔盖茨向乔布斯骗走一份图形操作系统源码回去之后加紧研究,Windows就出来了,后来vms的基础上结合Windows重新写出了新的系统叫Windows NT(内核不是DOS了,是VMS),而后的Windows 2000 xp 2003都是在Windows NT的基础上升级出来的。
Minix:
荷兰的一所大学有个教授叫Andrew一直在使用Unix进行教学,但是Unix产生版权问题之后就不能用了,就自己动手仿照Unix写了一个操作系统叫Minix(意思就是小的Unix,只有4000多行代码)
linux:
赫尔辛基大学Linus为Andrew教授的Minix写了很多驱动程序要求加进去,当时Minix是安装在Andrew教授自己的计算机上的移植很费劲,就有好多学生写了很多驱动程序,Linus就是其中一个。决定自己写一个并把它公布在电子公告栏上,正是这个思想推动了Linux的发展。
GNU:
美国麻省理工学院有一个著名的教授Richard Stallman举起了自由的大旗Freedom, 他认为程序是全人类的思想的结晶,而不应该为某一个流氓公司所独有,自由组织运动 GNU:GNU is Not Unix,宣言GPL:General Public License(通用公共许可证),Emacs:文本编辑器 gcc:GNU C Complier编译器 bash命令行shell
以上是关于Linux的发展历史历程是怎样的的主要内容,如果未能解决你的问题,请参考以下文章