【发布时间】:2019-09-04 15:58:52
【问题描述】:
已经出现了用多种语言编写的实验性操作系统,包括 C#(Singularity、SharpOS)、Java(JavaOS、JX)和 Lisp(各种Lisp machines)。
那么为什么 C(以及较小程度的 C++)是用于开发操作系统内核的主要语言? C 语言有什么特别适合在内核编程中使用的,还是因为历史原因?
【问题讨论】:
-
不是真的,不。
-
不管怎样,大多数操作系统的最低级别实际上不是用 C 语言编写的,而是用汇编语言编写的。上面的第一层通常用 C 编写,因为它是与汇编语言结构和原始内存地址交互的最简单的语言之一。
-
系统编程中没有使用C# :) 它需要操作系统才能运行(以及JIT编译器或解释器)
-
@DanielPryden 在评论之前阅读更多内容。
The hardware abstraction layer is written in C++ and runs in protected mode. There is also some C code to handle debugging。如果您愿意,其余的甚至可以用 HASKEL 编写,但 OS 的“本质”是用 C++ 和 C 编写的 -
您需要一种可以直接寻址内存并与汇编程序轻松集成的自托管语言。