在 32 位 Ubuntu 系统上运行 64 位应用程序

Gab*_*iel 10 linux 64bit ubuntu 32bit

我看到的所有问题都是指在 64 位系统中运行 32 位应用程序。

我正在运行 32 位 Ubuntu 12.04(实际上是基于它的基本 OS Luna)并且我正在尝试运行一个拒绝打开的 64 位应用程序。跑步:

./64bit_app.run
Run Code Online (Sandbox Code Playgroud)

64bit_app.run我尝试运行的 64 位应用程序在哪里)导致:

bash: ./64bit_app.run: no se puede ejecutar el fichero binario
Run Code Online (Sandbox Code Playgroud)

转换为“无法执行/运行/打开二进制文件”。

我应该能够运行它吗?是否可以在 32 位系统中运行 64 位应用程序?如果是这样,如何?

Mat*_*Mat 8

您不能直接在具有 32 位内核的 x86_64 上的 Linux 上执行此操作。您需要一个 64 位内核才能运行 64 位代码。(注:内核可以有32位用户空间在64位内核上运行,并安装64位二进制文件的支持是多么容易,这是依赖于分布为例。这里为Debian。)

一些虚拟化软件能够做到这一点(对您使用的 CPU 类型有限制),而模拟器也可以做到这一点。但是要在本地运行它,您需要一个 64 位内核。

由于大多数 64 位发行版都支持 32 位(默认情况下或可安装),如果您需要在同一操作系统上同时运行 64 位和 32 位二进制文​​件,那么您应该使用它。


pet*_*erh 7

扩展@Mat 的回答:

是的,一些虚拟化软件可以做到。处理的主要障碍是在 32 位环境中,CPU 的 64 位功能不可用,并且 64 位内核的功能也不可用。这是即使如此,如果你的CPU支持64位(自2003年左右,他们都有)。

您的问题暗示您希望在自己的系统环境中运行 64 位应用程序。如果这确实是您的意图,则这不包括所有基于虚拟机的解决方案。我唯一知道的就是 qemu 的内核仿真。所以:

qemu-x86_64 ./your_64bit_app
Run Code Online (Sandbox Code Playgroud)

在您当前的系统上运行您的应用程序,使用您当前的内核,使用您当前的环境变量。当然它不是很快,它必须模拟你的 CPU。

它只能模拟 linux x86-64 应用程序。