关于经常被误解的一个开关:/3GB

对于/3GB这个开关,其实它做的事情很简单明了,但是还是有一些人们对它有一些误解(www.kdtj.net)。今天就来讲一讲。

简单来说,/3GB将会修改默认的4GB虚拟内存空间的分配方式。默认的4GB地址空间将会被分为2GB的用户空间和2GB的内核空间,而如果启用了/3GB开关,则会修改为:3GB的用户空间和1GB的内核空间。

仅此而已,不复杂吧。

但是有些人可能会想着这个开关会做更多的事情。

我想问题可能出在,有些人会觉得”虚拟地址空间”可能代表超越它表面意思的一种特殊意思。其实不然。

术语”地址空间”是指一个数值(称为”地址”)在用于访问某种类型的资源时如何被解释的。

首先,我们有一个物理地址空间,它的每个地址都会指向一块物理内存芯片中的一个实际存在的空间。(学究请注意:是的,它实际上分布在几块内存芯片上,但这在这里并不重要。)

另外,还有一种所谓的I/O地址空间,其中的每个地址都用来使CPU和一种硬件进行通信。

而虚拟地址空间是处理器可以在某一时刻使用的一组可能的指针值(也即内存地址)。换句话说,假设我们有一个地址0x12345678,如果你尝试访问该内存地址,虚拟地址空间决定了你将获得什么样的数值。

虚拟地址空间中的数据内容会不停变化,比如,当你在分配和释放内存的时候。

它也因上下文而异: 每个进程都有自己的虚拟地址空间,进程之间的内存地址访问不会互相受影响。

我们上面说的2GB(或者3GB)的用户空间是指:在任一时刻,在总共4GB的地址空间中,有2GB(或者3GB)的空间对于用户模式的代码来说是可见(可用)的。

后面的文章,我还会继续关注这个主题,会讲述一些人们对/3GB开关的错误理解。

最后

Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。

本文来自:《The oft-misunderstood /3GB switch》

最近我写了个东西

正如你们所知道的,拓扑梅尔智慧办公平台(Topomel Box)是一款绿色软件,主要面向经常使用电脑的朋友。它提供了各种提升办公效率的小功能,同时操作上尽可能地简单方便。

我想:你值得拥有。

主营产品:橱柜门雕刻机