Linux发展史

日期:2016-10-12

 Bell,MIT与GE的『Multics』系统

    早期的计算机还很不普遍,除非是军事或者高科技用途,或者学术单位的学术研究,否则真的很难接触到。而且计算机架构很难使用。那个时候,程序设计者必须先将程序相关的信息在读卡纸上面打洞然后将读卡纸插入卡片阅读机来将信息读入主机中运算。出错之后很麻烦

    好在1960年,麻省理工学院(MIT)发展了所谓的所谓的“兼容分时系统(Compatible Time-Sharing System,CTSS)”,他可以让大型机透过提供数个终端机(terminal)以联机进入主机,来利用主机的资源进行运算工作。架构就像这样:

blob.png

    为了更加强化大型主机的功能,以让主机的资源可以提供更多使用者来利用所以在1965年前后,由贝尔实验室(Bell)、麻省理工学院(MIT)、通用电气公司(GE)共同发起Multics的计划,目的是想让大型主机可以达成提供300个以上的终端机联机使用的目标。 不过,到了1969年前后,计划进度落后,资金也短缺,所以该计划虽然继续在研究,但贝尔实验室还是退出了该计划的研究工作。 (注:Multics有复杂、多数的意思。)

  在认为Multics计划不可能成功之后,贝尔研究室就退出该计划。不过,原本参与Multics计划的人员中,已经从该计划当中获得一些点子, Ken Thompson 就是其中一位!Thompson因为自己的需要,希望开发一个小小的操作系统以提供自己的需求。 在开发时,有一部DEC(Digital Equipment Corporation)公司推出的PDP-7刚好没人使用, 于是他就准备针对这部主机进行操作系统核心程序的撰写。经过四个星期的奋斗,他终于以汇编语言(Assembler)写出了一组核心程序,同时包括一些核心工具程序, 以及一个小小的文件系统。那个系统就是Unix的原型! 当时Thompson将Multics庞大的复杂系统简化了不少,二是同实验室的朋友都戏称这个系统为:Unics。 后来Thompson与Ritchie合作想将Unics改以高阶程序语言来撰写。以C重新改写不编译Unics的核心, 最后正名并发行出Unix的正式版本!

 1977年:重要的Unix分支–BSD的诞生

    由于AT&T对Unix态度开放,而且Unix使用比较高级的C语言编写,理论上具有移植性。所以1973年之后,Unix得以与学术界合作开发。最重要的接触就是与加州伯克莱(Berkeley)大学的合作。

    柏克莱大学的Bill Joy在取得了Unix的核心原始码后,着手修改成适合自己机器的版本, 并且同时增加了很多工具软件与编译程序,最终将它命名为Berkeley Software Distribution (BSD)。这个BSD是Unix很重要的一个分支,Bill Joy也是Unix业者“Sun(升阳)”家公司的创办者! Sun公司即是以BSD发展的核心进行自己的商业Unix版本的发展的。 (后来可以安装在x86硬件架构上面FreeBSD即是BSD改版而来!)

 1979年:重要的System V 架构与版权宣告

  由于Unix的高度可移植性与强大的效能,加上当时并没有版权的纠纷, 所以让很多商业公司开始了Unix操作系统的发展,例如AT&T自家的System V、IBM的AIX以及HP与DEC等公司, 都有推出自家的主机搭配自己的Unix操作系统。

   不过因为AT&T由于商业的考虑,以及在当时现实环境下的思考,于是将想Unix的版权收回去。因此,AT&T在1979年发行的第七版Unix中,特别提到了 『不可对学生提供原始码』的严格限制!同时,也造成Unix业界之间的紧张气氛,并且也引爆了很多的商业纠纷。

  1984年之一:x86架构的Minix操作系统诞生

    由于1979年的版权声明,为避免版权纠纷Andrew Tanenbaum(谭宁邦)教授自己动手写了Minix这个Unix Like的核心程序。谭宁邦1984年开始编写核心程序,到了1986年终于完成。不过,由于Minix需要通过磁盘/磁带购买,并且谭宁邦教授认为Minix主要用于教育用途。所以虽然Minix很受欢迎却无法得到较快发展。

  1984年之二:GNU计划与FSF基金会的成立

    1984年,史托曼开始GNU计划, 这个计划的目的是:建立一个自由、开放的Unix操作系统(Free Unix)。史托曼开始参考Unix上面现有的软件,并依据这些软件的作用开发出功能相同的软件,于是GNU计划逐渐打开知名度。后来史托曼编写了C语言的编译程序,就是现在相当有名的GNU C Compiler(gcc)和Emacs编辑器。在此期间,史托曼成立了自由软件基金会(FSF,Free Software Foundation)。

    到了1985年,为了避免GNU所开发的自由软件被其他人所利用而成为专利软件, 所以他与律师草拟了有名的通用公共许可证(General Public License, GPL), 并且称呼他为copyleft(相对于专利软件的copyright!)。

  Torvalds的Linux发展

    Linus Torvalds(托瓦兹, 1969年出生)的外祖父是赫尔辛基大学的统计学家, 他从小就接触微计算机,并学习了汇编语言。1988年,托瓦兹进入赫尔辛基大学,接触到了Unix系统。后来他购买了Minix系统,并在386平台上实现了多任务测试:

blob.png

    托瓦兹编写了能在386平台上运行的核心程序,并发布了出来,命名为Linux。后来,通过对Linux的修改,使其能够兼容Unix。自此,Linux正式诞生,并通过广大黑客的共同努力获得飞速发展。

  

  

  

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

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

相关推荐

  • 逻辑卷

    LVM是逻辑卷管理(Logical Volume Manager)的简称,它是建立在物理存储设备之上的一个抽象层,允许你生成逻辑存储卷,与直接使用物理存储在管理上相比,提供了更好灵活性。       LVM将存储虚拟化,使用逻辑卷,你不会受限于物理磁盘的大小,另外,与硬件相关的存储设置被其隐藏,你可以不用停止应用或卸载…

    Linux干货 2016-09-01
  • 数组的基本应用

                                   数组 变量:存储单个元素的内存空间v 数组:存储多个元素的连续的内存空间,相当于多个变量的集合。v 数组名和索引 索引:编号从0…

    Linux干货 2016-08-24
  • 压缩工具

     压缩和解压缩工具和bash脚本编程      压缩比        目的:时间换空间        cpu的时间—>磁盘空间        compress/uncompress.…

    Linux干货 2016-12-31
  • shell脚本编程之变量

    一、创建shell脚本文件   创建shell脚本时,必须在第一行指定要使用的shell。格式为:   #!/bin/bash   通常在shell脚本中,#代表注释行,即不被执行的行,而第一行“#!”则是表示用哪个shell来执行脚本。   实例:   让我们来执行一下这个脚本:   上面的结果显…

    Linux干货 2016-02-14
  • 初识linux文件管理

    初识linux文件管理 1.文件系统与目录结构 文件系统从根目录 下开始,用“/”。 以. 开头的文件为隐藏文件,路径分隔用/表示。文件系统的层级结构是LSB(linux standard base),遵循文件系统层级标准(FHS ) 文件命名规则:   文件名最长255个字节,包括路径名在内共4095个字节  &nb…

    2017-02-18
  • N25_第六周作业

    1、复制/etc/rc.d/rc.sysinit文件至tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; :%s@^[[:space:]]\+@#&@g(CentOS7下并未看到这个文件) 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符;…

    Linux干货 2017-02-15