定义 32 位或 64 位处理器要求

定义 32 位或 64 位处理器要求

我对计算机硬件的了解相当广泛,但在考虑操作系统类型时显然并非如此。多年来,我一直遵循经验法则:如果一台机器超过 4GB,则安装 64 位版本以使用所有内存,而选择 32 位操作系统则相反。

在我最近购买的处理器中,我注意到处理器架构的明确细节;“32 位”或“64 位”。我知道这与寄存器中可以存储多少字节以进行内存寻址有关,但这在考虑操作系统时是否也起作用?

例如,如果你的CPU是64位的,但你有2GB的内存,你会选择32位版本的操作系统吗?根据这个问题,答案是肯定的。如果您有时间,有人可以向我解释一下吗?

我想知道在具有 2GB 的 64 位系统上安装 32 位系统的影响,以及内存容量在选择 32/64 位硬件和软件时真正起什么作用。

编辑我纠正了问题第3段的一个错误。

编辑 v2虽然这确实是重复的,但我确实搜索过类似的问题,结果中没有找到上面链接的问题。我怪搜索算法,而不是我现在认为的懒惰。

答案1

请注意,PC 市场上实际上并没有任何标准的 64 位流程;它们都是 EMT64/AMD64,这只是一种扩展内存的 x86 架构,与英特尔的旧 IA64 架构或一些比较鲜为人知的服务器架构(如 SPARC)不同。

因此,x64 CPU 并不是 32 位和 64 位的结合体,而是一个 x64 处理器,其指令集既适用于 32 位操作系统,也适用于 64 位操作系统。在访问扩展内存时,操作系统才是主要考虑因素。

使用 x64 有很多好的理由,包括内存访问和虚拟化(您只能在带有 vt-x 的 x64 系统上运行虚拟 x64 操作系统)。

使用 32 位操作系统的唯一好理由是仅具有 32 位驱动程序的设备,以及静态链接到 32 位依赖项的应用程序。

答案2

我有一台配备 64 位 CPU 和 4GB RAM 的计算机。当我将 Linux 从 64 位切换到 32 位时,我确实注意到内存有所改善。我这样做是因为我在同时运行多个程序时经常遇到内存问题,而且我读到过它可以有所帮助。它确实有帮助,尽管最终我也遇到了一些内存限制。

然后,由于安装了 32 位操作系统,我开始遇到兼容性问题,也就是说,如果没有虚拟机,我无法编译 Android。所以我改回了 64 位。我仍然感到内存压力有点大,但至少我可以运行专为 64 位机器制作的软件。无论如何,我不相信你会想用 2GB 的内存来编译 Android,但在切换之前请检查是否有具有此类依赖关系的东西。

我倾向于说 32 位会对你有帮助,因为它有额外的内存(32 位指针与 64 位指针等),但要注意仅针对 64 位代码的依赖关系。依赖关系并不多,但一旦出现,你就会被困住。另一方面,由于向后兼容的努力,在 64 位操作系统上使用 32 位软件大多不会出现问题。

相关内容