简述

了解过去,我们才能知其然,更知所以然。总结过去,我们才会知道明天该何去何从。在时间的滚轮中,许许多多的东西就像流星一样一闪而逝,而有些东西却能经受着时间的考验散发着经久的魅力,让人津津乐道、流传至今。要知道明天怎么去选择、怎么去做,不是盲目地跟从今天各种各样琳琅满目前沿技术,而应该是去 - 认认真真地了解和回顾历史。

提到Unix的发展史,应该来说Unix在现在主流系统上是一个比较古老的分支,因为60年代中期已经有一个雏形了,而Linux诞生于1991年,Window则问世于1985年,所以说Unix诞生的更早、更为古老。

Unix和Linux用父子关系你比喻应该还是比较合适的 - Unix是父亲,Linux则是儿子。他们之间有一个不可分割的关系,当我们学习完Linux之后,再去学习Unix的时候,就会发现它们之间无论是文件系统、基本命令或管理方式都非常相似,所以,更加利于以后学习Unix操作系统。

在技术更新如此迅速的计算机世界的今天,Unix始终保持它那神圣的光环,它那曲折和令人叹息的历史,以及由它引发的思想变革,对当今计算机文化造成的深远影响,这40多年所产生的人和事,让它成为了一个传奇,不能不让人为之惊叹。

开天辟地

两尊大神

  • Ken Thompson 肯·汤普森(左)
  • Dennis Ritchie 丹尼斯·里奇(右)

C语言之父,UNIX之父

C语言的诞生是现代程序语言革命的起点。今天,C语言依旧在系统编程、嵌入式编程等领域占据着统治地位。C语言就是丹尼斯·里奇开发的。因此,他被称为c语言之父、UNIX之父。

麻省理工大学计算机系的马丁教授评价说:如果说,乔布斯是可视化产品中的国王,那么里奇就是不可见王国中的君主。乔布斯的贡献在于,他如此了解用户的需求和渴求,以至于创造出了让当代人乐不思蜀的科技产品。然而,却是里奇先生为这些产品提供了最核心的部件,人们看不到这些部件,却每天都在使用着。

克尼汉评价道:牛顿说他是站在巨人的肩膀上,如今,我们都站在里奇的肩膀上。

顶级工程师发展到最后的形象,基本和这位一样 - 不修边幅,O(∩_∩)O哈哈~。

Multics计划

1965年,由三家科研机构联合开发Multics工程计划,这三家公司都大名鼎鼎,其中,一家是大家都能够耳熟能详的大学 - 美国麻省理工大学(MIT)、一家则是非常出名的企业 - 通用电气公司(GE)、以及在国际上都非常文明的科研机构 - AT&T的贝尔实验室。其目的是开发一种交互式的具有多道程序处理能力的分时操作系统,但是由于Multics过于复杂,项目进度远远落后于计划(也许项目管理不是很完善~~(>_<)~~),最后,贝尔实验室宣布退出。

Unix萌芽

直到1969年,贝尔实验室的肯·汤普森在DEC PDP-7机器上开发出了Unix系统。起因是由于其在那台机器上玩游戏,运行速度比较慢,按照常人的习惯:一:要么不玩 二:要么直接删掉。但是呢,牛人怎会按照常理出牌,最后发现是操作系统的问题,更牛的是居然决定自己写一个操作系统。

Unix并不像想象中发展那么迅速,因为其实在贝尔实验室发明的,而肯·汤普森是该实验室的一个工程师,当时,贝尔实验室隶属于AT&T,AT&T是一个特殊的公司(类似于中国电信吧),主要业务是电话和电报,所以不包括软件产品,所以Unix的地位就非常尴尬,不能作为软件产品在AT&T进行销售,所以呢,最后也没得到一个很好的推广。

在60年代末,国际上发生了一个重要的事情 - 美苏冷战爆发了,这促进了Unix的发展,当时,美国在做军备竞赛,为了对抗苏联,各个地方的工程师搞了一个实验性的网络 - ARPAnet,最后导致了Internet的诞生,但是ARPAnet有个问题,它使用了NCP协议(Network Control Protocol,即:网络控制协议),这个协议很慢,而且周期性的不稳定,最后这个项目由美国国防部接手以后,发现这个问题,就决定资助开发一个新的协议,这个协议就是目前最为著名的协议 - TCP/IP协议,今天,大家都在上Internet,谁都不敢说不用TCP/IP。但是,当年TCP/IP刚刚出现,并没有得到很好的机会让大众认知和普及,所以美国国防部出面,和AT&T做了一个约定,将TCP/IP捆绑到Unix上面,主要面向的群体是大学,来发售非商业的许可。

Unix发展

在此基础上,1971年,计算机领域又出现了一项非常出名的发明 - C语言的诞生。C语言的诞生是IT行业一个非常标志性的事件。当时肯·汤普森有一个同事叫丹尼斯·里奇,根据B语言开发出一个真正意义上的高级语言,就是C语言。包括后来的Java、PHP等多门语言的诞生,无不受到C语言的影响,而且很多由它演变而来,由于做出了巨大贡献,1983年,这哥俩获得计算机行业一个非常高的奖项 - 图灵奖。Unix和Linux的内核都是由C语言写的,可见C语言的重要性,其实早期室友汇编写的,效率比较差、而且可以执行非常差,C语言则克服了这一障碍,包括不同操作系统上,只需要做稍微的更改即可完美的运行,所以这位Unix的发展打下了很好的基础。基于这样的背景,Unix捆绑了TCP/IP这个可以联网的协议,捆绑了开发的环境C语言,由美国国防部督促AT&T来发行非商业的许可,非商业许可就是象征性的付点钱,但是不修复Bug,也不提供一些商业服务的支持。到了大学以后,有很多这样的需求,结果,由大学把这门技术做了很多的开发、变革、和流行的推广,这直接促进了Unix的普及和发展。

主要发行版本

操作系统 公司 硬件平台
AIX IBM PowerPC
HP-UX HP PA-RISC
Solaris Sun SPARC
Linux Red Hat、Ubuntu、CentOS… IA(Intel、AMD、Cyrix、RISE…)

AIX是运行在PowerPC上的,这是当年一款很牛的CPU,由三家公司(IBM、苹果、摩托罗拉)联合开发。

另一个则是HP的HP-UX,运行在PA-RISC上。

可能很多人对Sun公司不熟悉,如果我说Java的话,那么你想必就清楚了,如今,Sun已经被Oracle收购。

当然,除了这些还有很多其它Unix分支,比如:BSD(Berkeley Software Distribution,伯克利软件套件),苹果公司的Mac OS。。。

更多参考

  • 《鸟哥的Linux私房菜》
  • 《Linux从入门到精通》
  • 《深入理解LINUX内核》
  • 《细说Linux》
  • Unix传奇(上中下)

Unix发展史的更多相关文章

  1. UNIX发展史(BSD,GNU,linux)(转)

    转自 UNIX发展史(BSD,GNU,linux) 这篇文章写的非常好,在这里转一下. 先前的一個理想 UNIX 系统自 1969 年 Ken ThompsonKen Thompson 与 Denni ...

  2. UNIX发展史(BSD,GNU,linux)

    先前的一個理想 UNIX 系统自 1969 年 Ken Thompson 与 Dennis Ritchie 在美国贝尔电话实验室(Bell Telephone Laboratories)发展出雏形至今 ...

  3. 【历史】- UNIX发展史(BSD,GNU,linux)

    先前的一個理想 UNIX 系统自 1969 年 Ken Thompson 与 Dennis Ritchie 在美国贝尔电话实验室(Bell Telephone Laboratories)发展出雏形至今 ...

  4. UNIX发展史简介

    1965年贝尔实验室(Bell Labs).通用电气(General Electric)和麻省理工学院(MIT)欲共同打造MULTICS(Multiplexed Information and Com ...

  5. 【Linux】一步一步学Linux——Unix发展史(02)

    目录 00. 目录 01. 请参考Unix传奇 02. 03. 00. 目录 @ 本博客后面会更新 01. 请参考Unix传奇 链接: https://coolshell.cn/articles/23 ...

  6. Linux学习--第一天--Unix 、 Linux 发展史,Linux应用领域

    UNIX发展史 肯·汤姆森开发出linux. 肯·汤姆森的同事丹尼斯·里奇在1971年开发了C语言. 操作系统 公司 硬件平台 AIX IBM PowerPC HP-UX HP PA-RISC Sol ...

  7. Day3---------Linux操作系统

    ---恢复内容开始--- 网络基础和DOS命令 一.网络分类 1.地理位置 1).局域网(LAN) 2).城域网(MAN) 3).广域网(WAN) 2.传输介质 1).有线网 2).光纤网 3).无线 ...

  8. Linux基础学习(1)--Linux系统简介

    第一章——Linux系统简介 1.UNIX和Linux发展史: 1.1 unix发展史: (1)1965年,美国麻省理工学院(MIT).通用电气公司(GE)及AT&T的贝尔实验室联合开发Mul ...

  9. Linux速通01 操作系统安装及简介

    操作系统 # a)操作系统的定义:操作系统是一个用来协调.管理和控制计算机硬件和软件资源的系统程序,它位于硬件和应用程序之间. # 操作系统分为 系统调用接口 和 系统内核 # b)操作系统内核的定义 ...

随机推荐

  1. JSp获取到当前用户的全部session

    <%@page import="java.util.Enumeration"%> <% for (Enumeration<?> e = session ...

  2. 关于@SuppressWarnings("unchecked")注解

    解释一: 屏蔽某些编译时的警告信息         在强制类型转换的时候编译器会给出警告        加上程序代码        @SuppressWarnings("unchecked& ...

  3. 为什么整个互联网行业都缺前端project师?

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/ ...

  4. Android学习JNI,使用JNI实现字符串加密

    本节学习使用C语言加密字符串,大家都知道使用JAVA实现的加密都能够反编译的,而使用C写的加密是非常难被反编译的.所以我们使用JNI学习怎样使用C实现对字符串的加密. 首先:我们实现一个界面 布局文件 ...

  5. 算法 - 求一个数组的最长递减子序列(C++)

    //************************************************************************************************** ...

  6. myeclipse配置内存

    1.javaee项目假设耗费的内存过大,须要配置内存大小: 下图是配置tomcat结果:Optional program arguments: -Xms512M -Xmx512M -XX:PermSi ...

  7. 133.throw机制 抛出类类型

    #include <iostream> using namespace std; //try尝试执行,抛出throw,throw之后语句不再执行 //catch处理throw的异常 voi ...

  8. CentOS 安装 MySQL8

    @Linux 官网:https://dev.mysql.com/doc/refman/8.0/en/binary-installation.html 个人博客:https://www.xingchen ...

  9. 当一个元素被浮动后,它的display是否会被默认指定为block?

    css 浮动后的元素不论是什么display的都默认是block就是设置inline也是block IE/6出现双边框的原因 出现双边距的条件是当浮动元素的浮动方向和margin的方向一致时才会出现. ...

  10. (转载) Android-Spinner的使用以及两种适配器

    目录视图 摘要视图 订阅 赠书 | 异步2周年,技术图书免费选      程序员8月书讯      项目管理+代码托管+文档协作,开发更流畅 Android-Spinner的使用以及两种适配器 201 ...