为什么现在的操作系统基本上用C语言来实现

 我来答
物理公司的
2016-11-25 · TA获得超过5695个赞
知道大有可为答主
回答量:6105
采纳率:86%
帮助的人:1302万
展开全部
因为如果要在开发时间和软件效率之间取一个平衡点的话,开发操作系统的平衡点就是C语言。

除了C语言以外,其它语言都不具备某些特性、不够方便、软件效率不高。

写操作系统需要编程语言提供以下几个特征:

1、跨平台,不能是只在某个平台下编译(VB就不行);
2、必须是编译型语言(PHP就不行),或者有一个非常高效的解释器;
3、必须有方便的操作硬件的功能,容易嵌入汇编(Java就不行);
4、兼容性要好,最好不同编译器编译的符号要基本相同,容易链接(C++不行,如果放弃Class的话C++基本可以);
5、编译器本身最好是由该语言自己完成的(大部分语言的编译器都是用C/C++写的);
6、开发者可以很方便的扩展、改造、或者使用第三方的运行库(大部分语言的库都无法修改);
7、开发者众多(小众语言就不行);
8、该语言开发操作系统的资料要足够完善。

所以总结下来,C语言是首选。

当然了,不是说其它语言一定不行,只是其它语言开发操作系统时会有各种各样的不方便的地方,因为有人就用Java+汇编来实现一个操作系统,也不是不可以,只是很麻烦。(参见写操作系统只能用汇编和C语言? - 北极的回答)

而由于最早开发操作系统的时候选用了C语言,而且一直延续了下来。不管是习惯还是语言特性,C语言一直都很符合条件,因此没有必要冒着各种风险换一种语言来开发。

补充,如果使用C++写操作系统,并不是特别困难。C++的问题在于混合编译时符号表比较麻烦(VC和GCC生成的全局符号名字不一样),C++的运行效率略低于C,所以一般没有人用C++去写内核。

但是Windows里确实存在着使用C++写的驱动,也算是属于操作系统的一部分吧。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式