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 11:41
下一篇 2016-10-14 11:41

相关推荐

  • 系统启动流程

    linux系统启动流程 内核的设计结构单内核:linux(线程–lwp轻量级进程)微内核:windows(支持真正意义上的多线程) 单内核:很多功能驱动都集成在一起 微内核:内核很小,功能单一。模块化 linux为了适应众多用户的不同硬件需求,linux内核在设计上采用模块化设计。可以动态加载模块。核心模块:ko 内核所独有的。共享对象:so 红…

    Linux干货 2016-09-19
  • Linux 系统终端

    Linux系统的主要终端主要包含:控制台终端、控制终端、串口终端、伪终端、虚拟终端。 控制台终端:在Linux 系统中,计算机显示器通常被称为控制台终端(Console)内核将信息送到控制台终端上(/dev/console), 通过与console相关联的虚拟终端将信息显示到屏幕上。再开机过程中屏幕输出的信息,这个屏幕就是Console; 控制终端:键盘,显…

    Linux干货 2016-10-19
  • Linux进程管理

    内核的功能:     进程管理 文件系统 网络功能 内存管理 驱动程序 安全功能等     rocess:运行中的程序的一个副本,是被载入内存的一个指令集合      进程ID(Process ID,PID)号码被用来标记各个进程 UID,GID,和…

    Linux干货 2016-09-12
  • 进程管理

    linux进程管理     内核的功能:进程管理、文件系统、网络管理、驱动程序、安全功能等     Pcrocess:运行中的程序的一个副本,是被载入内存中的一个指令集和         PID:进程…

    Linux干货 2016-09-12
  • 双网卡绑定及单网卡多IP地址实现方法

    Bonding就是将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一IP地址是不可能的。通过bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址。mode=1(active-backup):一个网卡处于活动状态 ,一个处于备份状态,所有流量都在主链路上处理。当活动网卡down掉时,启用备份…

    Linux干货 2016-09-05
  • 数据库的历史及常见基本功能

    数据库的基本知识,MariaDB的基本知识,SQL语句

    2018-01-29