XMS、EMS、BMS和虚拟磁盘

Author: 河 南 党 卓 Date: 1993-02-26

        在PC-286微机中,内存储器分三种:基本内存(BMS),扩充内存(EMS),扩展内存(XMS)。我们“找不着”的384K内存就是扩充内存(EMS),这一部分内存确实存在,但一般情况下不归用户自由使用,其中一部分用于ROM的寻址,还有一部分分配给显示内存使用。
        扩展内存(XMS)则是位于1M地址空间以外的内存,是由插在主机板上的内存扩展块形成的,由于价格昂贵,家庭购买的286微机一般不配备XMS。
        那么我们能否将EMS充分利用起来呢?有两个方法,一是使用有些专门编制的软件,它可以把自己的一部分程序数据放在EMS中,或在EMS中开辟一个数据交换区,从而为用户留下尽可能大的自由支配空间,这类软件有Microsoft Windows、DOS5.0、AutoCAD等等,显然这一方法对于我们这些家用286用户仍是不很实际的,最好的方法就是把这384K内存建成虚拟盘,将一些常用的软件拷入虚盘,这样就可大大提高程序的执行速度,在拷贝文件时也可以利用虚盘过渡一下,减少单驱拷贝频繁抽换磁盘的麻烦。
        关于如何在EMS中建虚盘,许多报刊上都有介绍,即利用DOS中的VDISK.SYS文件,在CONFIG.SYS中加入“device=vdisk.sys[<虚盘大小>][<扇区大小>][<目录项>]/E”,我们实际应用中会发现这一方法会造成启动时死机,这是因为这条命令是把虚盘建到扩展内存(XMS)中,家用286机内没有扩展内存,当然会死机。在DOS4.0版之前的VDISK.SYS文件只能用/E开关来控制将虚盘建在基本内存还是扩展内存,而4.0版的VDISK.SYS文件可以用/X开关将虚盘建在EMS中。另外,DOS2.11到4.0版本内,存在一个鲜为人知的文件RAMDRIVE.SYS,利用此文件可方便地在EMS中建虚盘,格式:device=Ramdrive.sys[<虚盘大小>][<扇区大小>][<目录项>][/E][/A]
        其中虚盘最大取384K,默认64K;扇区最大1024个字节,默认128个字节,目录项数最大1024个,默认64个,若不带开关则建在基本内存,加/E开关则建在EMS中,加/A开关建在XMS中。例如要在1M内存的家用286微机的EMS中建一个363K的虚盘,就在CONFIG.SYS文件中加入“device=Ramdrive.sys 36312864/E”。重新启动后,屏幕上会显示虚盘的大小,扇区和驱动器号等信息,当然,启动时盘上必须有Ramdrive.sys文件。这时你可以把你的应用软件如Turbo Pascal、Turbo Debug等拷入虚盘,在虚盘上进行程序的编译、执行,或拷入Wordstar,CCED,DBASEⅢ等,在汉字状态下使用它们,其速度之快会令你兴奋不已。注意:瞬时的断电会把你编的程序或编辑的文章毁掉,你最好及时向软盘备份。令人欣喜的是,国内一些电脑公司也考虑到利用EMS的问题,由王码电脑公司最新发表的WMDOS6.0中文操作系统除具备强大的功能外,还充分利用了EMS,使整个系统在286机上只占用26K基本内存,留给用户600余K的自由空间,而在386机上则几乎不占内存,好象真正实现了“零内存”。