Unix发展史
简述
了解过去,我们才能知其然,更知所以然。总结过去,我们才会知道明天该何去何从。在时间的滚轮中,许许多多的东西就像流星一样一闪而逝,而有些东西却能经受着时间的考验散发着经久的魅力,让人津津乐道、流传至今。要知道明天怎么去选择、怎么去做,不是盲目地跟从今天各种各样琳琅满目前沿技术,而应该是去 - 认认真真地了解和回顾历史。
提到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发展史的更多相关文章
- UNIX发展史(BSD,GNU,linux)(转)
转自 UNIX发展史(BSD,GNU,linux) 这篇文章写的非常好,在这里转一下. 先前的一個理想 UNIX 系统自 1969 年 Ken ThompsonKen Thompson 与 Denni ...
- UNIX发展史(BSD,GNU,linux)
先前的一個理想 UNIX 系统自 1969 年 Ken Thompson 与 Dennis Ritchie 在美国贝尔电话实验室(Bell Telephone Laboratories)发展出雏形至今 ...
- 【历史】- UNIX发展史(BSD,GNU,linux)
先前的一個理想 UNIX 系统自 1969 年 Ken Thompson 与 Dennis Ritchie 在美国贝尔电话实验室(Bell Telephone Laboratories)发展出雏形至今 ...
- UNIX发展史简介
1965年贝尔实验室(Bell Labs).通用电气(General Electric)和麻省理工学院(MIT)欲共同打造MULTICS(Multiplexed Information and Com ...
- 【Linux】一步一步学Linux——Unix发展史(02)
目录 00. 目录 01. 请参考Unix传奇 02. 03. 00. 目录 @ 本博客后面会更新 01. 请参考Unix传奇 链接: https://coolshell.cn/articles/23 ...
- Linux学习--第一天--Unix 、 Linux 发展史,Linux应用领域
UNIX发展史 肯·汤姆森开发出linux. 肯·汤姆森的同事丹尼斯·里奇在1971年开发了C语言. 操作系统 公司 硬件平台 AIX IBM PowerPC HP-UX HP PA-RISC Sol ...
- Day3---------Linux操作系统
---恢复内容开始--- 网络基础和DOS命令 一.网络分类 1.地理位置 1).局域网(LAN) 2).城域网(MAN) 3).广域网(WAN) 2.传输介质 1).有线网 2).光纤网 3).无线 ...
- Linux基础学习(1)--Linux系统简介
第一章——Linux系统简介 1.UNIX和Linux发展史: 1.1 unix发展史: (1)1965年,美国麻省理工学院(MIT).通用电气公司(GE)及AT&T的贝尔实验室联合开发Mul ...
- Linux速通01 操作系统安装及简介
操作系统 # a)操作系统的定义:操作系统是一个用来协调.管理和控制计算机硬件和软件资源的系统程序,它位于硬件和应用程序之间. # 操作系统分为 系统调用接口 和 系统内核 # b)操作系统内核的定义 ...
随机推荐
- POJ 1883 排序 ( 水 + next_permutation )
链接:传送门 题意:略 思路:next_permutation(),水,但是要注意一点的是如果是最后一个排列next_permutation会返回第一个排列并结束,所以如果到了最后一个排列还不是第k个 ...
- BZOJ 2141 排队 (三维偏序CDQ+树状数组)
题目大意:略 洛谷传送门 和 [CQOI2015]动态逆序对 这道题一样的思路 一开始的序列视为$n$次插入操作 把每次交换操作看成四次操作,删除$x$,删除$y$,加入$x$,加入$y$ 把每次操作 ...
- [学习笔记] CS131 Computer Vision: Foundations and Applications:Lecture 1 课程介绍
课程大纲:http://vision.stanford.edu/teaching/cs131_fall1718/syllabus.html 课程定位: 课程交叉: what is (computer) ...
- 解决tpcc_load 报错 error while loading shared libraries: libmysqlclient.so.20
在刚开始导入tpcc数据仓库时,可能会遇到 error while loading shared libraries: libmysqlclient.so.20这个错误,找不到库文件. 但是,通过fi ...
- Linux5355端口被0.0.0.0监听
Linux后台有个systemd-resolv进程,占用5355等端口 博主在一次网络安全加固行动中,netstat -anp发现Linux后台有一个被0.0.0.0监听的端口,5355,显示被sys ...
- 洛谷 P1556 幸福的路
P1556 幸福的路 题目描述 每天,John都要为了农场里N(1≤N≤10)头牛的健康和幸福四处奔波. 每头牛的位置可以描述为一个二维坐标,John从坐标原点(0,0)出发.为了使路径更有趣,Joh ...
- [AngularJS]Chapter 4 AngularJS程序案例分析
前边讲的都是基础.本章看看他们怎么合作的. 我们要建一个程序.一次一步.章末结束 [这个程序] GutHub是一个简单的菜谱管理程序.功能是存好吃的的菜谱并提供步骤.这个程序包含: 两列布局 左边是导 ...
- 各种List、Map、Set的比較
前言:Java中用不同的数据结构(哈希表/动态数组/平衡树/链表)实现了不同的集合接口(List/Map/Set).大多数情况下,集合类被用于不须要线程安全地环境,所以后来的集合实现都没有再採用同步以 ...
- android 推断手机是否支持前置摄像头
话不多说 直接上代码, @SuppressLint("NewApi") public static boolean isSupportFrontCamera() { if (!ha ...
- 归并排序(Python)
一.采用分治策略:将原问题划分成n个规模较小的但结构和原问题相同的子问题,递归解决这些子问题后合并各个结果从而得到原问题的解. 二.分治策略的步骤: 分解:将原问题分解成一系列子问题 解决:子问题粒度 ...