00:01
之前我们也提到了Linux的诞生呢,可以说是起源于李纳斯对于unix这个系统的兴趣,那unix这个操作系统的非常的有名,而且它诞生的也非常的早,可以说他是我们今天所看到的一众操作系统的老祖宗。对我们后续的这些计算机领域的操作系统的发展啊,就非常深刻的影响,一直影响到今天,所以说作为一个程序员,作为一个it从业人员,我们也有必要对unix有所了解,所以接下来我们来讲一讲Linux和unix的渊源。那unix是怎么来的呢?这我们就首先要提到一个非常有名的实验室,叫做。贝尔实验室啊,这块我们应该都听说过啊,贝尔实验室非常的有名,它里边很多发明专利,技术发明,一直可以说是影响到了我们今天的生活啊,比如说像晶体管,激光,Led交换机,通讯卫星等等等等啊,啊这些东西跟我们现在的电子化的,信息化的生活是息息相关的,都是。
01:11
那当然了,在贝尔实验室里边就有很多很多的大神了,甚至不乏诺贝尔奖、图灵奖的获得者,那今天我们要介绍的就是这样的两位大神。一位叫做肯汤普森,另外一位叫做丹尼斯里奇,这个其实在整个计算机领域啊,都是大名鼎鼎,我们一看这两位的发量啊,这个大脑门儿很明显,这就是一个大神级别,殿堂级别的人物,那这两位其中的肯汤普森他就被称为是unix之父啊,所以unix这个操作系统主要就是由肯汤普森牵头啊,这两位大神一起携手创造出来的。那关于unix系统呢?它的技术来源最早呢?其实可以追溯到另外的一个工程,叫做max。
02:04
MAS这个项目,这就更早了。他是1965年的时候。我们知道当时应该整个电脑啊,计算机,电子计算机才刚刚的发明,刚刚兴起,所以当时操作系统其实还是非常非常简陋的啊,当时所用的操作系统是叫做。批处理操作系统。也就是说,哎,把数据准备好了之后。我们统一的一批进行一个处理,哎,所以整体来讲这个处理方式是比较低效的,所以MAS这个项目,它主要是用来干什么呢?诶,这就是六五年的时候,由贝尔实验室,MIT和通用电器公司联合发起来,想要去开发一个新的叫做多用户。分时操作系统。简单来讲就是他同时能给很多个用户提供服务啊,那做什么样的一个处理就可以这样去做呢?那就是做一个时间片的轮转啊,这里就涉及到了很多复杂的技术细节。
03:12
啊,所以由于这个马S这个项工程计划所追求的目标太过于庞大,太过于复杂了,以至于到最后啊,很多他的这个开发人员都不知道最后想要做成什么样了,所以最终马以失败收场。好,那接下来呢?当然我们说这个失败是成功之母啊,以肯汤普森为首的一些贝尔实验室的研究人员就吸取了马S失败的经验教训,在1969年的时候。真正实现了一个分时操作系统的雏形,那这样一个新的分时操作系统,1970年就被叫做unix,这就是unix的诞生。那其实从这个名字上我们也可以看得出来啊,他跟马S的区别在哪里呢?
04:04
我们知道这个multi啊,像multiply英语里边就是成的意思,对吧,所以multi本来就有这个复杂有多的意思。而unx UN,我们知道UNI。Unix就有单独的,独立的这个意思,所以相对比之下,Unix显得就会更加的简洁小巧。所以呢,肯汤姆森和丹尼斯里奇他们最初设计unix的时候,一个简单的思路就是我们要保留最基本的功能,要简洁高效,这就是他的设计初衷。这个理念可以说一直影响到了后来的Linux。那最早呢,这个unix它是直接用汇编写,就前面我们提到的。非常底层的这种语言啊,去对机器传输指令啊,那我们知道汇编语言它很底层,所以开发起来那肯定就是非常麻烦了,不够高效,非常痛苦啊,那丹尼斯里奇和肯汤普森他们就都觉得用汇编语言去写程序,开发系统实在是太痛苦了。
05:12
啊,那程序员当然还是要为自己的发亮着想啊,要对自己好一点,磨刀不误砍柴工嘛,所以他们就决定,我要开发一个高级语言,不要用汇编那么底层的东西了。我要把要做的一些事情抽象出来,用高级的描述,让我们程序员使用起来更加的方便,哎,所以接下来呢,他们就进行了语言的开发,大家看这就是大神要做的事情啊,觉得我开发系统的时候不顺手了,工具不顺手了,我就顺带去。发明一门新的语言。那他们呢,一开始其实并没有想到直接要发明,大家可能有同学听说过,早期有一个非常经典的非常老的科,用于科学计算的一个语言啊,叫做fortune。
06:02
所以这也是我们一般情况下的基本的想法,就是不要重复造轮子,如果有现成能用的,我们拿来用就好了吧。但是呢,Fortune不太适合当前所要设计的,这样比较复杂的系统直接失败了,Fortune不好用。那fortune不好用,没关系,我们自己来开发,所以两位大神就准备自己去写高级语言了。那写语言的这个过程呢,主导的就是丹尼斯里奇了,丹尼斯里奇首先创造出来的高级语言叫做B语言。啊,因为它是基于当时的另外一门语言叫BCPL这门语言创建出来的,直接就把它命名叫做B语言。那B语言可以认为是当时那个时代的一种解释型语言啊,所以它不是直接生成机器码的,它是要解释执行的,所以从效率上来讲,它是没有办法满足我们底层操作系统的需求的,所以B语言相当于再次失败了。
07:03
那没关系啊,失败是成功之母啊,继续改进。丹尼斯里奇对B语言进行了一系列的改进,为它增加了更丰富的数据类型,能让B语言直接编译成为机器码。然后啊,又为这个语言起了一个非常响亮的名字。叫做新币。语言。牛B啊,所以我们一听这个名字就非常的响亮啊,那可能就是因为这个名字很响亮,所以现在终于成功了,那丹尼斯里奇和肯汤普森就使用他们发明创造出来的这个牛B语言,对于unix整个系统做了一个重写,做了一个重构。啊,当然了,也有可能是丹尼斯里奇考虑到了未来中国人民听到这个名字之后不太文雅,所以他们想,啊,诶,这个new新的B语言,我干脆就用B的下一个字母来表示这门新的语言吧。所以大家看,这就是传说中的。
08:04
C语言就诞生了啊啊,那我们知道未来这一门C语言将统治之后的大学课本,我们学习的过程当中,只要是计算机类相关的专业啊,电子信息相关的专业都要学这门经典的C语言,而且在它诞生差不多接近50年之后的今天,依然占据了当前编程语言排行榜的前两名。啊,所以这个C语言可以说是非常非常的厉害啊,可能就是当时的这个名字取得比较好吧。啊,那最终肯汤普森和单词里其实用C语言重新编写了unix的内核,所以呢,Unix和C两者可以说是珠联璧合,双双走进了计算机发展领域的殿堂,啊,那所以unix呢,成为了之后。几乎是所有操作系统的思想的来源,而C语言呢,也以最接近底层的高级语言这样的一个身份大放异彩,直到今天还在很多地方都在使用。
09:09
那这是关于unix的诞生。
我来说两句