DOS如何配置内存(config.sys)

 一台微机的物理存储器总是一定的(当然可以扩充)。而各种内存的大小,除基本内存外,UMBHMAXMSEMS都是可随设置参数的不同而改变的。各种应用软件,对内存的使用不完全相同,有的软件要求使用XMS,有的要求使用EMS

  设置内存的各个区域及其大小通常是在系统启动时执行CONFIG.SYS文件完成的。在CONFIG.SYS文件中用于内存管理的命令只有三条:

  DEVICE=[路径]HIMEM.SYS[参数]

  DEVICE=[路径]EMM386.EXE[参数]

  DOS=<参数>

  但是这三条命令的使用方法并不简单,特别是参数的选择将直接影响内存区域的建立和范围大小。由于没有哪种设置能满足所有软件的使用,所以通常在CONFIG.SYS中采用多种设置,并用菜单方式进行选择,以便不同的应用软件能在不同的内存环境下工作。下面分别介绍三条命令的使用。

  1.HIMEM.SYS

  HIMEM.SYS作为XMS存储器的管理驱动程序,它的主要功能是把扩展存储器按XMS规范来管理,也就说,它把传统的扩展存储器改造成了XMS存储器。因此,只有用XMS规范编写的程序才能使用XMS存储器。此外,HIMEM.SYS可以建立HMA存储器供使用。HIMEM.SYS命令的格式是:

  DEVICE=HIMEM.SYS[参数]

  DOS 6.2版的HIMEM.SYS提供了10种参数,下面介绍几个主要参数,其余的请参考有关手册。

  ●/HMAMIN=m

  本参数用于指定一个063范围的数m,这个数以KB为单位,表示一个程序文件的长度。只有大于这个长度的文件才能使用HMA内存。如果省略本参数,则HIMEM.SYS自动将HMA分配给首先要求使用HMA的程序。

  在同一时刻,只能有一个应用程序使用高端内存HMA。为了最有效地使用HMA,应把本参数的m值设为申请使用HMA的程序中的最大者,以保证HMA得到最大限度的使用。

  ●/INT15=memory

  安装HIMEM.SYS后,如不用本参数说明,则所有的物理扩展存储器都将纳入XMS管理而成为XMS存储器。此时传统的扩展存储器不再存在(用MEM命令观察可看到“0 Bytes available configurous extended memory”)。这将使得那些需要用BIOS INT15来调用传统扩展内存的早期软件无法运行。本参数的目的就是保留一定容量的传统扩展内存,以便可以使用旧版软件。本参数中memory表示所保留的容量,以KB为单位。取值范围为6465535,但最大不能超过系统的物理扩展存储器的容量。

  一般说来,在DOS 5.0之后出版的软件,凡需要使用1MB以上内存的,大都支持XMS

  ●/CPUCLOCKON|OFF

  安装HIMEM.SYS之后,如发现计算机的时钟速度改变,则应指定本参数为ON来解决,本参数的缺省值为OFF

  ●/TESTMEMON|OFF

  这是DOS 6.2以上版本提供的新参数。启动计算机时HIMEM将检测扩展内存,由于它采用了读写比较的方法,因此与上电自检内存相比更为彻底。但是这项检查将使启动时间加长。本参数的缺省值为ON,如要缩短启动时间,可设置本参数为OFF

  2.EMM386.EXE

  EMM386.EXEEMS的管理驱动程序。它的功能是把XMS存储器模拟成EMS存储器来使用,并且建立UMB存储器。由于EMM386.EXE的扩展名使用了EXE,所以它是一个外部命令,可在DOS下执行。但EMM386.EXE一般还是在CONFIG文件中使用,其格式为:

  DEVICE=EMM386.EXE[参数]

  EMM386.EXE提供了二十多个参数,下面介绍最常用的几个。

  ●ON|OFF|AUTO

  ON表示激活EMM386.EXE驱动程序,OFF表示挂起EMM386.EXE程序,AUTO表示仅当有程序请求时,才支持EMS内存和UMB内存。

  本参数用在已设置EMM386.EXE,但未设置UMB的情况下,即CONFIG文件中的命令行为:

  DEVICE=C/DOS/HIMEM.SYS

  DEVICE=C/DOS/EMM386.EXE

  在DOS下再直接执行EMM386.EXE并配合这些参数可改变EMM386.EXE的工作状态。

  C/>EMM386 OFF  取消EMM386功能

  C/>EMM386 ON  恢复EMM386功能

  C/>EMM386 AUTO  设EMM386为自动状态

  ●memory

  本参数是一个数值,取值范围为6432768,以KB为单位。表示要配置给EMS的存储器总量,缺省值为256KB。例如,将1024KB模拟为EMS存储器,CONFIG.SYS文件中的命令行应写为:

  DEVICE=C/DOS/HIMEM.SYS

  DEVICE=C/DOS/EMM386.EXE 1024

  ●NOEMS

  本参数表示只提供UMB存储器,但不建立EMS存储器。CONFIG.SYS文件命令行应写为:

  DEVICE=C/DOS/HIMEM.SYS

  DEVICE=C/DOS/EMM386.EXE NOEMS

  ●RAM=XXXXXXXX

  本参数表示同时建立UMBEMS存储器。XXXXXXXX表示指定建立UMB的段地址范围。如不指定段地址范围,则EMM386将把保留内存区中所有的可用空间用来建立UMB及一个页框。通常,可以不指定UMB的段地址以获得更多的UMB空间。

  DEVICE=C/DOS/HIMEM.SYS

  DEVICE=C/DOS/EMM386.EXE RAM

  ●L=minXMS

  本参数的LLeast(最少)的意思,minXMS是一个数字,以KB为单位。表示在执行EMM386.EXE时,至少要保留多大容量的XMS不被模拟成EMS。这样在执行EMM386.EXE后,内存中仍有指定数量的XMS存在。如要求至少保留384KB作为XMSCONFIG.SYS命令行应写为:

  DEVICE=C/DOS/HIMEM.SYS

  DEVICE=C|DOS/EMM386.EXE L=384

  ●X=XXXXXXXX

  本参数的XeXclued(不包含)的意思。XXXXXXXX为段地址范围,表示禁止EMM386把指定的范围作为EMSUMB,其目的是为了防止发生冲突。

  ●FRAMEX=XXXX

  本参数用以指定实际的64KB页帧(或称为页框)的范围。取值范围为80009000C000E000之间。例如,选页帧在E000EFFF范围,DE00DFFF范围不能作为UMB,则CONFIG.SYS的命令行应写为:

  DEVICE=C/DOS/HIMEM.SYS

  DEVICE=C/DOS/EMM386.EXE RAM FRAME=E000 X=DE00DFFF

  ●I=XXXXXXXX

  本参数中IInclude(包含)的意思。XXXXXXXX是段地址范围,表示该范围内的地址空间可用作UMB。其意义正好和X参数相反。如果X参数和I参数指定的范围重复,则以X参数有效。I参数一定要与NOEMSRAM参数一起使用才有效。例如:

  DEVICE=C/DOS/EMM386.EXE NOEMS IE000EFFF

  在设置中,一般都希望获得较大的UMB,以便驻留TSR程序,留出更多的基本内存供用户程序使用。

  3.DOS

  DOS命令的功能有两个:

  (1)DOS系统的核心部分由基本内存搬到HMA中,从而腾出空间供用户使用。

  (2)UMB建立联系,以便装载TSR程序或设备驱动程序到UMB中。

  DOS命令的格式为:

  ●DOS=HIGHLOW

  表示把DOS核心部分装入UMB(选HIGH),还是装入基本内存(选LOW)。缺省值为LOW,一般应选HIGH

  ●DOS=UMBNOUMB

  表示DOS将与UMB建立联系(选UMB)或不准许使用UMB(选NOUMB)。一般应选UMB。可把两行命令合为一行,参数间用逗号间隔。

  如:DOS=HIGHUMB

  在系统启动时,DOS自动设置缓冲区数目Buffers的值为15,每个Buffers523字节。随着DOS=HIGH的执行,Buffers也随DOS的核心程序移到HMA中,这当然是好事,但是如果用户自己设定的Buffers太大,如超过47个,则HMA装入DOS核心后的剩余空间无法容纳,就把全部Buffers移至基本内存中,这将得不偿失。

CONFIG.SYS文件中,HIMEM.SYS命令行应放在EMM386.EXE命令行之前,DOS命令行可随意放在任何位置。

RAMDRIVE.SYS─例子

要在扩展内存中创建RAM驱动器,并为RAMDRIVE.SYS分配64K扩展内存(默认值),可在CONFIG.SYS中使用以下命令:

device=c:/dos/ramdrive.sys /e

该命令从C:/DOS目录中装入RAMDRIVE.SYS

要在扩充内存中安装RAMDRIVE.SYS,并给RAM驱动器分配4M(4096K)扩充内存。要完成这一任务并指明RAMDRIVE.SYS放在C盘的DOS目录中,可在CONFIG.SYS文件中加入以下行:

device=c:/dos/ramdrive.sys 4096 /a

现在假设要给RAMDRIVE.SYS分配2048K扩展内存,并创建一个512扇区的RAM驱动器,将根目录项限制在1024之内。要完成该任务并指明RAMQRIVE.SYS位于D盘的DEVICES目录中,可在CONFIG.SYS文件中加入以下行:

device=d:/dos/ramdrive.sys 2048 512 1024 /e

你可能感兴趣的:(DOS如何配置内存(config.sys))