小编GRA*_*ZER的帖子

可执行文件需要操作系统内核才能运行吗?

我知道当源代码(比如 C++)被编译时,编译器的输出是机器代码(可执行),我认为它是直接发送给 CPU 的指令。最近我正在阅读内核,我发现程序不能直接访问硬件,而必须通过内核。

所以当我们编译一些简单的源代码,比如一个printf()函数,并且编译产生可执行的机器码时,这个机器码中的每条指令是直接从内存中执行(一旦代码被操作系统加载到内存中)还是会机器码中的每一条命令还需要经过OS(内核)才能执行?

我读过一个类似的问题。没有说明编译后生成的机器码是直接发给CPU的指令,还是需要再次通过内核为CPU创建正确的指令。即,机器代码加载到内存后会发生什么?它会通过内核还是直接与处理器对话?

operating-systems kernel

55
推荐指数
5
解决办法
1万
查看次数

标签 统计

kernel ×1

operating-systems ×1