C / C ++程序是运行CPU还是运行内核?

时间:2014-04-28 10:29:26

标签: c++ c kernel machine-language

我现在已经编程好几年了,但有一件事我从未完全理解:

有两种编程语言。编译的和解释的,而编译的首先需要编译成解释语言,然后才能执行。

例如,在可以执行之前,需要首先将C / C ++编译为机器语言。

这就是我的问题:实际运行编译的C / C ++ Windows / Linux程序的人是谁?它是直接由CPU解释的,还是OS内核执行它并将命令传递给CPU?

如果CPU直接执行它,那么Windows内核如何拒绝某些调用呢?否则,它是否意味着内核也理解机器语言,或者非内核C / C ++程序是否无法编译为机器语言?

1 个答案:

答案 0 :(得分:4)

程序在CPU上运行。 CPU具有不同级别的权限,所谓的特权指令"可能只能由内核执行 - 这是操作系统执行安全性的方式。