操作系统的内存划分, 主要是便于用户理解

以下摘自雅虎中国, 网址是:http://ks.cn.yahoo.com/question/1590002073744.html

DOS操作系统最早设计时, PC机的硬件系统只支持1M字节的寻址空间, 所以DOS只能管理最多1M字节的连续内存空间。在这1M内存中, 又只有640K被留给应用程序使用, 它们被称为常规内存或基本内存, 其它384K被称为高端内存, 是留给视频显示和BIOS等使用的。
在微软的操作系统没有彻底脱离DOS的时候, 即使你的电脑装有几兆或几十兆内存, 但如果你使用以DOS为核心的操作系统, 那么你也只有640K的内存可以直接使用, 1M以上的内存要通过一些内存管理工具才能使用。从Windows 95开始, 才不存在常规内存的限制了, 所有的内存, 不管是8M还是128M, 都可以被直接使用。
再回忆一下在DOS下的历史, 那时, 系统中存在以下四种内存:
常规内存(Conventional Memory);
高端内存(Upper Memory);
扩充内存(Expanded Memory);
扩展内存(Extended Memory)。
常规内存指的是0-640K的内存区。在DOS下, 一般的应用程序只能使用系统的常规内存, 因而都要受到640KB内存的限制。而且由于DOS本身和config.sys文件中的安装的设备驱动程序和autoexec.bat文件中执行的内存驻留程序都要占用一些常规内存, 所以应用程序能使用的常规内存是不到640K的。
高端内存是指位于常规内存之上的384K内存。程序一般不能使用这个内存区域, 但是EMM386.exe可以激活高端内存的一部分, 并且它允许用户将某些设备驱动程序和用户程序用Devicehigh或LH(即loadhigh)装入高端内存。dos=high,umb也是把DOS的一部分装到高端内存里。这里的umb是高端内存块(Upper Memory Block)的缩写。
扩充内存是一种早期的增加内存的标准, 最多可扩充到32M。使用扩充内存必须在计算机中安装专门的扩充内存板, 而且还要安装管理扩充内存板的管理程序。由于扩充内存是在扩展内存之前推出的, 所以大多数程序都被设计成能使用扩充内存, 而不能使用扩展内存。由于扩充内存使用起来比较麻烦, 所以在扩展内存出现后不久就被淘汰了。
扩展内存只能用在80286或更高档次的机器上, 几乎所有使用DOS的机器上超过1M的内存都是扩展内存。扩展内存同样不能被DOS直接使用, DOS5.0以后提供了Himem.sys这个扩展内存管理程序, 可以通过它来管理扩展内存。emm386.exe可以把扩展内存(XMS)仿真成扩充内存(EMS), 以满足一些要求使用扩充内存的程序。
最后再强调一下, 不管扩充内存或扩展内存有多大, DOS的应用程序只能在常规内存下运行。有的程序可以通过DOS扩展器(比如DOS4GW.exe等程序)使CPU进入保护模式, 从而直接访问扩展内存;但是, 进入保护模式以后, 计算机就脱离了DOS状态。 以上这些, 现在已经完全成为历史了。