我知道每个CPU /架构都有自己的指令集,因此为特定CPU编写的程序(二进制)不能在另一个CPU上运行.但我真正理解的是为什么一个可执行文件(例如.exe之类的二进制文件)无法在Linux上运行,但即使在同一台机器上也可以在Windows上运行.
这是一个基本问题,我期待的答案是.exe和其他二进制格式可能不是原始机器指令,但它们包含一些依赖于操作系统的数据.如果这是真的,那么这个OS依赖的数据是什么样的?作为一个例子,.exe文件的格式是什么,以及它与Linux可执行文件之间的区别?
有没有来源我可以获得有关此的简要和详细信息?
linux windows compiler-construction executable operating-system