32位系统的X86到底能支持多大内存

简介:

微软最新Windows Server 2008 R2 \ 以及最新的Microsoft Office SharePoint ( MOSS ) 2010 \ Project Server 2010 \ Exchange 2010 \ Search Server 2010 等几乎全线主流服务器产品已经都不再提供32位的版本了,而且据说下一版的Windows 8也将只有64位版了,可以说64位时代已经真正来临了(尽管从80386时代(1985年)的16位到升级成32位起已经过去了25年,这在IT界已经像是几个世纪那么久了),但最近还是有一些客户在32位与64位选择之间纠结,所以把32位系统支持的最大内存给大家列一下,了解一下末日偷欢的32位系统大限到底在哪里。

32位的Windows 都使用 4 GB 的虚拟地址空间,其中 2 GB 分配给用户模式进程(例如应用程序),另外 2 GB 分配给内核模式进程(例如操作系统和内核模式驱动程序)。系统只能支持4G的物理内存大家是知道的,操作系统保留高位的2G寻址空间以保安全,每个独立应用程序所以寻址的虚拟内存地址是低位的2G,这个可能多数人也知道。

另外,有一些方法可以使X86的应用程序能访问更多的内存空间:

1.服务器版的Windows 2000 、Windows 2003 、Windows 2008等服务器端操作系统可以通过有与硬件相配套的PAE(Physical Address Extension)物理地址扩展来寻址额外的内存,如在boot.in中通过/PAE打开:

操作系统
支持 PAE 后的最大内存容量

Windows 2000 Advanced Server
8 GB 的物理 RAM

Windows 2000 Datacenter Server
32 GB 的物理 RAM

Windows XP (所有版本)
4 GB 的物理 RAM*

Windows Server 2003 (and SP1) Standard Edition
4 GB 的物理 RAM*

Windows Server 2003 Enterprise Edition
32 GB 的物理 RAM

Windows Server 2003 Datacenter Edition
64 GB 的物理 RAM

Windows Server 2003 SP1 Enterprise Edition
64 GB 的物理 RAM

Windows Server 2003 SP1 Datacenter Edition
128 GB 的物理 RAM
 


2.同时服务器版的Windows 2000 、Windows 2003 、Windows 2008等也可以通过打开启动选项的3GB开关(如在boot.ini中/3GB),使单进程的寻址空间达到3G,比未设置的2G多出来1G,不少服务器的应用性能,确实能提升不少(50%)

3.某些特殊的应用有一些绕开操作系统使用内存的绝活,比如Microsoft SQL Server 企业版(2000 2005 2008的32位版都支持)的地址窗口化扩展插件 AWE(Address Windowing Extensions )技术,内存上限与PAE大同小异。

说完了X86转头说说X64,尽管有说法当前的x64并非真正使用64位的地址总线,而是48位,所以内存上限是 2^48。尽管如此,X64内存寻址空间最高可达16TB,而在相关操作系统及处理器搭配之下,应用程序可使用之寻址空间可达8TB,不仅能对诸多应用程序的开发与编译,产生立即而明显的效益,对于一般使用者而言,能够在x86架构的应用向下兼容(绝大多数)的基础上,从而获致使用效率的大幅提升,实在是最有价值的解决方案。










本文转自 qq8658868 51CTO博客,原文链接:http://blog.51cto.com/hujizhou/1039978,如需转载请自行联系原作者
目录
相关文章
|
17天前
|
存储 缓存 监控
|
21天前
麒麟系统mate-indicators进程占用内存过高问题解决
【10月更文挑战第7天】麒麟系统mate-indicators进程占用内存过高问题解决
103 2
|
14天前
|
运维 JavaScript Linux
容器内的Nodejs应用如何获取宿主机的基础信息-系统、内存、cpu、启动时间,以及一个df -h的坑
本文介绍了如何在Docker容器内的Node.js应用中获取宿主机的基础信息,包括系统信息、内存使用情况、磁盘空间和启动时间等。核心思路是将宿主机的根目录挂载到容器,但需注意权限和安全问题。文章还提到了使用`df -P`替代`df -h`以获得一致性输出,避免解析错误。
|
23天前
麒麟系统mate-indicators进程占用内存过高问题解决
【10月更文挑战第5天】麒麟系统mate-indicators进程占用内存过高问题解决
94 0
|
2月前
|
监控 Ubuntu API
Python脚本监控Ubuntu系统进程内存的实现方式
通过这种方法,我们可以很容易地监控Ubuntu系统中进程的内存使用情况,对于性能分析和资源管理具有很大的帮助。这只是 `psutil`库功能的冰山一角,`psutil`还能够提供更多关于系统和进程的详细信息,强烈推荐进一步探索这个强大的库。
40 1
|
3月前
|
缓存 Kubernetes 数据中心
在Docker中,如何控制容器占用系统资源(CPU,内存)的份额?
在Docker中,如何控制容器占用系统资源(CPU,内存)的份额?
|
3月前
|
缓存 Ubuntu Linux
在Linux中,如何检查系统的CPU和内存使用情况?
在Linux中,如何检查系统的CPU和内存使用情况?
|
3月前
|
存储 编译器 C语言
【C语言篇】数据在内存中的存储(超详细)
浮点数就采⽤下⾯的规则表⽰,即指数E的真实值加上127(或1023),再将有效数字M去掉整数部分的1。
307 0
|
7天前
|
存储 C语言
数据在内存中的存储方式
本文介绍了计算机中整数和浮点数的存储方式,包括整数的原码、反码、补码,以及浮点数的IEEE754标准存储格式。同时,探讨了大小端字节序的概念及其判断方法,通过实例代码展示了这些概念的实际应用。
15 1
|
11天前
|
存储
共用体在内存中如何存储数据
共用体(Union)在内存中为所有成员分配同一段内存空间,大小等于最大成员所需的空间。这意味着所有成员共享同一块内存,但同一时间只能存储其中一个成员的数据,无法同时保存多个成员的值。