阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

008 | linux发展历史-04

163次阅读
没有评论

共计 3630 个字符,预计需要花费 10 分钟才能阅读完成。

本文为《跟马哥学 Linux》系列文章的第八篇,上一篇文章为《Linux 发展历史 -03》。

最早期的时候 pdp- 7 上面跑的 unix 就已经具备了今天很多操作系统当中的核心特性,实际上 unix 从最早设计开始从那么小那么简陋,虽然说是上个世纪六十年代末,大概这个时间是 1969 年前后设计大产品,但已今天的眼光来看 unix 仍然是设计上没有硬伤的一款产品,那就意味着这款产品设计是非常好的非常精良的,其实 unix 的研发也就花了两天的时间在写的时候,而 unix 真正引起人们关注的或者说给我们生产环境,给我们带来从生产力的是,1971 年的时候,bell 实验室他需要的为自己的内部一个专利部门提供一个文字处理的程序这个文字处理的程序叫 nroff,这个程序的运行需要一个底层的系统,需要开发这么一个系统,而在 pdp-12 上跑的系统对于 nroff 来讲并不理想,所以后来 Ken 几个人就把这个项目给承包下来了,并添加到他的 unix 上来启动这个程序。

并在写 nroff 的过程中 unix 也不断的改进。万幸的是,不久当时管理层还没有意识到,只是觉得 nroff 这个程序还不错,没有意识到 unix 在随后到底能够发展出一个这么让人惊奇的东西来,所以呢,这个时候还没有把 unix 给商业化的想法。而时间走到 1972 年前后,unix 的装机量已经达到 10 台并且在 bell 实验室广为流行,。

刚刚说过,最初 unix 使用汇编语言写成的,而各种应用程序使用解释性语言 b 语言编写,B 语言的特点在于非常小瞧,短小精悍,但是他是一种解释性语言功能还不够强大,后来 bell 实验室的另一位年轻人 Dennis Ritch,这个家伙就把 B 语言增加了一些像什么数据结构,数据类型,等等进而把 B 语言升级了称为 B + 语言,不过后来人们觉得 B + 不好听就改成了 C 语言,所以这个作者花了一点时间把 B 鼓捣鼓捣改进了一番成为 C,这个就是到今天为止三四十年来依旧流行的编程语言之一。那个时候从生产出来的工具来看就有那么强悍的生命力我们不得不说这代工程师都是天才级的人物。

这个 C 语言就是从 B 语言写过来的。而 1973 年 74 年的时候 Ken 与 Dennis Ritch 两个人决定联合起来,用 C 重写整个 unix,汇编语言与机器的耦合度非常大,如果我们是给 PDP- 7 写的装到 PDP- 8 上都跑不起来,所以与底层设备的程度太紧密,后来有了 C 语言以后,C 语言其实适合底层的 CPU 是没有关系的,有关系的其实就是编译器,编译成特定主机上的汇编就可以了。比如说我们现在有多种电脑设备。我们为了以示区别有不同的图形,第一种,第二种,第三种,

现在我们要写一个 unix 让他在这三种主机上都能跑起来怎么办的,开发一个版本给第一种,在开发一个版本给第二种,在开发一个版本给第三种,他们之间的代码的相同量很有可能就不足 30%,剩下 70% 都得重新编写因为底层不一样,指令也完全不一样思路可以演习,但是实现必须重构这就效率太低了,为了避免这样的情形,我么给他加一个中间层,这就是高级语言。

 

加了这么一个中间层任何一个语言写的程序都可以在每一种机器上运行但是并不意味着这三种机器就没有区别了,他们的区别依然存在。为什么程序员写的一个程序可以在这么多个系统上运行呢应为有中间层所以程序要写一款程序,这个中间层负责如果要在第一种上运行这个中间层就把他翻译成适用于第一种系统的,如果要在第三种上运行这个中间层就把他翻译成适用于第三种系统的,所以这个家伙是多能的,所以他能为 C 语言提供各种平台提

供专用版本。

你是说英语的,就把他翻译成英语,你是说德语的,就把他翻译成德语,你是说法语的,就把他翻译成法语,这个加过是一个通晓各种语言的全才的翻译,这就是中间层,而这就是编译器,他能完成这种功能,所以一个高级语言,当你写完程序以后不用担心底层环境不一样只要编译器能够应付那种硬件设备那么就能帮你把你写的程序转换成特定硬件设备能运行的程序,这个家伙就叫做编译器,所以他至关重要,而 C 语言的编译器的的确确能够支持多种不同的平台,我这么说还不够精确,因为底层上还有操作系统呢从不需要完完整整的考虑到底层硬件设备的比一样的地方,因为我们还有汇编,还有底层系统。

这样说是为了让各位能够更容易的理解问题,有意这么描述的。C 与硬件没关系了所以就把 unix 本来是用个汇编语言写的只能用在 PDP 主机上改成完全用 C 写只有其中一小部分代码仍然用汇编写所以是的这个程序将来我们想装在任何系统上,只要编译器支持他就能够支持硬件设备了。所以一下子使 unix 的适用范围快翻起来。不过这在当时 1973 年 74 年这么做使非常冒险的做法,因为,那个时候的计算机的运行性能很差,而语言的越高级,他浪费的资源那也大,计算机运行起来就越慢。所以那个时候地做法,相当于饮鸩止渴但他们就这么坚持做了而且确实冒了很大风险,大概时间走到 1979 年的时候,据说 Dennis Ritch 在一篇厂商种说到 unix 今天的成功就是当年用 C 语言改写带来的,他们那帮人有魄力在当时完成了将 Unix 用 C 语言编写的方式而且双方合起来发飙了一篇论文,当时发表在《美国计算机通信》杂志上,第一次公开展示 unix,时间是 1974 年前后,第一次把 unix 公之于众,全球人民全知道 unix 了,第一次走出 bell 实验室。公之于众后,很多大学和研究机构读到了这篇文章,他们发现 bell 居然研制了这么一个短小精悍地东西,他们都期望拿来学习和研究使用。

不过,当时的 bell 实验室属于 AT&T 美国电报电话公司,当时美国最高人民法院正在反垄断,正在诉讼 ATMT,那个时候 AT&T 被反托拉斯法裁定,不能销售电报电话意外的任何产品,不但不能销售,别人要你还得给,而那个时候很多大学研究机构都想要 Unix 而他们没有权限去销售还得无偿给。所以当那些人发来邮件给 Ken 说我想要一份 unix,当时 ken 什么事也不做,没事就没事就弄个磁带机拷贝 unix 给对刚寄过去。这件事干了很长一段时间,这个时候离个人机出现还有一段时间,个人 PC 机出现是在 80 年代了这会还在 70 年代中期那个时候这些大学和研究机构获得了 unix 以后都是如获至宝,花很多时间来研究 unix,并将他们的研究成果有回馈给 bell 实验室,使得 bell 在这一方面 unix 的发展非常快,而现在 unix 公认的完整的第一个发行版本是第七版而且 unix 起的名很独特就叫做 system v7 这个时候都已经在高校中都已经非常流行了这个时间是在 1979 年前后。

unix 这个产业也开始出入端倪了大概在 1978 年第一个以商业方式包装发行,有些人研究发现,我如果在这个基础之上提供更好的服务,我去买点前恐怕还是有人买的所以 1978 年全球第一家包装发行商业版 unix 的公司诞生了。叫做西雅图数字公司 sco 开始包装发行 unix 并且开始出售第一个商用版的 c 编译器,而且 1980 年也在美国西雅图一家更为不起眼的公司成立了叫做 Microsoft,当时只有两款产品,一个事 B 编译器,两一个也在卖 Unix,叫做 XENIX,其实就是 unix 的变种。另外在 unix 发展历史当中最早加入进来并且到今天为止对 unix 发展历史上做出了卓越贡献的是美国加州大学的伯克利分,芭芭拉分校都非常有名,在计算机的历史上都做了很大的贡献。而 ken 这个家伙,公司都很邪恶,工程师一旦做出巨大贡献以后都会放年假因此,ken 大概在 1976 年年休的时候到了伯克利分校任教,因此伯克利分校在 unix 研究上更是走在了前列而伯克利分校有个研究生叫 Bill joy 在 unix 上花了很长时间,并且他们还成立了 BSRG 组织就是伯克利操作系统研究小组大概在 1977 年发布了由 BSRG 发行的 unix 并且命名为 BSD 为什么叫做 BSD 呢?意思是伯克利系统分发版,所以简称为 BSD。

1980 年前后已经称为伯克利加州大学校园网的核心系统之所以伯克利走的这么激进主要还是因为 Ken 在那呆过 1 年,另外 1980 年前后美国国防部高级研究计划署叫做 DARPA,他需要请人在 unix 环境下的实现 TCP/IP 协议栈其实本来 DARPA 是打算在 DEC 公司 VAX 系统上的 VMS 上来实现的。DEC 公司生产的小型机由 PDP,还有一种叫做 VAX,而且 VAX 有他自己的操作系统叫做 VMS,也是个多任务系统本来 DARPA 想在 VMS 上研究 TCP/IP 协议。

但是他们担心 VMS 这个商业系统不会把源码给我无法改进,那个时候 unix 还是开放的,他们可以没有阻碍的拿到 unix 的源代码,所以他们就把这个项目,就是研究 TCP/IP 的合同递交给了伯克利的 BSRG,因此 1983 年的时候 tcpip 正式诞生在了,BSD 的 unix 的系统上所以 tcp/ip 协议就是在 unix 上被研发出来的能更好的整合在 unix 系统上。有 tcp/ip 之前主机要想互相通信是非常困难的,tcp/ip 让整个世界发生了天翻地覆的变化,比如说现在我们构建的各种网络通信都是在 tcp/ip 协议栈上实现的。这是 1980 年到 1983 年之间。

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-12-03发表,共计3630字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中