"Secrets of MemMaker ", March 17,1997, China Infoworld

Back

由MemMaker两次重起谈起
北京大学计算机系 赵恺棣(Zhao Kaidi)
    作为Dos 6.0 版以后才有的内存自动优化程序,MemMaker不愧为Dos 用户的一大
好帮手。它能自动的优化你的开机工作环境设置文件config.sys 和自动批处理文件
autoexec.bat ,使你的PC 机在不减少任何功能的情况下得到更多的常规内存
(conventional memory)。用过MemMaker的用户都知道,在MemMaker 的执行过程中,
系统会自动重起两次。每次启动后,系统会自动的接着上次MemMaker 离开的状态而继
续执行。这就不难使人产生疑问:系统重起后,按理说计算机主存会自动复位而清除,
那MemMaker 怎么能得以继续呢?让我们作个试验便可得知。
    首先,准备一张软盘,用 sys a:命令使之成为启动盘。再执行MemMaker 命令,并
使用其缺省选项(或用MemMaker/Batch 参数)。当系统第一次自动重起时,插入上述
的启动盘,让系统从软盘启动(如系统仍从C 盘启动的话,则应在开机时进入BIOS改变
启动次序为软盘优先)。这时,你会发现,MemMaker并没有能得以继续进行。请打开C盘
上的config.sys文件,会发现第一行多了一句“DEVICE=C:\DOS\CHKSTATE.SYS " 等字,
且其它驱动程序前(HIMEM 与EMM368 除外)都多了一句 "DEVICE=C:\DOS\SIZER.EXE"等
字。再打开autoexec.bat ,发现所有的应用程序(驱动程序)行前也都多了
“C:\DOS\SIZER.EXE "等字,并且,autoexec.bat 最后多了
 " C:\DOS\MEMMAKER.EXE /SESSION " 一句。这时,再重起系统,让计算机从C 盘启动,
MemMaker的画面又跃然屏上。
    由此可见,MemMaker 在两次重起后仍能继续进行的秘密,在于它幕后悄悄的改写
了config.sys 与 autoexec.bat 文件,而使用户觉察不到罢了。具体来说,当 MemMaker 
被执行时,它自动的在config.sys 的第一句加上 " CHKSTATE.SYS " 一句,在
autoexec.bat 最后加上 " MEMMAKER/SESSION " 一句 ,并在config.sys 与 autoexec.bat
中每一个驱动程序前加上 " SIZER " 一句。然后重起系统,使 config.sys 与autoexec.bat
的改变有效。其中,CHKSTATE.SYS 与MEMMAKER/SESSION 使MemMaker 重起后继续进行,
而SIZER则在开机时测出每个程序所用的内存大小。然后,MemMaker 由 SIZER 所提供
的数据而自动配置 config.sys 与 autoexec.bat ,并去掉各句的SIZER 指令,然后
再次重起系统。第二次启动后,MemMaker 比较当前常规内存大小与以前内存大小:如
大于,则它去掉config.sys 与 autoexec.bat 中的CHKSTATE.SYS 一句与
MEMMAKER.EXE/SESSION 一句,并退出程序;如小于,则内存优化失败,MemMaker 自
动恢复以前的config.sys 与autoexec.bat ,并提示用户应再启动一次系统。


NOTE ! The article listed here is protected by CopyRight Law of P.R.China! For more information about it, contact the author directly !([email protected])
注意:此文章版权所有,详细情况请和作者联系。([email protected])

Emails are welcome [email protected]