unix|两个语言与一种操作系统间的超时空纠缠:Unix为什么用C而不是C++


unix|两个语言与一种操作系统间的超时空纠缠:Unix为什么用C而不是C++
文章图片
unix|两个语言与一种操作系统间的超时空纠缠:Unix为什么用C而不是C++
文章图片
unix|两个语言与一种操作系统间的超时空纠缠:Unix为什么用C而不是C++
文章图片
unix|两个语言与一种操作系统间的超时空纠缠:Unix为什么用C而不是C++
文章图片
unix|两个语言与一种操作系统间的超时空纠缠:Unix为什么用C而不是C++
关于Unix为什么用C而不是C ++编写的一个显而易见的答案是C ++是在C之后诞生的 。 另一个原因是 , 实际上C语言是为了支持Unix的开发而发明的 。
Unix是在Bell Labs中创建的 。60年代后期 , 研究人员Ken Thompson用汇编代码编写了Unix的第一个版本 , 该版本在DEC PDP-7上运行(DEC在1998年被Compaq收购 , 后来Compaq在2002年与惠普合并) 。 促使他编写基本OS的原因是 , 他想运行自己的游戏程序“ Space Travel” , 该程序以前是在Multics分时系统上开发的 。 他能够访问Bells Labs中的旧PDP-7 , 并决定为旧计算机重写他的游戏 。 在编写程序时 , 他开始尝试一些关于新型文件系统的想法 。 他使用PDP-7汇编语言工作 , 很快使他的文件系统与一些实用程序和一个核心内核(或内核)一起运行 , 这些内核共同构成了基本的OS 。 因此 , 从本质上讲 , 他设计OS的唯一目的是简化自己的软件开发工作 。
汤普森(Thompson)创建了新生版本之后 , 研究员丹尼斯·里奇(Dennis Ritchie)看到了它 , 并开始倡导该系统 , 并帮助进一步开发它 。1969年 , 由汤普森(Thompson)和里奇(Ritchie)领导的一组研究人员在贝尔实验室(Bell Labs)创建了第一个正式工作版本 。 他们帮助开发了分层文件系统 , 计算机进程和设备文件的概念 , 命令行解释器以及其他实用程序和概念 , 从而影响了随后几十年其他OS的发展 。
新的Unix OS最初没有组织的支持 。 而且 , 它只是一个单任务操作系统 。1970年 , 当贝尔实验室的计算机科学研究中心希望在比PDP-7更大的计算机上使用Unix , 而另一个部门需要文字处理程序时 , 汤普森和里奇获得了资助 , 为在PDP-11上运行的Unix添加了文本处理功能 。/ 20 。 因此 , Unix首次被正式命名并在PDP-11上运行 。 添加了一个名为roff(后来演变为troff)的文本格式化程序和一个文本编辑器 。 然后 , 贝尔实验室内部对文本处理的需求推动了对PDP-11机器和Unix的需求 。 贝尔实验室的部门选择运行Unix而不是DEC自己的OS 。
C语言
C的起源与Unix OS的开发紧密相关 。 当团队将Unix移植到PDP-11时 , 它仍在组装中 。 汤普森(Thompson)和里奇(Ritchie)希望在系统编程中使用一种高级语言 , 以便程序员可以清晰地表达概念 , 而不必与一台计算机的体系结构绑定 , 但效率很高 , 因此不需要汇编语言来提高速度 。Unix使用高级语言实现 , 因此打破了必须使用汇编语言编写系统并将其与特定的计算机设计 , 字长或体系结构联系在一起的观念 。 首次将包括文件系统 , 内核 , 应用程序包 , 实用程序和用户界面在内的整个编程环境移至完全不同类型的机器上 。
1969年早些时候 , 汤普森(Thompson)和里奇(Ritchie)已经开发了一种称为“ B”的编程语言 , 它实质上是BCPL的简化版本 。 基本上 , BCPL去除了不必要的组件 , 以使实现适合当时的小型计算机的存储容量(BCPL是CPL的简化 , 其本身是Algol 60的简化) 。 汤普森和里奇正在考虑使用B语言重写Unix 。 但是 , B无法利用PDP-11的某些功能 , 尤其是字节寻址能力 , 导致了“ C”编程语言的发展 。C的名称被简单地选择为B之后的下一个字母 。
C的开发始于1972年的PDP-11 Unix系统 , 最早出现在Version 2 Unix中 。Unix的很大一部分都用C重写 。 来自Unix开发的反馈对C语言的开发很有帮助 。 汤普森(Thompson)稍后会说 , C语言“与系统重写之一融合在一起 , 因此 , 它非常适合编写系统” 。 到1973年 , 由于增加了“结构”类型 , C语言已经变得足够强大 , 以至于现在大多数Unix内核都使用C语言 。 Unix成为使用汇编语言以外的其他语言实现的首批OS内核之一 。
Unix最初是在1973年操作系统原理专题讨论会上正式向外界介绍的 , Ritchie和Thompson在那里发表了一篇论文 。 这导致了对系统的要求 , 但是根据1956年的和解协议 , 在解决反托拉斯案件中 , AT&T(贝尔实验室的母公司)被禁止从事除“公共运营商通信服务”之外的任何业务 。 因此 , Unix无法变成产品 。 贝尔实验室转而以媒体和运输成本来发展该系统 。