我现在已经编程好几年了,但有一件事我从未完全理解:
有两种编程语言。编译的和解释的,而编译的首先需要编译成解释语言,然后才能执行。
例如,在可以执行之前,需要首先将C / C ++编译为机器语言。
这就是我的问题:实际运行编译的C / C ++ Windows / Linux程序的人是谁?它是直接由CPU解释的,还是OS内核执行它并将命令传递给CPU?
如果CPU直接执行它,那么Windows内核如何拒绝某些调用呢?否则,它是否意味着内核也理解机器语言,或者非内核C / C ++程序是否无法编译为机器语言?
答案 0 :(得分:4)
程序在CPU上运行。 CPU具有不同级别的权限,所谓的特权指令"可能只能由内核执行 - 这是操作系统执行安全性的方式。