在 Windows 上,x64 版本的操作系统可以运行 x86 和 x64 二进制文件。
但是,x86 Windows 只能运行 x86 二进制文件。即使底层 CPU 支持 64 位,它也无法运行 x64 二进制文件。
Linux 上 x86 / x64 二进制兼容性的情况是否相同?或者是否有更多(或更少)的兼容性?
答案1
这取决于GNU/Linux
所讨论的发行版,以及是否安装了 32 位兼容性的相关软件包。相关的特征通常被称为“ multilib
”。它还取决于Linux内核的支持;编译 Linux 内核时可以禁用对 32 位二进制文件的支持。流行版Debian
和Ubuntu
发行版都支持32位兼容性,一些以前没有的发行版也添加了它(例如,Arch
)。
当然,上述涉及在 64 位内核和支持 64 位的 CPU 上运行 32 位程序。即使 CPU 支持 64 位,Linux 也无法在 32 位内核上运行 64 位应用程序。如果 CPU 不支持 64 位,那么如果不进行仿真,您显然无法运行 64 位应用程序。