像 exe 这样的可执行问题在 Linux 上不起作用(没有 wine)。编译源代码时,编译器会生成特定于特定 cpu 架构的目标代码。但是相同的应用程序不适用于具有相同 CPU 的另一个操作系统。我知道代码可能包含特定于操作系统的指令,这些指令会阻止可执行文件运行。但是一个简单的程序 2+2 呢?令人困惑的部分是机器代码阻止工作的 hell 。特定于cpu的机器代码对吗?如果我们剥离可执行文件格式,我们能否看到两个操作系统的相同机器代码(如 2 + 2)?
还有一个问题:汇编语言呢? Windows 和 Linux 是否对相同的 cpu 使用不同的汇编语言?
最佳答案
有很多不同之处。其中:
是的,x86 架构上的 Linux 和 Windows 程序都使用英特尔定义的 CPU 支持的指令集。
关于operating-system - 为什么特定 CPU 的可执行程序不能在 Linux 和 Windows 上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2059605/