Unix与C语言的关系在服务器领域,最著名的系统是Unix,甚至Linux也是类Unix操作系统。Unix是用C语言编写的,它是世界上第一个用C语言编写的操作系统。但是Unix是怎么来的呢?C语言是怎么来的?为什么Unix是用C语言写的?相信看完这篇文章你很快就会有答案。Multics和Unix1964年,在Unix诞生之前,贝尔实验室、通用电气和麻省理工学院联合开发了一个名为Multics操作系统的项目。Multics在当时取得了巨大的成功,因为它给了人们一个真正可用且稳定的操作系统。当时,从学校到政府机构,到处都在安装Multics。但是到了1969年,由于种种原因,贝尔实验室的KenThompson和DennisRitchie决定放弃Multics,于是贝尔实验室退出了这个项目。KenThompson和DennisRitchie决定开发一种更简单、更高效的操作系统,并将其命名为Unix,因此他们成为了Unix之父。与Unix相比,Multics有两个致命的缺点。一是需要安装在非常昂贵的机器上,普通电脑是安装不了的。二是设计非常复杂,这是贝尔实验室的工程师跳槽的主要原因。不过,KenThompson和DennisRitchie还是从Multics中得到了很多灵感。可以说Unix是Multics的简化和更新。说起来,C语言还没有出现,因为那时候还没有发明出来。Unix操作系统的第一个版本完全是用汇编语言编写的。直到1974年才用C语言开发出第四版。说C语言之前,我们得先说说BCPL和B语言。BCPL和B语言KenThompson和DennisRitchie最初是用汇编语言开发Unix的,因为那时候所有的操作系??统都是用汇编语言开发的。不过当时Multics是个例外,Multics项目组使用PL/1进行开发。它的价值在于向世界展示了一个操作系统也可以用高级语言来开发。KenThompson和DennisRitchie也受到启发,决定用汇编以外的语言重新开发Unix。他们最初的选择是BCPL。BCPL最初是由MartinRichards发明的,作为一种用于开发编译器的语言。但KenThompson和DennisRitchie很快发现,如果他们想在小型计算机DECPDP-7上使用BCPL,他们需要对语言本身进行一些修改。于是诞生了后来的B语言。B语言作为系统开发语言,也有很多缺点,所以后来改进为NB语言(NewB)。但是NB还是有很多问题,所以DennisRitchie又发明了C语言。终于在1974年,KenThompson和DennisRitchie用C语言重写了Unix系统的第四版。现在,C语言已经成为操作系统开发最常用的编程语言。C语言与Unix之路DennisRitchie曾经解释过他为什么发明C语言以及在使用B语言的过程中遇到的一些困难:只能用计算机字来处理:B语言的所有操作都是用计算机字来处理的是的,当时,一种可以处理字节的编程语言是工程师的梦想。无类型:准确的说,B语言只有一种类型,计算机字。如果你有一个字符串,你可能需要把它分成多个变量来保存。例如,一个21个字符的字符串需要6个变量。不支持浮点型运算:当时大部分硬件已经可以开始支持浮点型运算了,但是B语言还不支持这种运算。B语言的这些问题,开发效率低下,在机器上运行缓慢等等,都迫使DennisRitchie发明了一种新的编程语言。起初叫NewB,后来逐渐演变为C语言。C语言解决了B语言的许多缺点,并迅速成为开发操作系统的最流行的编程语言。较新版本的Unix和现在的许多类Unix操作系统都是用C开发的。好了,到这里,我想大家都知道了Unix和C语言是怎么来的,以及为什么要用C语言来编写Unix。有很多非常流行的语言,比如Java和Python,它们是在C语言之上分层的更高级的编程语言。但是如果要修改设备驱动程序或者系统内核模块,还是离不开C语言。
