随着内存需求的快速增长,如今越来越多的系统需要 64 位机器来访问更大的 RAM。
FWIK 在 386 保护模式下,内存指针由两部分组成:由段选择器指定的基地址(32 位)和添加到基地址的偏移地址(32 位)。
要在 64 位中重新编译所有程序,有很多工作要做,例如对于 C/C++ 程序,依赖于机器的 `int' 类型(在 32 位机器中是 32 位,而在 64 位在 64 位机器中)如果使用不正确会导致问题。即使它正在毫无问题地重建,随着内存需求的不断增长,例如有一天我们将使用 128 位机器,我们是否需要再次重建所有程序以符合新的字长?
如果我们只是将基地址扩展为 64 位,从而在整个 RAM 上创建一个像 4GB 窗口一样的段,我们甚至根本不需要 64 位操作系统,不是吗?大多数应用程序/进程不必在服务器端访问 4G+ 内存,例如,如果文件服务器使用 20GB RAM 进行缓存,它可能会被拆分为 10 个进程,每个进程访问 2GB,因此 32 位指针是足够的。并将每个放在不同的段中以覆盖 20GB 内存。
扩展段限制对上层程序是透明的,要做的只是CPU和操作系统,如果我们能让Linux支持在不同的64位段上分配内存(虽然目前段基地址是32位然而),我们可以轻松地在 32 位机器上使用 1TB RAM,不是吗?
我对吗?