一旦exe被加载到内存中,那个exe文件中的内容是由处理器直接执行的,还是由操作系统执行的?我的意思是,OS中的二进制文件是否由操作系统再次简化为机器级别使用?
答案 0 :(得分:0)
.exe文件包含可直接由处理器执行的操作码。
答案 1 :(得分:0)
对于C ++程序,编译器在可执行映像中生成数据和代码的组合。 OS加载程序安排将其放入程序地址空间中的特定内存地址,然后要求CPU在已知的“入口点”调用代码(每个动态加载的库可能有这样的指针(.so / .dll)以及main()
的入口点。编译器生成的可执行代码将以可运行代码的CPU模型为目标。
如果尝试在另一个CPU体系结构上执行代码,它通常会失败,尽管操作系统可以做任何它喜欢的事情,包括检测为另一个CPU编译的可执行文件并放入某种仿真或重新编译层地点。这可能是非常重要的。