首页 > 编程笔记

C语言历史,C语言与UNIX系统的关系

1964 年,由美国通用电气公司和麻省理工学院发起了一个合资项目,该项目旨在开发一套能运行在 GE-645 等大型主机之上的多用户、多任务的分时操作系统,简称 MULTICS。

1965 年,贝尔实验室派出开发人员 KenThompson 等也加入了该项目,虽然项目期间发布了一些版本的 MULTICS 产品,但由于运行性能较差,1969 年该项目以失败告终。

由于 KenThompson 酷爱游戏及游戏编程,他在项目 MULTICS 期间编写了一款名叫“星际旅行”(Startravel)的游戏,并运行在该 MULTICS 系统上,但运行速度非常慢,且耗费昂贵。

1969 年 MULTICS 项目宣告失败后,KenThompson 没有放弃其游戏的梦想,他在贝尔实验室的库房中,找到一台闲置的 PDP-7 裸机,但由于缺少操作系统,无法在该 PDP-7 上运行其游戏。在 DennisRitchie 的帮助下,他使用汇编语言为该 PDP-7 编写了一个操作系统雏形,并把其游戏成功运行在了该操作系统之上。该操作系统体现出了很多优势,受 MULTICS 项目开发经验的启发, DennisRitchie 和 KenThompson 在该游戏操作系统雏形的基础上,进一步完善和开发新功能,最终于 1970 年开发出了一款新的多用户、多任务操作系统,称为 UNIX 操作系统

综上所述,1969—1970 年,美国贝尔实验室的 KenThompson 和 DennisRitchie 等使用汇编语言编写了第一个版本的 UNIX 操作系统。

UNIX的改进与C语言的起源

由于 UNIX 操作系统良好的性能,在其发布初期,就得到迅速的推广和应用。1973 年,KenThompson 和 DennisRitchie 在做系统内核移植开发时,感觉使用汇编语言很难实现。后来决定使用一种称为 BCPL(BasicCombinedProgrammingLanguage) 的语言进行开发,在开发过程中,他们在 BCPL 的基础上做了进一步的改进,推出了 B 语言(取 BCPL 第一个字母)。

后来发现使用 B 语言开发的 UNIX 内核,还是无法达到他们的预期要求,于是在 B 语言的基础上,做了进一步的改进,设计出了具有丰富的数据类型,并支持大量运算符的编程语言。改进后的语言较B语言有质的飞跃,取名为 C 语言,并使用 C 语言成功重新编写了 UNIX内核。

至此,使用 C 语言编写内核的 UNIX 版本已相当稳定,且具有良好的可移植性,为 UNIX 的进一步推广和普及奠定了坚实的基础,也展现了 C 语言与 UNIX 的完美结合及 C 语言在编写系统软件时得天独厚的优势。

由此可见,C 语言的起源与UNIX的改进是密不可分的,也体现了 C 语言在编写系统软件时的优势。

推荐阅读