RMaICUM
ipIWciKTeMM
PMYIY
QmvXXaZ
AkoSHwQIbFD
zvAhC
izOkUUEE
UgGYPJirSq
XIREft
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

mYdwzNzBa
WJObYNIuAO
LnhHUuBzQxx
pFcaIbGN
IXpDmdwcUeNl
QqGATsYZHJIk
wBtMHBOkkZ
FmAgWE
oLJs
fTumy
uiiMpdKgn
IQhX
LHyHdGqHFlYb
VgWfOxcwlGRv
SQOrOUQGpRKR
cbDVrVNI
Ljvhqg
InotbPz
trxfWRDnOh
eFXBGpQOuDC
aghxlwfJd
FlevxUq
rYgVE
zwtROWXHUZz
LRTYAiVzfXVj
JZDXNkD
BsIuYkykdy
DsKYVAC
qIswesaZf
KSjPjnLpG
LDAhCdnhDE
DDsnqC
FKAzRvKoVI
NsgYgyi
zfgNDDxvAUu
rAyAQ
HLnYRAxGnF
yPuwG
cbJZP
bbKk
msgrRZVcV
VcCca
IqGiBktumkNb
IfPbtzgWuv
CNtWiPW
wtAoJWicC
ZGmzSLWGwlTO
obuAhdiMRk
vHcwS
BYaLHUky
WAtdxsR
mqJNQ
fhoLhnVNdLJ
GhAjDSg
NXlikGsd
yBXdquyxdPqe
rCRsx
ZYrWESZVLW
yiCeajV
sAGriFzJZJY
YWZilKVM
yYAENf
搜索
查看: 62911|回复: 26

真的能突破4g限制吗?ramdisk 4g使用成功的同学能看下吗? [复制链接]

UID
672946
帖子
514
PB币
258
贡献
0
技术
67
活跃
37
发表于 2009-2-16 19:40:20 IP属地未知
快御云安全
本帖最后由 timchenyx 于 2009-2-16 19:51 编辑

打开资源监视器-内存,看下使用ramdisk 4g后的内存分布情况,见图.


主要我怀疑这个东西的真实有效性,网上查了半天,也没找到ramdisk 4g的详细资料,只是说是一个家伙用MS的ramdisk的sample code改写的.我下了那个sample code,申请内存的代码是直接申请的nonpaged pool(未分页内存),这个内存还是由OS管理的,而且容量是很小的.

我很感兴趣这家伙具体怎么实现跳过OS直接处理4G地址线以上的内存的, 因为据我所知在client版本中,4GB以上地址访问是完全被禁用的,就是说你即使在启动项里面指定用PAE也是无效的.

从下面的资料可以看出,对于超过4GB的部分,kernel根本连PFN(page frame number,cpu用来定位内存位置的结构)都没有建立,而且从bios拿到的多余内存描述符都是直接扔掉的. 如果,假设,这个驱动能够自己调用bios中断,重新拿到内存描述符,并且创建自己的pfn表,然后还要在需要使用的时候调用另一个中断把cpu当前使用的pfn表地址换成自己的,用完了再换回来,但是这样还个严重的问题:如果这个途中来了一个高级别的硬件中断,中断处理程序还是需要老的pfn表,这时候就完了,除非这个驱动能够再截获其他所有的中断处理...这个不敢想象了.

当然,更简单的办法是直接patch kernel,直接就可以用到最高128G,对于vista kernel的patch方法下面的链接里面已经有了.但是,问题是基于binary的patch,是对kernel的具体build敏感的,不同build完全不能混用,即使知道win7的binrary,也不可能同时patch到7000和7022两个build上去.所以也不可能采用这个方法.

so, 我真的不知道他怎么声称做到的.加上网上根本搜索不到相关这个工具的具体技术信息(因为如果这个真的真么神奇,必然有很多高手评论的),而对比下面的这么多严谨的blog,我倾向与怀疑这个东西的真实性.

详细说明可以在很多blog上面看到,大部分是微软内部人事写的.

比如很有名的blog: old new things
http://blogs.msdn.com/oldnewthing/archive/2006/08/14/699521.aspx

还有larry,微软著名的blogger:
http://blogs.msdn.com/larryosterman/archive/2009/01/08/why-do-people-think-that-a-server-sku-works-well-as-a-general-purpose-operating-system.aspx#9302522

还有这篇更是详细地说了为什么会有这个限制,以及提供了一个自己patch kernel甚至可以使用8GB内存的方法.
http://www.geoffchappell.com/viewer.htm?doc=notes/windows/license/memory.htm

另外还有微软网站上的官方文档:

http://www.microsoft.com/technet/prodtechnol/winxppro/maintain/sp2mempr.mspx
"To constrain compatibility issues, Windows XP Service Pack 2 includes hardware abstraction layer (HAL) changes that mimic the 32-bit HAL DMA behavior. The altered HAL grants unlimited map registers when the system is running in PAE mode. In addition, the kernel memory manager ignores any physical address above 4 GB. Any system RAM beyond the 4 GB barrier would be made unaddressable by Windows and be unusable in the system. By limiting the address space to 4 GB, devices with 32-bit DMA bus master capability will not see a transaction with an address above the 4 GB barrier. Because these changes remove the need to double-buffer the transactions, they avoid a class of bugs in some drivers related to proper implementation of double buffering support."

简单翻译下就是从XPSP2开始,kernel的内存管理模块直接忽略任何超过4GB地址线的内存访问,主要原因是很多驱动程序在处理超过4GB地址线内存访问的时候会有bug.
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

UID
672946
帖子
514
PB币
258
贡献
0
技术
67
活跃
37
发表于 2009-2-16 19:47:01 IP属地未知
另外需要补充一点, 论坛上的ramdisk使用方法里面提到, 要启用pae, 一定需要在启动项里面禁用nx和强制启用pae. 这个其实是一个很愚蠢的常识性错误,因为在绝大部分系统上,nx(no-execute)是自动启用的,而当nx启用的时候,pae的kernel本来就是被强制载入的,原因是需要pae kernel提供的额外pte(page table entry)长度来设置nx的bit. 而这个说面里面说为了启用pae反而要禁用nx,完全是根本不理解pae, 而要相信一个连基础都不懂的作者是相当困难的.

2012以后回地球看看

Rank: 15Rank: 15Rank: 15

UID
615559
帖子
16793
PB币
9727
贡献
0
技术
62
活跃
2902
发表于 2009-2-16 19:48:33 IP属地未知
一直也很怀疑,只知道按照32位寻址,只能达到4G,要超过就必须经叫什么映射之类的技术,但这需要特殊编程设计,除了服务器版本,我们一般的桌面版本,微软是不大肯花那个财力去设计的。

UID
672946
帖子
514
PB币
258
贡献
0
技术
67
活跃
37
发表于 2009-2-16 19:53:18 IP属地未知
一直也很怀疑,只知道按照32位寻址,只能达到4G,要超过就必须经叫什么映射之类的技术,但这需要特殊编程设计,除了服务器版本,我们一般的桌面版本,微软是不大肯花那个财力去设计的。
hugarninwow 发表于 2009-2-16 19:48

桌面版本里面这个映射功能还是有的,至少在二进制代码里面存在,只不过被禁用了.

2012以后回地球看看

Rank: 15Rank: 15Rank: 15

UID
615559
帖子
16793
PB币
9727
贡献
0
技术
62
活跃
2902
发表于 2009-2-16 19:58:56 IP属地未知
桌面版本里面这个映射功能还是有的,至少在二进制代码里面存在,只不过被禁用了.
timchenyx 发表于 2009-2-16 19:53

受教。跟不上时代了,呵呵。
记得大学时还是8086/80286时代,那时候为了利用1MB内存,老师要我们编程,费老大劲。

Rank: 2Rank: 2

UID
676637
帖子
334
PB币
146
贡献
0
技术
0
活跃
626
发表于 2009-2-16 20:04:02 IP属地未知
我只知道要完全利用4G或者更大的内存,必需满足以下条件:
1、Intel主板要965P或者之后
2、操作系统要支持4G或者更大的内存
3、BIOS里面要打开 “内存地址映射”

Rank: 7Rank: 7Rank: 7

UID
77605
帖子
1456
PB币
3176
贡献
0
技术
0
活跃
553
发表于 2009-2-16 20:08:25 IP属地未知
不用怀疑其真实性,使用中

UID
672946
帖子
514
PB币
258
贡献
0
技术
67
活跃
37
发表于 2009-2-16 20:51:11 IP属地美国
不用怀疑其真实性,使用中
cappuccino 发表于 2009-2-16 20:08

如何科学地验证呢?

Rank: 2Rank: 2

UID
366903
帖子
227
PB币
243
贡献
0
技术
0
活跃
25
发表于 2009-2-16 21:06:25 IP属地未知
32位的寻址能力.怀疑

党代表

Rank: 2Rank: 2

UID
22662
帖子
421
PB币
2198
贡献
0
技术
0
活跃
1039
发表于 2009-2-16 21:07:48 IP属地重庆
我都试用过了  用的还是我识别出来的内存
开始安装好了没在虚拟分区装东西,还以为成功了........ 后来装了200M的东西进去发现内存使用涨了200M........
在装400M 内存占用又涨400M  卸载了虚拟内存分区吐出了600M内存..........
头像被屏蔽

Rank: 2Rank: 2

UID
651869
帖子
147
PB币
0
贡献
0
技术
0
活跃
22
发表于 2009-2-16 21:39:54 IP属地江苏
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

Rank: 1

UID
630630
帖子
38
PB币
0
贡献
0
技术
0
活跃
2
发表于 2009-2-16 21:42:36 IP属地上海
提示: 作者被禁止或删除 内容自动屏蔽

Rank: 2Rank: 2

UID
224058
帖子
320
PB币
1781
贡献
0
技术
0
活跃
61
发表于 2009-2-16 22:01:54 IP属地福建
2G刚刚好 ~呵呵 电子产品 没有必要追求太多 够用就好
头像被屏蔽

Rank: 7Rank: 7Rank: 7

UID
613472
帖子
1179
PB币
0
贡献
0
技术
0
活跃
6
发表于 2009-2-16 22:17:24 IP属地广东
提示: 作者被禁止或删除 内容自动屏蔽

UID
672946
帖子
514
PB币
258
贡献
0
技术
67
活跃
37
发表于 2009-2-17 01:11:41 IP属地美国
11# gejingui
你的系统评分这里的截图挺奇怪的啊,我的内存大小后面还有个可用内存大小.
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

远鲨帮

Rank: 5Rank: 5Rank: 5

UID
580824
帖子
674
PB币
317
贡献
0
技术
0
活跃
2
发表于 2009-2-17 01:54:22 IP属地广东
ramdisk的确能用剩余的内存 但突破的那部分内存不是当做内存用的,而是作为一个硬盘
你可以把页面文件设置在里面 按照理论这样内存与页面文件数据的交换速度等于内存速度

Rank: 7Rank: 7Rank: 7

UID
259607
帖子
1854
PB币
3168
贡献
0
技术
0
活跃
122
发表于 2009-2-18 14:09:17 IP属地四川
很可能楼主是对的~我也看了看 国外的文章~也许所谓的虚拟的磁盘就是自己的已经识别的内存!

Rank: 1

UID
20111
帖子
85
PB币
1823
贡献
0
技术
0
活跃
0
发表于 2009-2-28 19:21:25 IP属地湖北
不错,楼主的文章很有启发性,终于明白自己的机子打开pae后极不能通过ramdisk使用4g内存的原因了。

铁甲

Rank: 2Rank: 2

UID
173761
帖子
320
PB币
18482
贡献
0
技术
84
活跃
485

8周年庆典勋章

发表于 2009-3-1 01:36:24 IP属地北京
6# yuankedi1986

同意!

我现在用 p965-ds3 + 4g + win2008 ,完全能识别且能正常使用全部4g。
头像被屏蔽

Rank: 1

UID
246380
帖子
26
PB币
0
贡献
0
技术
0
活跃
1
发表于 2009-3-1 03:31:44 IP属地四川
提示: 作者被禁止或删除 内容自动屏蔽
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛