unix|为什么Unix不用功能更强大的C++而是用C编写
文章图片
文章图片
有人总会说C++不是要比C的作用大很多 , 功能也更多 。 那为什么Unix不用功能更强大的C++而是用C编写?关于Unix为什么用C而不是C ++编写的显而易见的答案是C ++是在C之后诞生的 。 另一个原因是 , 实际上C语言可能也是为了支持Unix的开发而发明的 。
C的起源与Unix OS的开发紧密相关 。 当团队将Unix移植到PDP-11时 , 它仍在组装中 。 汤普森(Thompson)和里奇(Ritchie)希望在系统编程中使用高级语言 , 以使程序员可以清晰地表达概念 , 而不必与一台计算机的体系结构绑定 , 但要使效率很高 。 Unix使用高级语言实现 , 因此打破了这样一种观念 , 即必须使用汇编语言来编写系统 , 并且该系统必须与特定的计算机设计 , 字长或体系结构相关联 。 并且首次将包括文件系统 , 内核 , 应用程序包 , 实用程序和用户界面在内的整个编程环境移至完全不同类型的机器上 。
【unix|为什么Unix不用功能更强大的C++而是用C编写】汤普森(Thompson)和里奇(Ritchie)早在1969年就已经开发了一种称为“ B”的编程语言 , 它实质上是BCPL的简化版本 。 基本上 , BCPL去除了不必要的组件 ,
C的开发始于1972年的PDP-11 Unix系统 , 最早出现在Version 2 Unix中 。 Unix的很大一部分都用C重写了 。 来自Unix开发的反馈对C语言的开发很有帮助 。 C语言“与系统重写之一融合在一起 , 因此 , 它非常适合编写系统” 。 到1973年 , 由于增加了“结构”类型 , C语言已经变得足够强大 , 以至于现在大多数Unix内核都使用C语言 。 Unix成为第一个使用非汇编语言实现的OS内核之一 。
Unix最初是在1973年操作系统原理专题讨论会上正式向外界介绍的 , Ritchie和Thompson在那里发表了一篇论文 。 这导致了对系统的要求 , 但是根据1956年的和解协议 , 在解决反托拉斯案件中 , AT&T(贝尔实验室的母公司)被禁止从事除“公共运营商通信服务”之外的任何业务 。 因此 , Unix无法变成产品 。 贝尔实验室转而以媒体和运输成本来运送系统 。
但是在此之前 , Unix仍然只能在DEC系统上运行 。 随着更多的操作系统用C语言重写(并扩展了C语言以适应这种情况) , 可移植性也有所提高 。 1977年 , 贝尔实验室购买了Interdata 8/32 , 其目的是将Unix移植到与PDP-11尽可能不同的计算机上 , 从而使Unix在此过程中更加独立于机器 , 从而实现了汤普森的OS可移植性梦想 。 所有专用于PDP-11的代码都已从内核中删除并进行了重写 , 以使Unix的传输变得容易 。 在进行Interdata测试之后 , 他们将Unix移至IBM / 370大型机 。 通过每次试用 , 他们了解了有关C , Unix和一般可移植性的更多信息 。 逐渐地 , Unix被移植到许多其他硬件系统上 , 包括基于Intel 8086的计算机 , UNIVAC 1100等 。
- 科技小乐乐|为什么国内有人已拿到iPhone12却不敢开机?
- |人类为什么一般只吃食草动物的肉,而不吃食肉动物的肉?
- 鸡蛋|为什么鸡看到鸡蛋被人类拿走了,却不会生气?
- |地球物种繁多,为什么没有三栖动物,又进化出来的可能吗?
- |骨灰在自然界很多年以后会变为什么?有何科学依据?
- 淘宝|为什么大学生网购,更多的选择淘宝,而不是京东?原因很真实!
- 蟒蛇|巨蟒有天敌吗?为什么它们的数量如此稀少?
- |为什么农村老人常说:有鹅的地方,就不会有蛇!有何科学依据?
- symbian|诺基亚的塞班系统究竟差在哪里?又为什么会被迅速淘汰?
- 月球|登上太空的宇航员,为什么眺望地球时会产生恐惧?他们看到了什么?