为什么操作系统内核通常用C或C ++编写?

时间:2019-04-14 14:03:06

标签: c kernel

已经有使用多种语言编写的实验性操作系统,包括C#(SingularitySharpOS),Java(JavaOSJX)和Lisp(各种Lisp machines)。

那么,为什么C(在较小程度上为C ++)成为开发操作系统内核的主要语言?关于C的某些东西,使其特别适合用于内核编程,还是出于历史原因?

1 个答案:

答案 0 :(得分:3)

将C语言用于OS内核的一些(并非全部)原因:

性能对操作系统很重要,因此输出解释语言而使用编译语言。另外,无论如何,您都必须使用其他某种语言将解释器作为OS的一部分来编写,所以...

对于OS而言,直接访问硬件资源和简单的方法来进行低级位“弄乱”也很重要,而C和C ++都涵盖了这一点。

通常,您还需要针对目标处理器的特定体系结构直接在汇编中写一些位。在C和C ++中,用内联asm编写片段很简单。

此外,大多数其他语言也支持C的调用约定,因此,用C编写OS可以轻松地以易于交互的方式将系统调用公开给用户空间。