dos绪论

0.msdos三模块:io.sys,msdos.sys,command.com
1.内部命令(30个左右):
常用:
dir
copy
type    显示文本文件
rename
del
date
time
cls
cd
md
用于批处理:
call    调用批文件
echo    命令显示开关
for        循环
goto    转向
if        条件
pause    暂停执行
shift    移动替换参数
内部命令的执行实际上是调用同名子程序。这些子程序位于command.com中。
接收内部命令后,command.com进程查表找到相应子程序的入口。
2.外部命令(50个左右):
format        磁盘格式化
diskcopy    软盘之间的复制
diskcomp    软盘之间的比较
comp        文件之间的比较
chkdsk        检查磁盘
backup        备份磁盘文件
restore        恢复磁盘文件
debug        调试程序
edlin        行编辑程序
edit        文本编辑程序
fdisk        硬盘分区
exe2bin        exe文件转换
外部命令实际上是一个存在于磁盘上的可执行文件。通常把与操作系统有关的磁盘可执行文件作为dos的外部命令。
3.command.com中有一个专门的批处理子程序负责解释执行.bat
4.dos中断服务程序都属于软中断,大部分位于msdos.sys模块中。
5.中断服务程序分两类:
n=21h,系统功能调用
n!=21h,中断调用
6.bios的rom中也有硬件和软件中断程序,即bios中断
7.bat文件:
(1)copy con命令:由键盘直接输入bat文件的各行语句。
如:copy con filedir.bat
ctrl+z结束编辑
(2)rem    注释,会以大写字母显示其后的字母
(3)autoexec.bat文件:dos启动最后阶段,会在引导盘的根目录下寻找并执行autoexec.bat。
(4)prompt    设置系统提示符为当前驱动器符加当前目录名再加上>符号。
(5)path    指出.com文件,.exe文件,.bat文件的查找路径
(6)set    设置一个环境变量
8.dos系统设置:config.sys
(1)功能和autoexec.bat类似,建立方法完全相同
(2)启动过程中由io.sys处理
(3)break=on    表示允许ctrl-c和ctrl-break检查
files=20    表示dos能打开的文件最多有多少,dos系统固定占用5个,20-5=15
buffers=20    设置磁盘缓冲区的数目。磁盘缓冲区用来存放访问磁盘过程中某些数据的副本,节省读盘时间。
(4)用于系统配置的命令分3组
<1>系统参数指派命令
1>break命令
外部设备一般分为字符设备(键盘、屏幕、打印机)和块设备(磁盘),字符设备工作时dos总要检查ctrl-c或ctrl-break是否被按下。而块设备工作时,若break=on,才检查。
2>files命令
打开文件两种方式:1.句柄方式。2.文件控制块方式
该命令指定程序以文件句柄方式总共可以同时打开多少个文件。
files=n
n范围    8——255    缺省8
dos内部,files每加1,系统文件表就增1个表项
3>fcbs命令
指定以文件控制块方式打开文件时的最大数
fcbs=n
n范围    1——255    缺省4
fcb源于CP/M系统,基本弃用。。
4>buffers命令
n范围:1——99    缺省:2——15(由RAM和磁盘类型不同造成)
5>country命令
设定各个国家不同的日期、时间和货币代号的表现格式
默认美国方式
6>lastdrive命令
设置dos承认的最后一个驱动器符
lastdrive=字母
7>drivparm命令:
dos允许带多种类型的块设备。
dos启动时为每个块设备分配一个驱动器符,并设置一个磁盘参数表DPB
若新驱动器规格dos无法识别,需用drivparm命令指明参数,以便建立相应DPB
drivparm=/D:drive [/F:form] [/H:heads] [/S:sectors] [/T:tracks]
drive代表驱动器号,A=0,B=1……。form是驱动器的形状系数(可参见dos手册),heads是磁头数,sectors是每磁道的扇区数,tracks是磁道数。
8>stacks命令:
设置堆栈池中栈区的个数和每个栈区的大小。
堆栈池:dos内部的一个区域,专为接管硬件中断而设置。
硬件中断在中断向量表中的地址指向内存低地址的dos内核。这样dos获得控制权,将ss寄存器指向堆栈池,然后串接到中断处理程序,隔离了应用程序和rom-bios
stacks=n,s
n指定栈个数,8——64,s指定栈的字节数,32——512
286以上机器:n=9,s=128
9>switches命令:
为了使用增强型键盘,书上写的不太理解。。主要是不形象,,~
<2>设备驱动程序安装命令
pc上每一种外设都有一个确定的设备驱动程序。
驱动程序分两类:
一类是标准设备驱动程序:在io.sys中,专门用于控制台(键盘和显示器)、打印机、串行口、实时钟、磁盘等
另一类是可安装设备驱动程序:其它驱动
1>device命令
device=[d:][path]filename[parameters]
filename:要装入的驱动程序名
parameters:传递给驱动程序的一组参数
2>devicehigh命令
作用类似于device,只是它把驱动程序装入上位内存
常规内存:0——640KB
上位内存(umb):640KB——1024KB
高位内存(hma):1024KB——1088KB
延伸内存:1024KB——16MB
<3>其他程序安装命令
专门用于安装那些不具备设备驱动程序标准格式的,并且需要常驻的程序。
1>shell命令
安装命令处理程序(即各种shell)
shell=[d:][path]filename[parameters]
如果安装的是command.com,且其不在系统盘下,则需在这里指出路径。
2>install命令
主要用于安装下面四种外部命令程序:
fastopen.exe    快速打开文件
keyb.com        扩展键盘
nlsfunc.exe        指定国别信息
share.exe        文件共享
<3>dos命令:
把dos的一部分搬到高位内存,从而增加用户使用的空间。
两个参数:第一个为high或low,表示是否将dos的一部分搬到1M地址以上的第1个64KB内存区
第二个参数可为umb或没有参数
(这个命令让我有点紊乱。。。)

dos研究开篇

dos是个古老的操作系统,还记得小学时代看到那个黑乎乎的窗口,就会不知所错,,,看到老师能熟练地敲进去一些字符,然后文字哗哗地往下拉,感觉好神奇。。虽然现在,dos已经不是主流操作系统,但它蕴含了操作系统的设计思想和实现过程。所以还是值得深入学习的。