Linux发展史

适用对象:本文适合希望开始学习以及想了解Linux的朋友阅读。本文中所有内容仅供参考,不作为科学依据。

一、      Linux的起源

最初的计算机其实是具有单一功能的大型计算器,只能完成指定或者设定好的工作。多数情况下计算机资源是处于空闲状态的,为了不使资源浪费,就需要使计算机能够或者可以进行多种工作。或者能够让多个用户同时进行操作。因此就需要一种程序能够让多个用户操作同一台计算机或者在同一计算机上运行多个任务,这种程序就被称为分时多任务操作系统。20世纪60年代末由贝尔实验室、麻省理工学院、通用电气公司发起分时多任务操作系统的研究开发工作,该系统被称为Multics。由于历时3年未出现明显成果,该项目最终被解散。

1969年的时候,AT&T下属的贝尔实验室中研究员Ken Thompson为了能够在已被废弃的PDP-7机器上运行自己的小游戏,为PDP-7编写了一套平台,并被命名为UNICS。

早期的UNIX是由汇编语言编写,向其它的机器上移植很困难。1971年Dennis Ritchie开发出能在不同平台上使用的编程语言C语言。1973年Thmpson和Ritchie成功地用C语言重写了整个Unics,并命名为UNIX。

1974年UNIX被发布在《美国计算机通信杂志上》,得到全世界计算机爱好者的关注。

1975年,AT&T被反垄断组织调查,UNIX被免费提供给其他组织或机构进行研究学习,掀起了UNIX发展的高潮。

1975年-1976年期间Thmpson到伯克利大学任教,伯克利大学在此期间并启动了自己的UNIX项目即BSD项目,该项目由Thmpson的学生Bill Joy管理。同时,在其他机构中其他基于UNIX的衍生版本也层出不穷。

1983年AT&T在反垄断官司中败诉,其公司被分拆成,贝尔实验室借此摆脱不允许商业化经营Unix的限制,开始向此前研究使用Unix的机构收费,并与BSD陷入长达十年的版权之争。与此同时,微软公司的MS-DOS系统大肆发展,占据计算机操作系统的大部分市场。

1984年,Richard Stallman发表了GNU宣言(the GNU manifesto) [Stallman],目的是开放一个自由、开源的UNIX(Free UNIX),并发起了自由软件基金会(Free Software Foundation)。由于工程量十分浩大,Stallman决定先编写应用程序,如GCC,Emacs等出现。同时,大量的软件开发人员及组织纷纷加入GUN组织。例如:X-Window。

1987年,荷兰阿姆斯特丹大学的Tanenbaum教授为了使学生更好的学习操作系统原理,编写了Minux。到1991年的时候版本已经发展到1.5版本。

1991年芬兰赫尔辛基大学的学生Linus Torvalds在学习Minux的过程中逐渐觉得Minux系统有很多的限制。为了学习Intel 386 体系结构保护模式运行方式下的编程技术,他通过修改终端仿真程序和硬件驱动程序,开始编制起自己的操作系统。并于1991年10月将自己的Linux内核(Linux  v0.01)发布至论坛上。由此,Linux开始进入发展时期。

二、      Linux的发展

最初,Linux只能运行在Intel 386机器上,后经过全世界程序员的参与修改,其可移植性大大提高。1995年的时候,Linux已经可以在Intel、Digital 以及Sun SPARC处理器上运行。

1995年,Apache服务程序的出现了。Apache是开源程序,遵循GPL协议。Linux也遵循GPL协议,两者的结合,更是推动了Linux在服务器领域的发展速度。

1996年,Linux2.0内核发布,并支持多处理器。全球大约350万人在使用Linux,Linux进入实用期。

1997年,电影《泰坦尼克号》上映。在为其制作特效中使用的160台Alpha图形工作站中,有105台采用了Linux操作系统。

1998年,RedHat成立。IBM发布了适用于Linux的文件系统AFS 3.5以及Jikes Java 编辑器和Secure Mailer及DB2测试版。SUN也逐渐开放 了Java协议,并且在UltraSparc上支持Linux操作系统。

1999年,IBM与RedHat达成伙伴,以确保Redhat在IBM机器上正确运行。Oracle、Sun等大批公司投入力量支持Linux,并开发出自己的Linux系统。随着其他机构和个人的进入,基于Linux的各种衍生版层出不穷。

         经过十几年的发展,Linux得到了IBM、HP、Novell、Oracle等诸多厂商的支持,占据了服务器操作系统领域百分之八十以上的市场。

原创文章,作者:jacklei,如若转载,请注明出处:http://www.178linux.com/51035

(0)
jackleijacklei
上一篇 2016-10-14
下一篇 2016-10-14

相关推荐

  • 设计模式 ( 十三 ) 命令模式Command(对象行为型)

    1.概述         在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计,使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活。  例子1:电视机遥控器…

    Linux干货 2015-07-16
  • Nginx 常见配置解析

    结构上: 核心模块:HTTP模块、EVENT模块、MAIL模块。 基础模块:HTTP access模块、HTTP FastCGI模块、HTTP Proxy模块、HTTP Rewrite模块。 第三方模块:HTTP Upstream Request Hash模块。 功能上: Handlers…

    Linux干货 2016-12-05
  • Linux iptables配置应用

                    Linux iptables配置应用 概述:    Linux的防火墙体系主要工作在网络层,只对tcp/ip数据包实施过滤和限制,属于典型的包过滤防火墙(或称为网络层防火墙)。Linux的防火墙体系基于内核编码实现,因…

    系统运维 2016-11-18
  • AWK学习总结

    AWK是一种优良的文本处理工具。其名称得自于它的创始人阿尔佛雷德·艾侯、彼得·温伯格和布莱恩·柯林汉姓氏的首个字母。AWK提供了极其强大的功能:可以进行正则表达式的匹配,样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语言所应具有的几乎所有精美特性。 AWK学习总结 函数rand(): 函数length() 函数int()…

    Linux干货 2016-12-03
  • 文本处理工具sed习题

    1、删除/etc/grub2.cfg文件中所有以空白开头的行行首空白字符 [root@wzc date]# sed -n 's/^[[:space:]]\+//p' /etc/grub2.cfg load_env set default="${next_entry}&q…

    Linux干货 2016-08-12
  • 马哥教育网络班22期+第六周课程练习

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; ]# cp -v  /etc/rc.d/rc.sysinit /tmp/    `/etc/rc.d/rc.sysinit' -> `/tmp/rc.sysinit&…

    Linux干货 2016-10-17