为什么在 Ubuntu 的 AMD64 64 位安装上有一个/usr/lib
和一个/usr/lib32
目录,但只有一个/usr/bin
和没有目录?/usr/bin32
如果或者当 Debian/Ubuntu 开始在他们的 ELF 中支持多目标架构二进制文件时,这个目录分支是否变得不必要了?
为什么在 Ubuntu 的 AMD64 64 位安装上有一个/usr/lib
和一个/usr/lib32
目录,但只有一个/usr/bin
和没有目录?/usr/bin32
如果或者当 Debian/Ubuntu 开始在他们的 ELF 中支持多目标架构二进制文件时,这个目录分支是否变得不必要了?
这个想法是,您可能希望在系统上同时安装同一个库的 32 位和 64 位版本,以适应使用任一体系结构的二进制文件,而在两种不同的体系结构中使用相同的二进制文件毫无意义。
某些应用程序非常需要指针,在这种情况下,为小型数据集运行 32 位版本可能会更高效,因为您可以节省内存并减少缓存未命中。这最多只能为 i386 使用 3GB 的地址空间(或 2GB,取决于内核编译时选项)。
如果遇到 32 位二进制文件更有意义的情况,您可以自己重新编译所述二进制文件。然而,对于发行版来说,这是一个无法处理的极端情况。如果您觉得这个决定是错误的,您可以随时创建功能请求。
另一种方法是安装整个发行版的 32 位版本,并使用 64 位内核运行它。这会很好地工作,每个进程都可以访问 4GB 内存(而不是前面提到的 3GB 或更少),系统可以使用超过 4GB 的 RAM,并且内核不需要任何 32 位的技巧内核使用(例如PAE)。
Debian 已经有了多架构版本:
http://cdimage.debian.org/debian-cd/6.0.5/multi-arch/iso-cd/
您可以安装它并查看它是如何完成的。