为啥操作系统都是基于 C 语言和它的扩展开发的

C语言设计之初就是为了编写UNIX,所以C具有高级语言易移植、易复用和逻辑性强的特点,同时也具有低级语言可以直接操控硬件,接触计算机层次最底层的特点。所以用C来写操作系统几乎是不二之选,当然也有另外一个选择就是用别的语言编写之后编译到C或编译到机器码。比如Losak操作系统(卡耐基梅陇的一个流产了的项目)就是使用lisp的方言编写的,然后lisp的底层用C来实现。最关键的是,几乎没有什么东西的编译器不是直接或者间接的用C编写,所以系统内核这么需要高效率的东西还不如直接用C写。别的高级语言操纵硬件都没这么直接。
■网友
经济啊。CPU设计的时候,第一个支持的编译器一般是C,这样现有的操作系统代码就可以复用了。C不需要什么运行时,假如C就可以搞定的话,偷懒的操作系统程序员觉得内核支持个C就够用,然后要求内核的各个组和驱动开发人员都用C开发就可以了。这使得很多运行功能时不能用(例如VC的STL)。操作系统用了很多年之后,大家都用C用的很习惯了,虽然在内核里加各种语言的运行时支持的呼声时有时无,但是没多大收入风险又大(内核代码出错是蓝屏)的事情没人愿意干。
■网友
不见得。也有用CPP的(编译器配置里会关掉部分CPP特性)。也有只用汇编的。
■网友
Emacs


    推荐阅读