我知道市场上有 32/64 位操作系统。
问题 1->但这实际上意味着什么?
问题2->最低位操作系统和最高位操作系统是什么?
答案1
但这实际上意味着什么?
这意味着用于内存寻址的位数。
内存由大量字节组成。每个字节都有一个唯一的地址。你可以把内存想象成一条有房屋的街道,其中一所房子代表一个字节*,门牌号代表地址。现在想象一下,有人决定门牌号应该总是 3 位数字。这意味着最低的门牌号是 000,最高的是 999。这很简单,但这意味着你不能拥有超过 1000 所房子,因为你的门牌号已经用完了。
您的内存也一样:x 位是您的地址的位数。唯一的区别是数字是二进制的。32 位操作系统使用正好有 32 位的二进制数(一个二进制数字 = 一个位)。
因此,在 32 位系统上,您可以拥有 2^32 个可能的地址,即大约 40 亿个。40 亿字节为 4 GB。如果您的内存空间超过 4 GB,则意味着您只能使用 4 GB 的可用内存,因为您根本没有剩余内存的地址。
如今,拥有超过 4 GB 的 RAM 已成为常态,我们当然希望使用这些内存。在这种情况下,需要一个解决方案,我们能做的最简单的事情就是增加地址空间。虽然任何更高的位数都可以,但我们通常只需将位数从 32 增加一倍到 64。因此,我们有 2^64 字节的地址,即 16*2^60 字节或 16 艾字节。
请注意,营销人员有时会试图让我们相信 64 位操作系统/CPU 比 32 位操作系统/CPU 更快。然而事实并非如此***。实际上,增加地址大小会使速度变慢,因为数字越大,计算就越耗时,而且我们确实需要计算地址。如果您的内存足够小,以至于您可以完全使用 32 位来寻址,那么使用 64 位 CPU/OS 是毫无意义的。
最低位操作系统和最高位操作系统是什么?
您可以使用的位数没有限制。“一位操作系统”实际上没有意义,因为这意味着您的计算机不能拥有超过 2 个字节的内存。我认为优秀的操作系统从 8 位开始。32 位是最常见的,尽管 64 位正在迅速发展,并最终将取代 32 位。我听说过一些拥有 128 位的大型机,但我认为实际上不存在更高的系统,因为 128 位已经为您提供了难以想象的大量地址 ;-)。
* 不一定是每个字节一个地址。这是当今架构中最常见的单位,但理论上我们也可以选择单个位或多个字节。例如,Java 虚拟机内部有时会以 4 字节的倍数寻址。但是,您需要 CPU 和操作系统的支持才能使用它。
** 当然还有其他可能性。例如 PAE(物理地址扩展)。此解决方案将内存划分为较小的段,每个段不超过 4 GB。使用 PAE,您可以寻址最多 64GB。在 64 位 CPU 普及之前,这通常用于具有超过 4 GB RAM 的服务器上。
*** 好吧,新的 64 位 CPU 当然比旧的 32 位 CPU 更快。但这并不是因为它们是 64 位的,而只是因为 CPU 总体上已经进化了。如果我们用在此期间学到的所有知识构建一个新的 32 位 CPU,它将比今天的 64 位 CPU 更快。
答案2
处理器的“位”实际上可以表示多种含义;CPU 内部和外部的很多东西都受位数限制。但是,对于 x86 CPU,存在以下差异:
- 与 32 位 CPU 相比,64 位 CPU 可以使用更多的 RAM,且无需使用 PAE 等解决方法。
- AMD 的 64 位架构已成为主流,它为 CPU 添加了更多通用寄存器。寄存器是用于计算的临时保存区,速度比 RAM 快得多。
- CPU 中的所有寄存器都是 64 位的。这意味着 CPU 可以用更少的指令处理更大的值。
就 PC 兼容的 Intel CPU 而言,最低位操作系统是 16 位操作系统,例如 DOS、CP/M-86、Xenix 和 Windows 3.x。如果我没记错的话,Intel 确实制造了几款运行 CP/M 变体的 8 位芯片(8008、8080),当然还有旧的 4004,它是一种 4 位芯片,但它从未运行过任何操作系统。目前没有人生产与 x86 兼容的 128 位或更高版本的芯片。