《MS-DOS5.0内核剖析 上》求取 ⇩

第一章引论1

1.1基本概念1

1.1.1 操作系统1

1.1.2 操作系统分类2

1.2操作系统的设计思想5

1.2.1 研究操作系统的几种观点5

1.2.2 操作系统结构设计方法7

1.2.3 层次结构法8

1.2.4 DOS设计思想10

1.2.5 DOS与其它操作系统的兼容性11

1.3DOS发展概况11

1.3.1 DOS的历史11

1.3.2 DOS的未来15

1.4DOS操作系统结构24

1.4.1 BIOS模块24

1.4.2 Kernel模块25

1.4.3 Shell模块26

1.5 DOS功能概述27

第二章配置系统30

2.1配置命令30

2.1.1 BREAK31

2.1.2 BUFFERS31

2.1.3 COMMENT33

2.1.4 COUNTRY33

2.1.5 DEVICE34

2.1.6 DEVICEHIGH35

2.1.7 DOS36

2.1.8 DRIVPARM36

2.1.9 FCBS38

2.1.10 FILES38

2.1.11 INSTALL39

2.1.12 LASTDRIVE39

2.1.13 MULTITRACK40

2.1.14 REM40

2.1.15 SHELL40

2.1.16 STACKS41

2.1.17 SWITCHES41

2.2可安装的设备驱动程序42

2.2.1 ANSI.SYS43

2.2.2 DISPLAY.SYS48

2.2.3 DRIVER.SYS49

2.2.4 EGA.SYS51

2.2.5 EMM386.EXE51

2.2.6 HIMEM.SYS54

2.2.7 PRINTER.SYS56

2.2.8 RAMDRIVE.SYS57

2.2.9 SETVER.EXE58

2.2.10 SMARTDRV.SYS58

2.3代码页59

2.3.1 支持代码页的设备60

2.3.2 代码页定义60

2.3.3 为什么要用代码页61

2.3.4 安装代码页61

2.3.5 代码页的转换65

2.3.6 显示当前的代码页65

2.3.7 刷新代码页65

2.3.8 代码页表65

第三章DOS引导过程72

3.1DOS引导过程72

3.1.1 ROM BIOS启动72

3.1.2 DOS引导记录72

3.1.3 SysInt-Ⅰ73

3.1.4 DOS Kernel模块的初始化程序73

3.1.5 SysInt-Ⅱ78

3.1.6 COMMAND初始化程序79

3.2数据结构79

3.2.1 BPB参数块79

3.2.2 硬盘分区信息表81

3.3 引导程序的源程序注释清单83

第四章设备管理93

4.1设备分类93

4.1.1 字符设备93

4.1.2 块设备94

4.2DOS设备94

4.2.1 控制器、适配器和接口95

4.2.2 设备的程序控制95

4.2.3 DOS支持的软盘类型96

4.3数据结构96

4.3.1 磁盘参数表96

4.3.2 设备驱动程序标题98

4.3.3 设备驱动程序请求标题103

4.3.4 BIOS驱动器参数块104

4.3.5 DOS驱动器参数块107

4.3.6 盘缓冲区107

4.4设备驱动程序的结构及调用格式110

4.4.1 设备驱动程序的结构110

4.4.2 设备驱动程序的调用格式110

4.5设备驱动程序的编程与调试126

4.5.1 设备驱动程序的编程方法126

4.5.2 设备驱动程序的调试137

第五章内存管理139

5.1微机的内存结构139

5.1.1 常规内存140

5.1.2 扩充内存140

5.1.3 扩展内存140

5.1.4 高内存块142

5.1.5 高内存区142

5.1.6 MS-DOS 5.0提供的内存管理程序143

5.1.7 Lotus/Intel/Microsoft扩展内存规范143

5.1.8 Lotus/Intel/Microsoft/AST扩充内存规范145

5.2DOS内存映象145

5.2.1 DOS内存约定145

5.2.2 MS-DOS 5.0内存映象154

5.3数据结构158

5.3.1 内存控制块158

5.3.2 子段控制块159

5.4内存管理程序的实现160

5.4.1 内存分配策略160

5.4.2 内存分配块的释放和修改162

5.5准备更多的可用内存162

5.5.1 使用HIMEM.SYS扩充内存管理程序163

5.5.2 释放常规内存163

5.5.3 释放扩充内存165

5.5.4 释放扩展内存166

5.6在高内存块中运行程序166

5.6.1 准备在高内存块运行程序168

5.6.2 为使用高内存块而设置CONFIG.SYS文件168

5.6.3 安装EMM386.EXE管理高内存块169

5.6.4 获取高内存块的信息169

5.6.5 将程序移入高内存块169

5.6.6 运行启动后分配内存的设备驱动程序169

5.6.7 在高内存块运行内存驻留程序170

5.7结束并驻留TSR编程170

5.7.1 TSR程序的分类170

5.7.2 DOS操作系统的TSR程序171

5.7.3 DOS支持TSR程序的功能调用173

5.7.4 TSR程序的编程方法174

第六章文件系统177

6.1DOS文件系统的特点177

6.1.1 文件名178

6.1.2 文件类型178

6.1.3 通配符179

6.1.4 文件管理方法179

6.1.5 文件与设备的统一管理181

6.1.6 DOS文件系统的不足182

6.2FAT文件系统的特点182

6.2.1 磁盘信息格式182

6.2.2 文件分配表184

6.3目录结构186

6.3.1 树型目录结构186

6.3.2 树型目录使用的数据结构187

6.3.3 树型目录结构的管理190

6.4文件管理的数据结构194

6.4.1 文件控制块194

6.4.2 文件句柄197

6.4.3 系统文件表198

6.4.4 文件共享的实现201

6.4.5 快速打开的实现206

6.4.6 文件系统的数据结构之间的关系209

6.5 读/写操作的实现209

第七章进程管理218

7.1可执行文件结构218

7.1.1 COM文件结构218

7.1.2 EXE文件结构219

7.2环境块221

7.2.1 环境块信息221

7.2.2 在批文件中使用环境变量223

7.2.3 扩展环境块空间224

7.3 程序段前缀224

7.4 EXEC功能调用的实现228

7.5 几个与PSP相关的功能调用228

7.6进程终止235

7.6.1 进程终止时的公共处理236

7.6.2 正常终止236

7.6.3 驻留结束237

7.6.4被零除错误(INT 00H)处理237

7.6.5 Ctrl+C终止处理237

7.6.6 严重设备错误处理238

第八章DOS功能调用239

8.001 DOS功能调用一览表239

8.002 键盘功能调用一览表245

8.003 面向FCB的功能调用一览表245

8.004 面向文件句柄的功能调用一览表246

8.005 设备IOCTL的功能调用一览表246

8.006 国家语言支持(NLS)功能调用一览表247

8.007 内存管理功能调用一览表248

8.008 进程管理功能调用一览表248

8.009 网络功能调用一览表249

8.010 文件共享功能调用一览表250

8.011 目录管理功能调用一览表250

8.012 驱动器管理功能调用一览表250

8.013 系统功能调用一览表251

8.014 已被替代的功能调用一览表252

8.015 00H 终止程序252

8.016 01H 带回显的控制台输入253

8.017 02H 显示字符253

8.018 03H 辅助输入254

8.019 04H 辅助输出254

8.020 05H 打印字符254

8.021 06H 直接控制台I/O255

8.022 07H 无回显的直接控制台输入255

8.023 08H 无回显控制台输入256

8.024 09H 显示字符串256

8.025 0AH 缓冲键盘输入256

8.026 0BH 检查键盘状态257

8.027 0CH 清键盘缓冲区并读键盘257

8.028 0DH 复位磁盘258

8.029 0EH 设置缺省驱动器号258

8.030 0FH 用FCB打开文件259

8.031 10H 用FCB关闭文件260

8.032 11H 用FCB查找第一个文件260

8.033 12H 用FCB查找下一个文件262

8.034 13H 用FCB 删除文件262

8.035 14H 用FCB顺序读263

8.036 15H 用FCB顺序写264

8.037 16H 用FCB创建文件264

8.038 17H 用FCB更换文件名265

8.039 19H 取缺省驱动器号266

8.040 1AH 设置盘传送区地址266

8.041 1BH 取缺省驱动器数据267

8.042 1CH 取指定驱动器数据267

8.043 1FH 取缺省驱动器的DDPB268

8.044 21H 用FCB随机读268

8.045 22H 用FCB随机写269

8.046 23H 用FCB取文件大小270

8.047 24H 设置随机记录号271

8.048 25H 设置中断向量271

8.049 26H 创建新程序段前缀272

8.050 27H 用FCB随机块读272

8.051 28H 用FCB随机块写273

8.052 29H 分析文件名274

8.053 2AH 取系统日期275

8.054 2BH 设置系统日期275

8.055 2CH 取系统时间275

8.056 2DH 设置系统时间276

8.057 2EH 设置/复位检验(VERIFY)标志276

8.058 2FH 取盘传送区地址276

8.059 30H 取DOS版本号277

8.060 31H 结束并驻留277

8.061 32H取指定驱动器的DDPB278

8.062 3300H取Ctrl+C检查状态278

8.063 3301H设置Ctrl+C检查状态278

8.064 3302H 取/置Ctrl+C检查状态279

8.065 3305H 取引导驱动器号279

8.066 3306H 取DOS版本号和DOS的安装位置279

8.067 34H 取InDOS标志字节单元的地址279

8.068 35H 取中断向量280

8.069 36H 取磁盘自由空间280

8.070 3700H 取开关前导字符281

8.071 38H 取/置国家信息281

8.072 39H 创建子目录282

8.073 3AH 删除子目录283

8.074 3BH 改变当前目录283

8.075 3CH 创建文件284

8.076 3DH 打开文件285

8.077 3EH 关闭文件288

8.078 3FH 读文件或设备288

8.079 40H 写文件或设备288

8.080 41H 删除文件289

8.081 42H 移动文件读写指针290

8.082 4300H 取文件属性290

8.083 4301H 设置文件属性291

8.084 4400H 取设备信息291

8.085 4401H 设置设备信息292

8.086 4402H 从字符设备读取控制数据292

8.087 4403H 向字符设备发送控制数据293

8.088 4404H 从块设备读取控制数据293

8.089 4405H 向块设备发送控制数据294

8.090 4406H 取输入状态294

8.091 4407H 取输出状态294

8.092 4408H 测试块设备是否支持介质装卸295

8.093 4409H 测试逻辑驱动器是本地还是远程设备295

8.094 440AH 测试文件句柄是对应于本地还是远程设备295

8.095 440BH 设置共享重试计数296

8.096 440CH 字符设备的类属IOCTL请求296

8.097 440DH 块设备的类属IOCTL请求297

8.098 440EH 取逻辑驱动器映象298

8.099 440FH 设置逻辑驱动器映象298

8.100 4410H 字符设备的类属IOCTL查询299

8.101 4411H 块设备的类属IOCTL查询299

8.102 45H 复制文件句柄299

8.103 46H 强迫复制文件句柄300

8.104 47H 取当前目录301

8.105 48H 分配内存301

8.106 49H 释放分配的内存块302

8.107 4AH 修改分配的内存块302

8.108 4B00H 装入并执行程序302

8.109 4B01H 装入程序303

8.110 4B03H 装入覆盖304

8.111 4B05H 设置执行状态305

8.112 4CH 结束进程305

8.113 4DH 取子进程的返回码306

8.114 4EH 查找第一个文件306

8.115 4FH 查找下一个文件308

8.116 50H 设置活动进程的PSP段地址308

8.117 51H 取当前活动进程的PSP段地址309

8.118 52H 取DOS多重表指针值309

8.119 53H 根据BPB参数块内容设置DDPB310

8.120 54H 取检验状态310

8.121 55H 创建程序段前缀310

8.122 56H 更换文件名310

8.123 5700H 取文件的日期和时间311

8.124 5701H 设置文件的日期和时间311

8.125 5800H 取内存分配策略312

8.126 5801H 设置内存分配策略312

8.127 5802H 取UMB联接状态313

8.128 5803H 设置UMB联接状态313

8.129 59H 取扩充错误信息313

8.130 5AH 创建临时文件314

8.131 5BH 创建新文件314

8.132 5CH 锁定/开锁文件315

8.133 5D00H 服务器功能调用316

8.134 5D01H 提交所有文件317

8.135 5D02H 以名字关闭共享文件317

8.136 5D03H 关闭指定计算机的所有共享文件317

8.137 5D04H 关闭指定计算机的特定进程的所有共享文件317

8.138 5D05H 取共享文件的信息318

8.139 5D06H 取DOS数据交换区的地址318

8.140 5D07H 取打印流状态319

8.141 5D08H 设置打印流状态319

8.142 5D09H 截断打印流319

8.143 5D0AH 设置扩充错误信息320

8.144 5E00H 取机器名320

8.145 5E01H 设置机器名320

8.146 5E02H 设置打印机配置321

8.147 5E03H 取打印机配置321

8.148 5E04H 设置打印机模式321

8.149 5E05H 取打印机模式322

8.150 5F00H 取重定向模式322

8.151 5F01H 设置重定向模式322

8.152 5F02H 取重定向列表项323

8.153 5F03H 重定向设备323

8.154 5F04H 取消重定向324

8.155 60H 规范化文件名324

8.156 62H 取当前活动进程的PSP段地址325

8.157 6300H 取DBCS引导字节表地址325

8.158 6501H 取全国家信息表325

8.159 6502H/6504H 取文本/文件名大写表地址326

8.160 6505H 取文件名字符表地址327

8.161 6506H 取对照表地址328

8.162 6507H 取DBCS向量表地址329

8.163 6520H 字符变大写329

8.164 6521H 字符串变大写330

8.165 6522H ASCIIZ字符串变大写330

8.166 6523H 字符Yes或No检查330

8.167 66H 取/置全局代码页330

8.168 67H 设置文件句柄数331

8.169 68H/6AH 提交文件331

8.170 69H 取/置介质ID332

8.171 6CH 扩充的打开/创建文件332

8.172 DOS 扩充错误码表334

8.173 DOS 扩充错误类型表336

8.174 DOS 建议采取的措施表336

8.175 DOS 扩充错误位置表336

第九章DOS核心文件的编程环境337

9.1硬件环境337

9.1.1 几个新增加的CPU指令337

9.1.2 实时时钟/CMOS RAM338

9.2中断系统343

9.2.1 中断分类343

9.2.2 DOS保留中断346

9.2.3 DOS专用中断347

9.2.4 DOS可调用中断350

1992《MS-DOS5.0内核剖析 上》由于是年代较久的资料都绝版了,几乎不可能购买到实物。如果大家为了学习确实需要,可向博主求助其电子版PDF文件(由李凤华,周利华,赵丽松编著 1992 西安:西安电子科技大学出版社 出版的版本) 。对合法合规的求助,我会当即受理并将下载地址发送给你。