如题所述
优缺点
一个常见的误解是∶除非计算机安装的内存大于 4 GB,否则 64 位架构不会比 32 位架构好。这不完全正确∶
部分操作系统保留了一部分进程地址空间供操作系统使用,造成使用者程序可用于映射内存的地址空间减少。例如,Windows XP DLL 以及 userland OS 组件映射到每一个进程的地址空间,即使计算机装有 4 GB 的内存,也仅留下 2 至 3.8 GB(端视其设置)的可用地址空间。这个限制在 64 位 Windows 中并不会出现。
文件的内存映射对 32 位的架构而言不再合用,尤其是相对便宜的 DVD 烧录技术的引入。大于 4 GB 的文件不再罕见,且如此大的文件无法简单的映射到 32 位架构的内存;只能映射文件的一部分范围到地址空间上,并以内存映射存取文件,当有需要时,就必须将这些范围映射进或映射出地址空间。这是一个问题,因为充裕的内存映射仍是从磁盘至内存最有效率的存取方法,如果操作系统能适当实行的话。
64 位架构主要的缺点是,相对于 32 位架构,占用相同的数据会消秏更多的内存空间(由于肿胀的指针,以及其它型态和对齐补白等可能)。这会增加进程对内存的需求,且可能会影响高效能处理器高速缓存的使用。维持一部分的 32 位模型是一个处理方法,且大致合理有效。实际上,高效能导向的 z/OS 操作系统便采取这个方法,要求程序代码存放在 32 位地址空间的任一数字,数据对象则可(选择性)存放在 64 位区域。
目前主要的商业软件是建立在 32 位代码,而非 64 位代码,所以不能取得在 64 位处理器上较大的 64 位地址空间,或较宽的 64 位寄存器和数据路径的优点。然而,免费或自由软件操作系统的使用者已经可以使用专有的 64 位运算环境。并非所有的应用程序都需要大量的地址空间或操作 64 位数据项,所以这些程序不会享受到较大的地址空间或较宽的寄存器和数据路径的好处;主要受益于 64 位版本的应用程序,并不会享受到使用 x86 的版本,会有更多的寄存器可以使用。
软件的可用性
64 位系统有时缺乏对应的软件,那些软件是写给 32 位架构。最严重的问题是不兼容的驱动程序。尽管大部分软件可执行于 32 位兼容模式(又称作模拟模式,即微软 WoW64 技术),其通常无法执行驱动程序(或类似软件),因为程序通常执行于操作系统和硬件之间,在此直接模拟无法使用。许多开放源始码软件封包可简单的从源始码编译为可执行于 64 位环境操作系统,如 Linux。所需的条件是供给 64 位机器的编译器(通常是 gcc)。目前大部分 64 位版本的驱动程序还不能用,由于缺少可用的驱动程序,所以使用 64 位操作系统会有挫折。
因为设备的驱动程序通常执行于操作系统内核(kernel)的内部,有可能以 32 位进程执行内核,同时支持 64 位的使用者进程。以在内核里的额外消耗为代价,如此可为使用者提供受益于 64 位的内存和效能,且不破坏现存 32 位驱动程序的二进制兼容性。这个机制源于 Mac OS X 启用 64 位进程,同时支持 32 位的驱动
ps:这个解释适用于目前几乎所有系统。
一个常见的误解是∶除非计算机安装的内存大于 4 GB,否则 64 位架构不会比 32 位架构好。这不完全正确∶
部分操作系统保留了一部分进程地址空间供操作系统使用,造成使用者程序可用于映射内存的地址空间减少。例如,Windows XP DLL 以及 userland OS 组件映射到每一个进程的地址空间,即使计算机装有 4 GB 的内存,也仅留下 2 至 3.8 GB(端视其设置)的可用地址空间。这个限制在 64 位 Windows 中并不会出现。
文件的内存映射对 32 位的架构而言不再合用,尤其是相对便宜的 DVD 烧录技术的引入。大于 4 GB 的文件不再罕见,且如此大的文件无法简单的映射到 32 位架构的内存;只能映射文件的一部分范围到地址空间上,并以内存映射存取文件,当有需要时,就必须将这些范围映射进或映射出地址空间。这是一个问题,因为充裕的内存映射仍是从磁盘至内存最有效率的存取方法,如果操作系统能适当实行的话。
64 位架构主要的缺点是,相对于 32 位架构,占用相同的数据会消秏更多的内存空间(由于肿胀的指针,以及其它型态和对齐补白等可能)。这会增加进程对内存的需求,且可能会影响高效能处理器高速缓存的使用。维持一部分的 32 位模型是一个处理方法,且大致合理有效。实际上,高效能导向的 z/OS 操作系统便采取这个方法,要求程序代码存放在 32 位地址空间的任一数字,数据对象则可(选择性)存放在 64 位区域。
目前主要的商业软件是建立在 32 位代码,而非 64 位代码,所以不能取得在 64 位处理器上较大的 64 位地址空间,或较宽的 64 位寄存器和数据路径的优点。然而,免费或自由软件操作系统的使用者已经可以使用专有的 64 位运算环境。并非所有的应用程序都需要大量的地址空间或操作 64 位数据项,所以这些程序不会享受到较大的地址空间或较宽的寄存器和数据路径的好处;主要受益于 64 位版本的应用程序,并不会享受到使用 x86 的版本,会有更多的寄存器可以使用。
软件的可用性
64 位系统有时缺乏对应的软件,那些软件是写给 32 位架构。最严重的问题是不兼容的驱动程序。尽管大部分软件可执行于 32 位兼容模式(又称作模拟模式,即微软 WoW64 技术),其通常无法执行驱动程序(或类似软件),因为程序通常执行于操作系统和硬件之间,在此直接模拟无法使用。许多开放源始码软件封包可简单的从源始码编译为可执行于 64 位环境操作系统,如 Linux。所需的条件是供给 64 位机器的编译器(通常是 gcc)。目前大部分 64 位版本的驱动程序还不能用,由于缺少可用的驱动程序,所以使用 64 位操作系统会有挫折。
因为设备的驱动程序通常执行于操作系统内核(kernel)的内部,有可能以 32 位进程执行内核,同时支持 64 位的使用者进程。以在内核里的额外消耗为代价,如此可为使用者提供受益于 64 位的内存和效能,且不破坏现存 32 位驱动程序的二进制兼容性。这个机制源于 Mac OS X 启用 64 位进程,同时支持 32 位的驱动
ps:这个解释适用于目前几乎所有系统。
温馨提示:答案为网友推荐,仅供参考