Linux发展史

前言

    Linux属于类Unix中的一个当下比较流行的操作系统,占领了服务器大部分江山。作为一个专业复杂的操作系统,了解其发展过程是很有必要的。如果要讲linux的历史,肯定是从三个团体开发Multics系统说起,贝尔实验室离开Multics项目后,Tompson和他的同事一起创造了unix,而在unix的各种分支中BSD则是迅速发展。因为后来长达10年的unix版权之争。以及386bsd发布时间的推迟,linus在Minix系统的基础下,创造了linux系统,并遵循GUN的gpl协定。

Multics

    1964年,由贝尔实验室,麻省理工学院及美国通用电气公司所共同参与研发,被设计在GE-645大型主机上。通过unix,几乎所有现在操作系统都深受Multics的影响。

    19669年,因Multics项目的工作过于缓慢,整个项目过于庞大,糅合了太多特性,最终澡裁撤。


UNIX

    Thompson在加入此计划不久,计划就终止了,但因为机器仍然保留在贝尔实验室,他继续在GE-645上开发软件,Thompson在GE-645上写出了一个仿真器,可以让一个文件系统与内存分页机制运作起来,他编写了一个Space Travel的游戏,但游戏在GECOS系统上面的表现还不如Multics系统,汤普森想要找到一个更好的解决方案,于是向贝尔实验室请求购买一台DEC-10大型机,以从事新系统的开发,大约需要12万美元。Thompson的请求被驳回,因为贝尔实验室刚刚放弃一个操作系统项目,不会再对花钱研制操作系统感兴趣。但是Thompson发现周围的部分有一台老旧且很少被使用的PDP-7小型机,同样可以达到目的。在丹尼斯 里奇的帮助下,汤普森用PDP-7的汇编语言重写了这个游戏,并使其在PDP-7上运行起来。这次经历加上Multics项目的经验,促使汤普森开始在PDP-7上研究如何开发系统。

    1969年,肯 汤普森提议在PDP-7上开发一个新的阶层式操作系统的计划,于是开发了一个壳层(shell)与一些驱动程序做出一个操作系统的雏形。在团队的合作下,Multics的许多功能都被采纳,重新实作,最终做出了一个分时多任务操作系统,成为第一个UNIX。因为Multics来自"MULTiplexed Information and Computing system"的缩写,在1970年,那部PDP-7却只能支持两个用户,彼得 纽曼戏称他的系统其实是“UNiplexed Information and Computer System”缩写为"UNICS",当第二版在PDP-11上运行的UNIX真正可以提供多人同时使用时,布莱恩 柯林汉提议讲它的名称改为UNIX。

    第一版是用PDP-7汇编语言编写的,一些应用是由B语言和汇编语言混合编写的,1971年汤普森和里奇共同发明了C语言,1973年,他们用C语言重写了UNIX,形成第三版UNIX。用C语言编写的UNIX代码简介紧凑,易读,易移植,易修改。为此后UNIX的发展奠定了坚实的基础。1974年,UNIX第一次出现在贝尔实验室以外。


BSD:Berkeley software Distribution


    1974年,第一个伯克利的UNIX系统被安装在PDP-11机器上,计算机科学系而后将其用作扩展研究。

    1977年,伯克利的研究生Bill Joy将程序整理到磁带上作为first Berkeley Software Distribution(1BSD)发行

    1978年,2BSD发布,比尔 乔伊写了两个新程序vi编辑器,以及C shell。

    1992年,AT&TZ的USL正式对BSD提起诉讼,这导致Net/2发布的中止。由于最后的判决悬而未决,这桩法律诉讼将BSD后裔的开发,特别是自由软件延迟了两年,这导致没有法律问题的linux内核获得极大的支持。


GUN


     在提linux之前,GUN是必须得提起的。

     GUN的创始人Richard stallman 1971年进入哈弗大学学习,同时受聘于麻省理工学院人工智能实验室,工作在一个只使用自由软件的小组中,成为一名职业黑客,stallman在AI是一名典型的黑客,是整个黑客文化的一份子。然后进入八十年代,黑客社群在软件工业商业化的强大压力下,日渐土崩瓦解,甚至连AI实验室也成立了symbolic公司,试图以专利软件来取代实验室中黑客文化的产物—可自由流通的软件。stallman对此感到气愤与无奈,对symbolic进行了一段时间的抗争。后于1983年9月27日发出最初的声明,1984年开始构建GUN工程

    1985年发表了著名的GUN宣言,正式宣布要开始进行一项宏伟的计划,创造一套完全自由的向下兼容unix的GUN操作系统

    1989年,他与一群律师起草了广为使用的GUN通用公共协议证书,创造了“copylift”的概念。同时,GUN计划中除了最关键的Hurd内核之外,其他绝大多数软件已经完成。


Minix


    因为AT&T的政策改变,在Version 7 Unix推出之后,发布新的使用许可协议,将UNIX源代码私有化,在大学中不再能使用UNIX源代码。荷兰阿姆斯特丹自由大学计算机科学系的教授,塔能鲍姆为了能在课堂上教授学生操作系统运作的实务细节,决定在不使用任何AT&T的源代码前提下,自行开发与UNIX兼容的操作系统,以避免版权上的争议。他以小型UNIX(mini-UNIX)之意,将它称为MINIX。当时,MINIX不允许被用作任何商业使用。

Linux

    1991年,Linus Torvalds在赫尔辛基大学上学时,对操作系统很好奇。他对MINIX只允许在教育上使用很不满。于是他便开始在MINIX上开发Linux内核,为MINIX写的软件也可以在Linux内核上使用。后来使用GUN软件代替MINIX的软件,因为使用从GUN系统来的源代码可以自由使用,这对Linux的发展是有益的。为了让Linux可以在商业上使用,林纳斯·托瓦兹决定更改他原来的协议(这个协议会限制商业使用),以GNU GPL协议来代替。之后许多开发者致力融合GNU元素到Linux中,做出一个有完整功能的、自由的操作系统。


    

 

原创文章,作者:M21-陕西-李贤,如若转载,请注明出处:http://www.178linux.com/50943

(0)
M21-陕西-李贤M21-陕西-李贤
上一篇 2016-10-14
下一篇 2016-10-14

相关推荐

  • N25第九周作业

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash declare -a usersh nologin=0 login=0 usersh=($(cut -d’:’ -f7 /etc/passwd)) ##数组赋值时需…

    Linux干货 2017-03-04
  • 马哥教育网络班22期第一周课程练习

    1.描述计算机的组成及其功能     计算机的组成部分分为硬件部分与软件部分         硬件部分: I/O设备 + 运算器 + 存储器 + 控制器       &n…

    Linux干货 2016-08-15
  • redis主从复制(4)— client buffer

    1、 client buffer的设计 redis server以单进程的方式处理接收到的请求,而redis完成请求有些工作比较慢,比如网络IO和磁盘IO等比较慢的操作。redis为了提高处理客户端请求的响应时间,做了很多优化。比如网络io和磁盘io是异步完成、使用后台进程完成bgsave和bgrewriteaof工作,在server端为客户提供读buffe…

    Linux干货 2016-03-28
  • N28-第四周:正则表达式练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。
    2、编辑/etc/group文件,添加组hadoop。
    3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。
    4、复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其它用户没有任何访问权限。
    5、修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop。
    6、显示/proc/meminfo文件中以大写或小写S开头的行;用两种方式;
    7、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;
    8、显示/etc/passwd文件中其默认shell为/bin/bash的用户;
    9、找出/etc/passwd文件中的一位数或两位数;
    10、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;
    11、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;
    12、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;
    13、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;

    2017-12-24
  • 一个开发眼中的运维

    在云计算时代,开发和运维的结合变得越来越重要。在DIFF论坛第一期,前新浪SAE运维主管,郑志勇,分享了《一个开发眼中的运维》根据自己从开发人员转型运维之后的心得,谈如何把在开发上的运用抽象思维方式运用到运维领域。 1. 运维不是什么? 运维不是打杂的,运维不是客服,运维也不是服务开发的,但要做好合作。 2. 运维是什么? 运维服务于整个产品,保证架构合理,…

    Linux干货 2015-03-11
  • sed使用方法

      sed编辑器被称作流编辑器(stream editor)。流编辑器在处理数据之前基于预先提供的一组规则来编辑数据流。 一、命令格式   sed options '"地址""编辑命令"' file   常用选项:     -n:静默模式,不显示模式…

    Linux干货 2015-12-28