一个程序从某种语言编译成 ASM --> 机器码(可直接执行)。当人们说这是平台相关的时候,他们是指所形成的二进制文件只能在具有相同指令集架构(如 x86、x86-64)的 CPU 上运行(正确)。由于 ISA 的差异,它可能(不正确地)/可能不会(根本不会)在其他进程上运行。现在,二进制概念让我感到困惑。一切都关于“机器语言代码”和“CPU”。操作系统在哪里发挥作用?我的意思是,当编译后的二进制文件被加载到内存中时,它对 CPU 有直接的指令。CPU 每次执行一条指令。除了进程管理link text之外,我无处看到操作系统的作用。它应该在具有相同 ISA 的 CPU 上运行,而与操作系统无关。对吗?但事实并非如此。如果我在 Windows 机器上构建一个 x86 代码,它将无法在 Mac x86 机器或 Linux x86 机器上运行。我在这里缺少什么,请帮我解决困惑。