我知道每个CPU/体系 struct 都有自己的指令集,因此为特定CPU编写的程序(二进制)不能在另一个CPU上运行.但我真正不明白的是,为什么一个可执行文件(比如二进制文件,比如.exe)不能在Linux上运行,但可以在windows上运行,即使是在同一台机器上.
这是一个基本问题,我期待的答案是.exe和其他二进制格式可能不是原始的机器指令,但它们包含一些依赖于操作系统的数据.如果这是真的,那么这个依赖操作系统的数据是什么样的?作为一个例子,一个文件的格式是什么.exe文件及其与Linux可执行文件之间的区别?
有没有消息来源能让我得到关于这件事的简短而详细的信息?