0

这可能是一个微不足道的问题,但我很难向我的弟弟解释,即使两个操作系统都在同一台机器上运行,Windows 二进制文件也不会在另一个不同的操作系统(如 Linux)中运行。如果二进制文件(操作码)必须相同才能在相同的底层架构(比如 Intel 32 位)中执行,那么 Windows 和 Linux(甚至 Ubuntu 和 RadHat Linux)的二进制文件有什么区别?在处理器执行之前,是否在指令级别对二进制文件进行了任何运行时修改?我如何用他能理解的外行人/简单的术语来解释。

4

1 回答 1

4

不同的操作系统有不同的ABI,需要使用不同的加载器。如果其他操作系统的加载器可用(例如通过Wine),则可以加载可执行文件,此时API变得很重要。

于 2013-05-21T03:00:44.933 回答