cre*_*lee 8 linux 64bit arm 32bit
我很好奇。是否可以在具有 64 位处理器的 32 位操作系统上安装 64 位程序?
我在 raspberry pi 3 上运行 Linux,并尝试安装较新版本的 MongoDB:
armv7l GNU/Linux
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
Run Code Online (Sandbox Code Playgroud)
Gil*_*il' 20
是否可以在具有 64 位处理器的 32 位操作系统上安装 64 位程序?
原则上是的,但处理器和操作系统必须支持它。
在 ARMv8 上,32 位 (Aarch32) 内核无法运行 64 位 (Aarch64) 进程。这是处理器的限制。
还有其他处理器没有此限制,例如可以在 x86_64 处理器上的 x86_32 内核之上运行 x86_64 进程,但很少有内核支持它,大概是因为它的实用性有限(大多数情况下,您节省了通过使其成为 32 位在内核中的 RAM 位)。Linux 不支持它,但 Solaris 支持。
如果您运行 64 位内核,则可以保留现有的 32 位操作系统。Aarch64 Linux 内核可以运行 Aarch32 进程。Raspbian 不支持开箱即用,因此您需要同时维护 32 位操作系统和 64 位操作系统。您可以使用其中一个作为主操作系统(即运行init和系统服务的一个),另一个使用 chroot 运行特定程序。请参阅如何在 64 位 Debian/Ubuntu 上运行 32 位程序?实用的方法。
请注意,您将需要安装 64 位程序所需的所有库。任何给定的进程都必须是完全 32 位或完全 64 位,因此您不能在 64 位可执行文件中使用 32 位库。
除非您有充分的理由保留 32 位系统,否则如果您需要运行 64 位可执行文件,安装 64 位系统会更容易。
请注意,64 位程序可以做而 32 位程序不能做的唯一一件事是寻址超过大约 3GB 的虚拟内存,这在具有 1GB RAM 的系统上的实用性有限。您可能会从额外的、更大的寄存器中获得性能优势,但也会因额外的内存访问而损失性能。
在某些架构上,是的。但不是在 ARM 或 x86 上。
您可以使用 QEMU 来模拟 64 位系统,但您不想这样做。
归档时间: |
|
查看次数: |
6203 次 |
最近记录: |