> 4位内存用于在64位Solaris(超大内存)上运行的32位应用程序

时间:2011-11-11 12:50:59

标签: memory memory-management solaris

MS Windows和Oracle Linux都允许32位应用程序使用> 4GB内存。 Windows方法是AWE:Address Windowing Extensions,Linux的方法是Very Large Memory

工作原理:32位应用程序无法直接解决> 4 GB的虚拟内存;但64位操作系统和4GB内存对某些应用来说太小了。因此,VLM和AWE允许应用程序从64位操作系统(甚至是带有AWE的32位操作系统)保留大量内存。 32位应用程序无法直接寻址此内存,但它可以要求操作系统将大容量内存的某些部分映射到第一个4GB(进入32位虚拟空间),然后可以访问,修改该内存;然后它被取消映射(使用OS请求)。

问题是:Solaris OS(版本10或11; x86_64或sparc64)中是否存在类似VLM或AWE的内容?

2 个答案:

答案 0 :(得分:2)

没有我知道的库,但在Solaris(以及支持tmpfs和mmap的所有Unix / Unix操作系统)下实现它将非常简单。

只需在/ tmp中创建一个所需大小的文件(例如:16 GiB)(假设/ tmp在tmpfs上,默认配置)并让进程映射此文件的各个区域以访问内存想要补偿。

如果您真的想要访问物理内存而不是虚拟内存,可以使用Solaris ramdisk支持(ramdiskadm)而不是tmpfs。

答案 1 :(得分:0)

Solaris支持PAE(物理地址扩展),但谷歌搜索不会描绘漂亮的图片。可用的信息非常少,而且大多数都是可怕的警告,即一群第三方驱动程序无法使用它。