如是大师讲DOS知识
MSdos系统在启动时首先读入IO.sys然后,依次是
msdos.sys config.sys command.com autoexec.bat...
当然,目前本版块大多数同仁对IO.sys这样的启动核心文件
还不能像站长wengier那样大刀阔斧地动手动脚...那我们就
在config文件里纵横驰骋地DIY吧。
pc机的系统启动时会自动寻找config.sys这个文件,如果
没有它,系统就按默认的方式运行,但这种默认的方式在大部
分情况下都不是最适合系统使用的,所以我们应对系统启动环
境进行设置,比如设置对扩展内存的使用,加载光驱,usb驱动
程序等。 当您的系统出现系统使用不了、程序内存不够、设备
找不到、声卡不能驱动,无法连接网络等等错误,合理修改
config.sys也许能解决一半以上的问题。
config.sys是文本文件,可以用任何文本编辑器编辑创建
和修改。(建一个文本文件,写入内容后重命名为config、sys
就行了)当然,同样的内容如果你把它叫了别的名字,像什么
autoexec.sys之类...系统是肯定不会承认的啦。如果你增添、
更改或删除config.sys文件中的任一配置命令,则这种改变只
在下一次启动DOS时才有效。这点大家可要记住哟。config文件
只在系统初始化时载入执行。。。。
上面讲到了dos启动时在执行自动批处理命令前,在启动文
件所在的根目录中自动检索config、sys文件。。。如果存在此
文件系统就将此文件读入内存。。并逐行解释该文件中的每条
命令(大家一定要记住“逐行解释”解释这四个字)设置当前
的dos系统配置。。。
一般来说,config.sys文件是ASCLL码文本文件.下面我们
就讲讲config文件里的一些常规命令及其功能。
1,检查命令
BREAK命令用于指令dos经常不断地检查用户是否按下Ctrl_Break
键其一般格式为:BREAK=ON/OFF break=on时,dos系统在任何
时候都检查Ctrl_Break这种状态下,用户可以通过按Ctrl+Break
组合键(即著名的CTRL+C)退出正在运行的程序进程。break=off
时,dos系统只在满足下叙几个条件时才会检查用户是否按下Ctrl
+Break组合键。
(1)标准输出操作;
(2)标准输入操作;
(3)标准打印操作;
(4)标准辅助操作;
2,缓冲命令
BUFFERS执行dos启动后,在系统内存中建立磁盘缓冲区。磁盘缓冲
区使用内存中某一区域,dos利用其进行数据操作。磁盘缓冲区是
一块内存区,它用于存储从磁盘读入的数据或存储写到磁盘的数据。
DOS在读或写一个记录时,先检查包含那个记录的数据块是否已在磁
盘缓冲区中,如果不在,就从磁盘上将该数据块读入到磁盘缓冲区中,
再将此记录传送给应用程序;如果数据已在磁盘缓冲区中,则不必从
磁盘上读入,而是直接把数据传送给应用程序。由于从磁盘上读取数
据是相对耗时较多的操作,所以增加磁盘缓冲区可以节省很多读盘的
时间。但是要注意,增加磁盘缓冲区是要占用内存的,因之减少了应
用程序所能够使用的内存,必然增加读写磁盘的次数,造成软件执行
速度变慢甚或不能执行。所以,磁盘缓冲区的数值并不是设得越大越
好,最佳的磁盘缓冲区数目要根据用户的机器配置和通常运行的程序
类型来确定。buffers命令的一般格式为:BUFFERS=1-99之间的整数,
其缺省值为2,ibmdos为3。
3,设置打开文件数
FILES命令和FCBS命令一般来说都是设置dos系统同时可处理文件的数
目。当我们想装一些游戏(像DD的仙剑)的时候,要拷贝或解压缩大
批的小文件文件数可能有几千,这时就可以增加FILES的上限。就会
dos提高拷贝或解压缩的速度。不过要记住一点,这可是要占用很多
内存的哟。FILES命令只能控制文件管理器(字)能够同时打开的文
件数目,不会影响文件控制块(FCB)所控制的同时打开文件数。
其命令的一般格式为:
FILES=(8-255之间的整数)其缺省值为8
FCBS=(1-255之间的整数),(0-255之间的整数)
缺省值为40,0(FCBS=)前面的数必须大于后面的数。其中前面的数
指定文件控制块(FCB)同时打开的最多文件数,后面的数指定文件控制
块(FCB)同时打开相当文件时,dos系统不可自动关闭的文件数。如果
由于dos关闭某个FCBS文件引起错误,可以加大前面的数值。config文件
里使用FCBS命令语句,dos的常驻空间会增大。多数应用软件是使用
FILES来管理打开文件的。
4,驱动装载
我们知道pc机的各种外部设备都有相应的设备驱动程序,系统在使用这
些设备时需要装入其驱动程序。DEVICE命令就是做这份工作的。它载入
一切我们运行dos系统时需要的标准设备驱动(软盘,硬盘及键盘等输入
输出设备)支持的设备之外的一切设备驱动。而且可以装载我们自己编写
的驱动文件哟。其一般命令格式为:
DEVICE=盘符/所在路径(文件夹)/设备驱动文件
这条命令在config文件中是一个很独特的命令,因为它可以多次使用,以
指定多个不同功能的设备的驱动程序。有的情况我们可以在DEVICE命令后
加上HIGH,以将设备驱动调入高端内存区,节省dos的常规内存。
5,设置命令处理器
SHELL命令用于设置dos系统所使用的命令解释器。dos默认command.com
为最外层的命令处理程序。如果我们使用了其他兼容的dos系统的command
(如我就曾在msdos中使用romdos的command、com)就应该使用SHELL命令
在config文件中进行设置。我们也可以用该命令调用其他功能更强大的命
令解释器,如4dos、exe等。。当然,有谁自己开发了更好用的命令解释器
(如aommand、com或7dos、exe之类),同样可以用SHELL命令装载。。
该命令一般格式为SHELL=盘符/所在路径(文件夹)/命令管理器程序,如果
命令管理器和此config文件同在当前盘可以省略前面的路径指向。
6,设置变量
SET命令用于改变dos系统环境内的字符串的限定。建立新的dos环境。这个
命令所体现的就是真正意义上的人机交互。操作者和系统间可以使用此命
令所规定的内存区域来改变特定的限制和缺省设置。可以使用该命令建立
从%0到%9的变量。
此时格式为:SET 变量名(字符串)=%0至%9的任何设定值
我们如果要使用这个变量,可以在批命令文件中在这个字符串(变量)前
后加上%符使用它。例如:我们set tmp=c:\dos 之后就可以在批命令中
用DIR %tmp%语句打开查看 c:\dos文件夹里面的内容。这条命令在模
式dos6 以前,是用在autoexec文件里呢。当然,现在在批命令里一样用。
在dos中有些命令是特定的。如command所包含的copy,del,type等被称为
内部命令的y一些指令。autoexec文件里特定的。for,call,lh,if···
等等。同样,有哪些命令是在config文件支持的呢?我在下面把名称一一列
举出来,解说的工作就放在后面慢慢讲吧。
config配置文件命令列表:
ACCDATE BREAK BUFFERS
COMMENT COUNTRY DEVICE
DOS DRIVPARM FCBS
FILS INCLUDE INSTALL
LASTDRIVE LOGO MENUCOLOR
MENUDEFAULT MENUITEM NUMLOCK
REM SHELL STACKS
SUBMENU SWITCHES SET
其中 BUFFERS,DEVICE, FCBS ,FILES,INSTALL, LASTDRIVE ,STACKS
等命令可以添加“HIGH”语句以使用dos的扩展内存。如:DEVICEHIGH=
当然一定是在存在dos的扩展内存的时候。
在这里,有一点我说明一下。这篇讲解我是按照命令的一般使用频率来写的。
从某种意义上讲就是我依照我熟悉的,比较常用的先讲呢。。没有按照严格的
学术要求按字母排序。请大家原谅。。。下面我们接着讲。
7,设置时间和日期格式
这里讲一个我们中国人不常用的命令COUNTRY.这是一个设置时间和日期格式
的命令。我们大家都知道因为地球物理的原因,各个国家的人种,风俗,时
间都不尽相同,所以各国的币制也各各有差。dos缺省的是使用usa的。
COUNTRY可以改变缺省的时间,日期和币制。。所使用格式为:
COUNTRY=(001-972等规定的国家代码)没有中国的。
所以具体代码我记不很清楚了。这条命令我基本上不用,只记得E国好像是
044。可能wengier会很清楚吧。
8,低部内存管理
这是一个很有趣的命令。dos中的dos命令。前面的dos是指dos系统。后面
的dos管理释放低部内存给应用程序。这个dos建立,维护低部内存,并建立
低部内存和上部内存间的联系。可以把dos系统自己的一部分装入umb(高内
存区)。
其一般格式为:
DOS=HIGH\LOW\AUTO
HIGH 把部分dos装入高内存区(HMB)
LOW 限制dos在低内存区
AUTO 自动选择将dos放在哪里。
UMB 维护低端内存和保留内存之间的连接关系。
让dos能够使用 LOADHIGH 和DEVICEHIGH等命令将设备或程序装入高内存区。
NOUMB 禁止dos使用高内存区。限制低端内存和高部内存的连接此命令中一
般不互相矛盾的参数可以连用,连用时请用“,”将它们隔开。使用HIGH和
UMB参数时注意应该最少已加载HIMEM.SYS。这条命令可以存在于CONFIG文件
中的任何位置。。
9,安装TSR
一般我们把内存驻留程序称为tsr。我们知道多数程序调用是通过批处理命令
来完成的。install就是在dos系统启动执行config文件时就安装一些tsr(内
存驻留)程序在内存中。此时,install命令的执行不通过command(命令管
理器)也不需要使用环境变量。其一般格式为:
INSTALL=路径/TSR程序
10,包含命令
config有一个选单功能,其目的是为了配置在不同环境下使用机器的相应配
置文件。这样难免就会,有一些相互重复的命令语句。而config文件是认死理
依次执行语句的。但,如果我们把这些相同的语句重复N次后。相信脾气再好
的朋友也会骂一句“bill——该死”可是聪明的bill给我们提供了这样的一个
命令INCLUDE。它指明config文件里选项方式存在时,在设定的一个配置块中
包含另一个配置块的所有内容。此命令允许我们将几个配置块共同使用的配置
语句组,设置成一个单块。在适当的时候用INCLUDE命令包含该块。这样大大
减少了我们的重复劳动和config文件的长度。其命令一般格式为:
INCLUDE=设定的所需包含的块名。
11,注释命令
config文件在dos系统中可谓千差万别。为了让用户了解config文件中设置的
意义和原理甚或目的。我们可以在config文件里使用REM命令添加注释语句。
这类语句不参与执行。只是让用户更快的了解config文件配置的内容和将要
进行的操作等等。。
其命令一般格式为:
REM 注释语句。
rem命令允许重复使用。每一个命令语句后的字符最大可以达到123个字符。
对dos有特殊意义的字符应该用双引号引起来。
此命令在.bat文件和config文件里通用。在批文件里(。bat文件)可以配
合ECHO命令显示rem所注释的内容。此时ECHO在ON状态。我们可以通过EDIT
等文本编辑器浏览rem命令所注释的内容。而且可以使用不带注释的REM命令
在.bat文件和config文件中添加空行。但dos启动时会忽略空行。所以这点
一般没有多大意义。(待续)
-------------------------------------------------------------------------------------------------------------------


