Linux发展史

Linux 操作系统是UNIX操作系统的一种克隆系统。它诞生于1991年的10月5日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并经过全世界各地计算机爱好者的共同努力下,现已成为今天世界上使用最多的一种UNIX类操作系统,并且使用人数还在迅猛增长。下文简要介绍了Linux发展史。

1969年,美国贝尔实验室的Ken.Thompson和Dennis Ritchie在DEC PDP-7小型计算机上开发出一个分时操作系统-UNIX操作系统。当时Ken Thompson 为了能在闲置不用的PDP-7 计算机上运行他非常喜欢的星际旅行(Space travel)游戏,在1969年他花了一个月时间开发出了unix 操作系统的原型。当时使用的是BCPL 语言(基本组合编程语言),后经Dennis Ritchie 于1972 年用移植性很强的C语言进行了改写,使得UNIX系统在大专院校得到了推广。最开始Unix的原名是Unics,后来改名为Unix。

1979年,AT&T宣布了Unix的商业化计划,使软件业成为一种版权专有式的产业,围绕程序开发的那种创新活动被局限在某些骨干企业的小圈子里,源码程序视为核心"商业机密"。这种做法,一方面产生了大批的商业软件,极大的推动了软件业的发展,诞生了一批软件巨人;另一方面,由于封闭式的开发模式,也阻碍了软件业的进一步深化和提高。由此,人们为商业软件付出了巨大的财力。

1984年,Richard Stallman面对程序开发的封闭模式,发起一项国际性的源代码开放的GNU计划,力图实现开源的梦想。他为保护源代码开放的程序库不会再度受到商业性的封闭式利用,制定GPL条款。

1985年,Richard Stallman成立了一个自有软件基金会(Free Software Foundation-FSF),目的是执行GNU计划,开发更多的自由软件,实现免费获取、随意使用、再修改和开发。

1987年,荷兰Amsterdam 的Vrije大学教授Andrew S. Tanenbaum(AST)开发出了MINIX 系统,主要用于学生学习操作系统原理。当时该操作系统在大学使用是免费的。后来MINIX 也开始有了版权,需要购买才能得到源代码。

1989年,他制定了《GNU通用公共协议证书》,即GPL条款正式面世。

1991年,由于替代Unix内核的HURD仍只能在实验室等小范围内适用,所以最终HURD自身的开发过于严谨,扩展性不强,没用获得市场认可。Andrew S.Tanenbaum的GNU计划已经开发出了许多工具软件。最受期盼的GNU C编译器已经出现,但还没有开发出免费的GNU操作系统。

1991年8月Linus Benedict Torvalds宣布Linux项目:FREAX系统发布,即后来的Linux操作系统。他成功移植GNU 的软件到该系统上(GNU gcc、bash、gdb 等),同时也是一款免费、实用性很强的系统。

1991 年的10 月5 日,Linus 在comp.os.minix 新闻组上发布消息,正式向外宣布Linux 内核系统的诞生(Free minix-like kernel sources for 386-AT)。这段消息可以称为Linux 的诞生宣言,并且一直广为流传。因此10月5日对Linux 社区来说是一个特殊的日子,许多后来Linux 的新版本发布时都选择了这个日子。所以RedHat 公司选择这个日子发布它的新系统也不是偶然的。

Richard Stallman博士后来要求Linus Benedict Torvalds将Linux系统改名为GNU/Linux,它的开源和免费使得世界更多的人和公司使用他们的操作系统。

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

(1)
galwaygalway
上一篇 2016-10-17 08:35
下一篇 2016-10-17 08:35

相关推荐

  • 优秀程序员的十个习惯

    在这个世界上,有数百万的人热衷于软件开发,他们有很多名字,如:软件工程师(Software Engineer),程序员(Programmer),编码人(Coder),开发人员(Developer)。经过一段时间后,这些人也许能够成为一个优秀的编码人员,他们会非常熟悉如何用计算机语言来完成自己的工作。但是,如果你要成为一个优秀的程序员,你还可以需要有几件事你需…

    Linux干货 2015-04-01
  • CentOS7中nmcli网络管理及使用详解

    一、网络接口配置工具    在CentOS7系统中,强烈推荐使用nmcli管理网卡。下面记录的是nmcli的使用详解。    网络接口配置工具NetworkManager(简称为nmcli),该命令的作用是:可以查询网络连接的状态,也可以用来管理网络(设置系统每个网卡的特性)。该命令如何使用呢,其实可以用"n…

    Linux干货 2016-09-11
  • CollabNetSubversionEdge服务搭建

    准备目录并设置权限 [root@localhost ~]# mkdir /var/svn [root@localhost ~]# chown bohui:bohui /var/svn/ [root@localhost ~]# chmod 700 /v…

    Linux干货 2015-10-18
  • 马哥教育网络班22期+第九周课程练习

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别统计这两类用户的个数;通过字符串比较来实现; #!/bin/bash declare -i sum1=0 declare -i sum2=0 shells=$(cat /etc/p…

    Linux干货 2016-11-28
  • LAMP—Apache编译安装

    一、前言:   httpd-2.2与 httpd-2.4版本相比增加了许多新特性:    1、MPM支持运行时装载    2、支持event    3、支持异步读写    4、支持每模块每目录使用不同的日志级别    5、每请求配置<IF&gt…

    Linux干货 2015-06-15
  • linux软件包管理(开始上正菜了)

    linux程序包管理:     API:数据接口     ABI:应用程序二进制接口        库级别的虚拟化:             linux:wine    …

    Linux干货 2017-03-07