已经有使用多种语言编写的实验性操作系统,包括C#(Singularity,SharpOS),Java(JavaOS,JX)和Lisp(各种Lisp machines)。
那么,为什么C(在较小程度上为C ++)成为开发操作系统内核的主要语言?关于C的某些东西,使其特别适合用于内核编程,还是出于历史原因?
答案 0 :(得分:3)
将C语言用于OS内核的一些(并非全部)原因:
性能对操作系统很重要,因此输出解释语言而使用编译语言。另外,无论如何,您都必须使用其他某种语言将解释器作为OS的一部分来编写,所以...
对于OS而言,直接访问硬件资源和简单的方法来进行低级位“弄乱”也很重要,而C和C ++都涵盖了这一点。
通常,您还需要针对目标处理器的特定体系结构直接在汇编中写一些位。在C和C ++中,用内联asm编写片段很简单。
此外,大多数其他语言也支持C的调用约定,因此,用C编写OS可以轻松地以易于交互的方式将系统调用公开给用户空间。