- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
系统实际可扩展内存
win7 32位其实早就支持128G内存,只是微软故意限制罢了操作系统,?内存,?Windows,?逻辑推理,?源代码如何证明这个事情呢,最终证据这种东西,除非把Windows源代码放到你面前,否则一切证据都是浮云。不过呢,我还是可以给你证明32位操作系统能完全利用4G以上内存,至于你看不看得懂和相不相信,就不是我能决定的了。现在我从三个方面给你证明。分别是逻辑推理、内部原理、自己动手。首先,从逻辑推理的角度看。首先我们知道,Windows内核的实体是ntoskrnl.exe(当然还可能是ntkrnlpa.exe,ntkrnlmp.exe,ntkrpamp.exe),操作系统的基本机制在Kernel层实现,内存管理器在Executive层实现。换句话说,操作系统能识别和利用多少内存是内核决定的。首先承认一个事实。32位Windows Client版本,例如xp/vista/7,在正常情况下最大只能识别4G内存。而同样是32位的Windows Server版本,例如2000/2003/2008却可以识别高达128G的内存。你可能说内核不一样,那么以Windows Server 2008为例,其内核和Windows Vista SP1一模一样(这种常识就不要找我要证据了,请自己查微软知识库或自己试验)。为何一个不支持4G另一个又支持呢?这显然不是32位操作系统本身的技术限制,肯定是其他方面的限制。这样我们就从逻辑推理的方法推断出32位操作系统肯定是支持4G以上内存的。那么,到底是什么因素限制了32位Client版本Windows的可用内存大小呢?下面从内部原理的角度分析。很多人说32位操作系统不支持4G以上内存的理由是:32位处理器寻址能力有限,只能寻2的32次方那么多址,正好4G。那么,说这句话的人,请你告诉我,什么是“址”?难道是物理地址吗?错!这里的“址”,指的是虚拟地址。在Windows NT内核中,进程之间是相互隔离的,各个进程拥有独立的“地址空间”,32位操作系统中,每个进程拥有独立的4GB虚拟地址。注意是每个进程的地址空间容量只有4G,而不是总的物理内存大小只有4G,请区分清楚!用户态应用程序无需访问真实的物理地址,而是通过访问虚拟地址,接受操作系统的调度,经过翻译后访问真实的物理地址。这是操作系统内存管理的精髓。事实上,早在英特尔奔腾2的时代,处理器就从硬件层面支持了物理地址扩展(PAE)。页式地址转换技术又原来的两级页表变成了三级,这样就可以让虚拟地址映射到更多的物理地址。Windows NT内核中,早就原生支持了PAE。Windows安装程序会自动选择内核的PAE版本ntkrnlpa.exe或ntkrpamp.exe。所以,Windows根本就是真真正正支持4G以上内存的操作系统。那么,Windows NT 6.x是怎样限制可用内存最大容量的呢?事实上,Windows的许可信息保存在了注册表HKEY_LOCAL_MACHINE\SystemControlSet001\Control\ProductOptions中,在Windows启动过程中,ZwQueryLicenseValue被调用,用以读取ProductPolicy中的Kernel-WindowsMaxMemAllowedx86,这个值限定了特定版本的Windows能够使用的最大物理内存。我们看一下内核ntkrnlpa.exe的部分反汇编结果:7C xx? ?? ?? ?? ?jl? ?? ?default8B 45 FC? ?? ?mov? ???eax,dwordptr [ebp-4]85 C0? ?? ?? ???test? ? eax,eax74 yy? ?? ?? ?? ?je? ?? ?defaulteax寄存器储存了ZwQueryLicenseValue的结果,根据查询到的版本许可,超过限制的内存部分将直接被ntos吃掉。你可能会想修改注册表键值ProductPolicy来突破限制,不过很遗憾,微软早就防着你这一手呢,ExGetLicenseTamperState/ExSetLicenseTamperState会检查License Value是否被篡改。不过如果Patch内核,直接修改ntkrnlpa.exe,是可以绕过检查,完全利用到4G以上内存的。这也是现在市面上一些所谓“破解”的原理。最后,我们自己动手亲自看看。这里需要用到微软出品的调试器windbg。比如我的机器安装4G内存,Windows显示可用内存2.98G。我们用windbg来看看怎么回事。lkd ddMmHighestPhysicalPage8088b124??000bf7ff 000bf39900000000lkd ddMmNumberOfPhysica
您可能关注的文档
- 米饭15种新奇特做法.doc
- 米顿罗计量泵分类及计量泵的工作原理.doc
- 米老鼠︰从简笔画到填色的整个过程图文的教程.doc
- 类似七剑战歌的震撼音乐大全〔.doc
- 类神系列1︰用户运营环节中易忽略的一些错误、细节、及解决方法.doc
- 粉体的基本性质和功能.docx
- 类比︰一种有效的教学方法.doc
- 粉喷桩处理软基设计方法和施工质量管理.doc
- 粉末体压缩刚度特性.docx
- 米饭绝佳做法看看吧.doc
- 医药-免疫疾病用药深度二:踏时代浪潮,自免药物乘风而起(上篇).pdf
- 医疗器械行业深度分析:呼吸道检测:需求高涨+供给渗透,生机勃勃的成长期赛道.pdf
- 云原生安全能力指南(2024).pdf
- 长三角地区学生营养早餐倡议白皮书.pdf
- 医疗器械-行业2024半年报总结:关注设备换新政策递延拐点和高耗集采落地品类结构性机会.pdf
- 养老行业“中长期资金”研究系列之一:日本养老金体系洞察,GPIF引领的资产配置与全球投资(202410).pdf
- 细胞治疗行业深度报告:实体瘤和异体CAR-T破局在即,看好本土突围.pdf
- 医药-生命科学服务系列研究:细胞培养基:国产代替潜力巨大,出海贡献新增长点.pdf
- 移动充电机器人行业研究报告(202405).pdf
- 医药-免疫疾病用药深度二:踏时代浪潮,自免药物乘风而起(下篇).pdf
文档评论(0)