书接上回
/3GB开关的一个不利影响在于,它将内核空间压缩至1GB,从而迫使内核代码必须能在一个较小的地址空间中运行。
对于这个空间限制,最受影响的是显卡驱动程序。为了管理显卡上的内存,显卡驱动需要能访问到这些地址空间,从而需要更多的虚拟空间进行映射操作。当一个显卡驱动需要访问一个256MB的地址空间的时候,这个操作通常不会成功,因为内核中确实没有这么多的可用空间留给显卡驱动程序了。
正所谓:巧妇难为无米之炊。
所有的内核数据结构都必须能合理地存放在这总共1GB的地址空间中,包括页表(Page Table),页目录(Page Directory),位图,显卡驱动占用。地址空间资源实在是太过紧张了,但如果你愿意减少一些不必要的空间使用(例如不需要这么大的显卡空间映射),系统几乎可以继续稳定运行。
这就有点像是在一个狭小的试衣间里换衣服。你可以想方设法实现,但这是一场真正的斗争,你将不得不做出某种牺牲,而且结果并不总是很美好。
最后
Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《Kernel address space consequences of the /3GB switch》
最近我写了个东西
正如你们所知道的,拓扑梅尔智慧办公平台(Topomel Box)是一款绿色软件,主要面向经常使用电脑的朋友。它提供了各种提升办公效率的小功能,同时操作上尽可能地简单方便。
我想:你值得拥有。