我正在通过SuseStudio (OpenSuse 13.x)构建一个最小的“设备”--没什么特别的.只是在上面运行了一些模拟器。我希望操作系统能与尽可能多的工作站兼容,所以我倾向于使用32位来支持更老的处理器。假设我不会做任何内存密集型的事情,那么我应该使用64位是否还有其他原因呢?
我能否合理地确定32位操作系统仍能在现代桌面上工作?
发布于 2015-02-07 22:03:31
首先回答你的最后一个问题,x86-64 CPU (a.k.a )。英特尔64,AMD64,x64.。因此,32位操作系统将在现代桌面上工作。
至于为什么要使用64位,64位指令集增加了各种特性,允许编译器生成更快的代码(特别是有更多的寄存器,它们可以存储更多的值),因此为x86-64构建的同一个应用程序通常比在同一个CPU上构建32位模式时运行得更快。这的确是以为指针使用更多内存为代价的,但是速度的增加通常超过指针的成本。
有关所有这些的更多信息,请访问维基百科。您可能还对x32感兴趣,它使32位软件能够使用64位CPU的速度增强功能,而无需指针开销(但它们只运行在64位CPU上);维基百科也有详细信息。
发布于 2015-02-07 22:02:33
我能否合理地确定32位操作系统仍能在现代桌面上工作?
是。几乎所有64位能力的处理器都支持64位模式或32位模式.
(例外可能是早期的泰铵s,IBM 功率中央处理器等,但没有主流。)
假设我不会做任何内存密集型的事情,那么我应该使用64位是否还有其他原因呢?
是的,有。在32位模式下,您可以寻址多达4GiB的内存。这是最多4GiB虚拟地址空间。如果您用物理内存填充所有这些,那么您将不再受益于正确的地址空间随机化。在具有128 bit或类似的低内存的系统上,这可能不是一个大问题,但是您正在通过使用32位模式和大量内存来牺牲一些安全性。
您还可能会错过一些只有64位模式才能使用的功能。可能影响安全性的一个例子是NX位。这并不是在所有32位CPU中。虽然这与这些CPU的年龄有关,而不是64或32位模式。
三年后更新(2018年)。我们现在已经到了下一个版本的EFI只有64位的时候了。这可能会改变一切。
发布于 2015-02-07 22:28:31
我假设您的问题是关于x86处理器的。
这里有一个折衷解决方案,用于Debian 32位。产生整个系统32位,还添加了一些额外的内核:豌豆内核是32位,但可以寻址超过4GB (理论上高达64 GB )的物理内存,但只有3GB的逻辑(每个进程3GB,1GB是由内核使用)。64位内核还可以处理更多的4GB物理内存和每32位进程4GB的逻辑.64位内核比pea更简单,而且可能更有效。
内核相对较小,因此选择不会增加系统的大小(只需要安装一个)。然而,对于拥有硬件的系统来说,这会产生很大的影响。
https://unix.stackexchange.com/questions/183535
复制相似问题