多架构及其二进制文件

多架构及其二进制文件

为什么会有/usr/lib 一个/usr/lib32目录,但是仅有的在 AMD64 64 位安装的 Ubuntu 上没有目录?如果或者当 Debian/Ubuntu 开始在其 ELF 中支持多目标架构二进制文件时,这个目录分支是否变得不必要/usr/bin/usr/bin32

答案1

这个想法是,您可能希望在系统上安装同一个库的 32 位和 64 位版本,以适应使用任一体系结构的二进制文件,而在两个不同的体系结构中拥有相同的二进制文件就没有什么意义了。

有些应用程序非常依赖指针,在这种情况下,为小型数据集运行 32 位版本可能会更有效,因为您可以节省内存并减少缓存未命中。这只能在 i386 的 3GB 地址空间下工作(或 2GB,取决于内核编译时选项)。

如果您遇到 32 位二进制更有意义的情况,您可以自己重新编译该二进制。但是,对于发行版来说,这种情况太过极端。如果您觉得这个决定是错误的,您可以随时创建功能请求。

另一种方法是安装整个发行版的 32 位版本,并使用 64 位内核运行它。这样可以正常工作,每个进程都可以访问 4GB 内存(而不是前面提到的 3GB 或更少),系统可以使用超过 4GB 的 RAM,并且内核不需要 32 位内核使用的任何技巧(例如(PAE)。

答案2

Debian 已有多架构版本:

http://cdimage.debian.org/debian-cd/6.0.5/multi-arch/iso-cd/

您可以安装它并查看它是如何完成的。

相关内容