繁体   English   中英

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

[英]Does a C/C++ program run the CPU or on the Kernel?

我从事编程已经有很多年了,但是有一件事我从未完全了解:

有两种类型的编程语言。 编译语言和解释语言,而编译语言和解释语言则必须先编译为解释语言,然后才能执行。

例如,必须先将C / C ++编译为机器语言,然后才能执行。

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

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

该程序在CPU上运行。 CPU具有不同的特权级别,因此所谓的“特权指令”只能由内核执行-这就是操作系统强制执行安全性的方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM