为什么我们在汇编中编写os的某些部分,在某些部分使用c等高级语言?

时间:2013-04-25 17:38:18

标签: c++ c assembly operating-system

在实现操作系统时,除了非常小的部分是用汇编编写的,而大多数部分是用高级语言编写的,比如C / c ++ 在汇编中编写的部分是什么?为什么要编写它以及为什么大多数代码都是用高级语言编写的

1 个答案:

答案 0 :(得分:2)

首先,我不确定C是否符合高级级语言(恕我直言,它是低级别的; Haskell,Ocaml,......比C级更高)。

然后,操作系统内核中的所有内容都不能在可移植的C中实现。硬件相关的东西(中断处理,调度,分页,访问硬件I / O端口......)通常需要一些汇编代码。

(您可以在C中嵌入带有asm关键字的代码,但这不算作便携式C)。