为了说明 Solaris 操作环境同时支持 32 位和 64 位,下图并排显示了两个栈。左边的系统仅支持在使用 32 位设备驱动程序的 32 位内核中运行 32 位库和应用程序。右边的系统所支持的 32 位应用程序和库与左边的系统相同。该系统还同时支持使用 64 位设备驱动程序的 64 位内核顶部的 64 位库和应用程序。
64 位环境的主要功能包括支持以下各项:
大虚拟地址空间
大文件
64 位运算
取消某些系统限制
在 64 位环境中,一个进程最多可以使用 64 位(即 18 EB)虚拟地址空间。该虚拟地址空间大约是 32 位进程当前所使用最大空间的 40 亿倍。
由于存在硬件限制,因此某些平台可能不支持完全 64 位的地址空间。
如果应用程序只需支持大文件,则该应用程序可以保留为 32 位并使用大文件接口。但是,如果可移植性并不是主要问题,请考虑将应用程序转换为 64 位程序。64 位程序可以通过一整套接口来充分利用 64 位功能。
很久以前在早期发行版的 32 位 Solaris 中便已提供了 64 位运算。但是,64 位实现现在使用完全 64 位计算机寄存器来进行整数运算和参数传递。通过 64 位实现,应用程序可充分利用 64 位 CPU 硬件的功能。
本质上,64 位系统接口的性能要优于一些等效的 32 位接口。对于担心 32 位 time_t
用完时间时会出现 2038 年问题的应用程序编程人员来说,可以使用 64 位 time_t
。尽管 2038 年看起来还很遥远,但是,对于需要执行与将来事件(如抵押)有关的计算的应用程序,则可能需要扩展的时间功能。