为啥操作系统都是基于 C 语言和它的扩展开发的
C语言设计之初就是为了编写UNIX,所以C具有高级语言易移植、易复用和逻辑性强的特点,同时也具有低级语言可以直接操控硬件,接触计算机层次最底层的特点。所以用C来写操作系统几乎是不二之选,当然也有另外一个选择就是用别的语言编写之后编译到C或编译到机器码。比如Losak操作系统(卡耐基梅陇的一个流产了的项目)就是使用lisp的方言编写的,然后lisp的底层用C来实现。最关键的是,几乎没有什么东西的编译器不是直接或者间接的用C编写,所以系统内核这么需要高效率的东西还不如直接用C写。别的高级语言操纵硬件都没这么直接。
■网友
经济啊。CPU设计的时候,第一个支持的编译器一般是C,这样现有的操作系统代码就可以复用了。C不需要什么运行时,假如C就可以搞定的话,偷懒的操作系统程序员觉得内核支持个C就够用,然后要求内核的各个组和驱动开发人员都用C开发就可以了。这使得很多运行功能时不能用(例如VC的STL)。操作系统用了很多年之后,大家都用C用的很习惯了,虽然在内核里加各种语言的运行时支持的呼声时有时无,但是没多大收入风险又大(内核代码出错是蓝屏)的事情没人愿意干。
■网友
不见得。也有用CPP的(编译器配置里会关掉部分CPP特性)。也有只用汇编的。
■网友
Emacs
推荐阅读
- 为啥看到书柜上的藏书会有心旷神怡的感觉
- 为啥知乎上普便有一种【我在北上广深打工,所以拥有更好的视野】这样的错觉
- 为啥工商银行的用户体验如此之差
- 汽车|看了中消协4S店服务测评调查结果,终于知道法系车为啥卖不好了
- 你为啥从窝窝商城离职?
- 为啥5G和2.4G默认的BSSID是相同的
- 为啥电器实体店的价格比淘宝贵那么多
- 现在在线学习视频有很多了,为啥大部分人还是喜欢下载下来观看
- 为啥到现在你还没有女朋友 ?
- 天赐的声音|33岁张雨绮为啥总离婚?看过这些照片就明白了,都是性感惹得祸
