当前位置:首页 > 工业技术
DOS的全面剖析与编程启示
DOS的全面剖析与编程启示

DOS的全面剖析与编程启示PDF电子书下载

工业技术

  • 电子书积分:22 积分如何计算积分?
  • 作 者:黄山,万玉丹编著
  • 出 版 社:北京:学苑出版社
  • 出版年份:1993
  • ISBN:7507708047
  • 页数:827 页
图书介绍:
《DOS的全面剖析与编程启示》目录

目录 1

关于DOS的100个问题的启示 1

第一篇 BIOS层 1

第一章 DOS环境的建立:系统初始化SYS—INIT流程 1

1.1 ROM—BIOS开机自检过程概述 1

第一篇 BIOS层 2

图1.1 INT 19H流程 2

图1.2 IO.SYS的初始化程序 3

1.2 SYS—INIT过程概述 3

图1.3 MSDOS.SYS的初始化程序 3

图1.4 COMMAND初始化程序 3

图1.5 主引导扇区布局 4

1.3 第一阶段:硬盘主引导程序及BOOT 4

图1.6 主引导程序的流程 5

图1.7 B○○T执行时的内存布局 8

1.4 第二阶段:IO.SYS重装入程序 9

绪论 10

图1.8 BOOT程序的流程 10

图1.9 IO.SYS文件的结构 11

图1.10 I○.SYS重装入程序的流程 12

图1.11 执行SYS—INIT Ⅰ时的内存布局 13

1.5 第三阶段:SYS—INITI的实现流程 13

图1.12 供选择部份的构成 17

图1.13 SYS—INIT Ⅰ的完整流程 20

图1.14 SYS—INIT Ⅰ创建软驱DDTL的流程 28

图1.15 SYS—INIT Ⅰ创建硬盘D○S分区DDTL的流程 29

1.6 第四阶段:SYS—INIT Ⅱ与DOS—INIT 30

图1.16 执行SYS—INIT Ⅱ时的内存布局 31

图1.17 SYS—INIT Ⅱ前一部分的流程 32

图1.18 执行D○S—INIT时的内存布局 33

图1.19 DOS—INIT的完整流程 34

图1.20 执行DOS—INIT后的内存布局 37

图1.21 SYS INIT Ⅱ后一部分的流程 38

图1.22 处理CONFIG.SYS时的内存布局 40

图1.23 STACKS配置区的结构 43

图1.24 处理CCNFIG.SYS后的内存布局 44

1.7 第五阶段:COMMAND.COM的初始化流程 44

图1.25 执行COMMAND.COM时的内存布局 46

图1.26 COMMAND初始化程序的完整流程 47

第二章 IO.SYS驻留部份 50

2.1 DOS标准设备管理:5种常驻设备驱动程序分析 50

图2.1 传送到字符设备的参数块格式 62

图2.2 传送块设备的参数块格式 64

图2.3 从字符设备返回的参数块格式 64

图2.4 块设备返回的参数块格式 65

图2.5 常驻设备中断过程的主流程 67

图2.6 MS-DOS 3.30常驻设备支持的功能 68

图2.7 CON设备功能的实现流程 69

图2.8 AUX设备各功能的实现流程图 72

图2.9 PRN设备各功能的实现流程图 74

图2.10 CLOCK $设备各功能的实现流程图 77

图2.11 块设备01功能的实现流程图 80

图2.12 块设备02功能的实现流程图 82

图2.13 块设备04,08,09功能的实现流程图 84

图2.14 块设备的0DH,0EH功能的实现流程图 87

图2.15 块设备0FH功能的实现流程图 87

图2.16 块设备17H、18H功能的实现流程图 90

2.2 IO.SYS驻留部份接管的中断 91

图2.17 INT 13H功能主流程图(一) 92

图2.18 INT 13H的流程图(二) 93

第三章 可安装的设备驱动程序 96

3.1 DOS是如何接纳可安装的设备驱动程序的 96

图3.1 设备驱动程序安装后的内存片断 97

图3.2 一个设备头链表实例 97

图3.3 多设备头的设备驱动程序布局 98

图3.4 设备驱动程序的安装过程 99

3.2 可安装的设备驱动程序的编程原则及其模板 101

3.3 介绍DOS所提供的几个设备驱动程序 106

图3.5 换码序列的识别过程的有限自动机描述示例 112

3.4 安装设备驱动程序的新途径 113

图3.6 在命令行下装入设驱的程序流程 121

第四章 中断驱动的字符设备驱动程序 143

4.1 中断驱动的打印设备驱动程序 143

图4.1 不同的打印机适配器所使用的端口地址 143

图4.2 PRN设备的环形队列及扩大的环形队列示意图 153

4.2 中断驱动的异步通信设备驱动程序 157

图4.3 不同的异步通信口所使用的端口地址 158

图4.4 两台微机通过串行口互连的最简单形式 181

4.3 又一个中断驱动的字符设备:鼠标器驱动程序 183

4.4 中断驱动的磁盘设备初探 187

第二篇 DOS内核层 194

1.1 DOS保留中断 194

第一章 DOS总体布局 194

1.2 INT21各子功能分类及在DOS3.3/DOS5.0中的人口地址 195

1.3 内核数据区和数据结构 199

图1.1 DOS内部数据结构关系图 200

第二篇 DOS内核层 200

2.1 INT21的调用方式 202

第二章 DOS的公共处理例程 202

图2.1 INT 21H的总入口、总出口流程图 203

2.2 INT21H总人口及出口流程分析 204

2.3 DOS错误处理的设计与实现 205

图2.2 DOS错误处理总体思路图 206

2.4 DOS的几个正常和错误出口 207

2.5 DOS扩展错误、错误类型、错误位置、建议措施一览表 208

第三章 DOS文件系统综述 211

3.1 DOS文件系统的分类 211

图3.1 FAT文件系统的功能层次图 212

3.2 DOS文件系统的管理方法 213

图3.2 DOS文件系统总体关系图 214

3.3 DOS文件系统的总体构架 214

3.4 INT25H和INT26H—绝对磁盘读和写 215

图3.3 Enabledrive过程流程图 215

图3.4 读写盘过程流程图 216

图3.5 INT 25H/26H实现流程图 216

第四章 应用程序接口层 218

4.1 句柄处理 218

图4.1 Chkhandle过程流程图 219

图4.2 Gethandle-SFTptr过程流程图 219

4.2 传统文件控制块—FCB的处理 220

图4.3 FCB功能使用关系图 222

图4.5 Set—FCB—SFT过程流程图 224

图4.4 Apply—FCB—SFT过程流程图 224

4.3 SFT:系统文件表 225

图4.6 CHK—SFT过程流程图 225

图4.7 SFT、句柄、FCB关系图 228

4.4 当前目录结构—CDS 229

图4.8 Init-CDS过程的流程图 236

图4.9 Get-CDSptr过程的流程图 237

图4.10 Get-CurrDirName过程的流程图 238

4.5 字符串处理 238

图4.11 Modify-name过程的流程图 239

图4.12 Translatefilename过程的流程图 241

图4.13 FCB translatefilename过程的流程图 242

图4.14 FCB读写功能实现流程图 243

4.6 DOS文件系统各功能实现简图 244

图4.15 FCB打开及创建功能实现流程图 245

图4.16 删除文件功能实现流程图 246

图4.17 句柄文件打开功能实现流程图 247

图4.18 句柄读写功能实现流程图 248

图4.19 句柄文件关闭功能实现流程图 248

图4.20 FCB文件关闭功能实现流程图 249

图4.21 文件换名功能实现流程图 249

图4.22 文件时间日期功能实现流程图 250

图4.23 文件句柄复制功能实现流程图 250

图4.24 移动文件指针功能实现流程图 251

图4.25 取、置文件属性功能实现流程图 252

图4.26 扩展文件句柄数功能实现流程图 252

图4.27 分析FCB文件名功能实现流程图 253

图4.28 FCB取文件大小功能实现流程图 254

图4.29 查找文件功能实现流程图 255

图4.30 目录功能实现流程图 256

图4.31 取当前目录功能实现流程图 257

图4.32 取置DPB功能实现流程图 258

第五章 内核原语层 259

5.1 驱动器,参数表——DPB的处理 259

5.2 FAT、簇的处理 264

图5.1 FAT项组合图 265

图5.3 Get-Nextcluster过程流程图 266

图5.2 Get-FATvalue过程流程图 266

图5.4 Set-Nextcluster过程流程图 267

图5.5 簇链分配过程的流程图 268

图5.6 簇链释放过程流程图 269

图5.7 释放文件簇链过程流程图 269

5.3 目录项数处理 270

图5.8 取文件读写指针所对应的簇号过程流程图 270

图5.9 Read DIRsec流程图 271

图5.10 ModifyDirindex过程的流程图 272

图5.11 查找文件流程图 274

图5.12 查找文件规范串文件名流程图 275

图5.13 申请目录文件流程图 277

图5.14 创建目录项流程图 278

5.4 DOS文件系统的内部原语 278

图5.15 文件打开原语实现流程图 281

图5.16 文件创建原语实现流程图 282

图5.17 文件改名原语流程图 283

图5.18 取文件信息原语流程图 284

图5.19 置文件属性原语流程图 285

图5.20 文件闭原语流程图 286

图5.21 提交文件原语流程图 287

图5.22 删除文件原语流程图 288

图5.23 写原语流程图 290

图5.24 读原语流程图 292

图5.25 关闭指定进程的所有打开文件原语的流程图 293

图5.26 查找第一个匹配文件原语流程图 294

图5.27 查找下一个文件原语流程图 295

图5.28 创建子目录原语流程图 296

图5.29 删除子目录原语流程图 297

图5.30 检测子目录有效性原语流程图 297

图5.31 磁盘复位原语流程图 298

6.1 内核与BIOS的关系 299

第六章 设备驱动程序接口层 299

图6.2 DOS内核与设驱、RH头、DH头关系图 299

图6.1 设备驱动程序调用过程流程图 299

图6.3 开关设备过程流程图 300

6.2 块设备读、块设备写的实现 301

图6.4 读写区域划分示意图 301

图6.5 计算区域划分参数过程的流程图 302

图6.6 划分读写块实现流程图 303

图6.7 块设备写的实现流程图 304

图6.8 块设备读的实现流程图 307

6.3 介质检查 309

图6.9 介质检查各过程关系图 309

图6.10 介质检查流程图 310

图6.11 DOS严重错误处理总体思路图 311

6.4 严重错误处理及INT24的实现及编程 311

图6.12 块设备严重错误处理流程图 314

6.5 磁盘缓冲区 315

图6.13 DBUF的分配流程图 319

图6.14 DBUF释放流程图 320

图6.15 查找空闲DBUF流程图 321

图6.16 申请DBUF流程图 321

7.1 调用设驱的服务例程 322

7.2 INT23及lNT28的由来 322

第七章 实际I/O功能 322

图7.1 字符设备的I/O操作流程图 323

图7.2 ^C,^P处理流程图 324

7.3 各功能的实现 325

图7.3 0AH功能实现流程图 326

图7.4 06H功能实现流程图 328

图7.5 打印功能实现流程图 329

第八章 DOS内存分配和进程管理功能 335

8.1 DOS内存分配功能 335

8.2 DOS内存管理功能的实现流程 336

图8.1 申请内存分配功能的实现流程 337

图8.2 释放内存分配块功能的实现流程 339

图8.3 修改内存分配功能的实现流程 340

8.3 DOS进程管理功能 341

8.4 两个重要数据结构:EXE文件头和PSP详解 343

图8.4 EXE文件的静态相对段址示意图 344

8.5 DOS进程加载及装入功能的实现流程与程序清单 349

图8.5 DOS进程加载功能的实现流程 351

图8.6 DOS装入覆盖功能的实现流程 353

图8.7 折半划分后的内存布局 361

图8.8 EXE文件定位到内存块高段后的内存布局 362

图8.9 EXE文件的二进制信息表实例 368

8.6 DOS进程结束功能的实现流程与程序清单 377

图8.10 DOS加载执行与进程结束功能之间的对比 377

图8.11 DOS进程结束功能的实现流程 378

8.7 DOS的PSP创建/取置功能的实现流程 384

图8.12 DOS创建PSP功能的实现流程 386

第九章 IOCTL功能、码页功能及DOS内部服务功能 388

9.1 内核中的lOCTL功能及其重新认识 388

图9.1 DOS内核INT 21H/AX=4400H功能的流程 390

图9.2 DOS内核INT 21H/AX=4402H功能的流程 393

9.2 利用IOCTL功能为中断驱动的字符设备编程 405

9.3 码页功能与NLSFUNC 410

9.4 DOS内部服务INT 2FH/AH=12H功能 412

第十章 网络文件功能 423

10.1 文件共享 423

10.2 记录锁存 427

图10.1 5CH功能实现流程 429

10.3 检测局域网 432

10.4 识别站点 434

10.5 共享打印 435

10.6 网络重定向 437

10.7 五花八门的5DH调用 440

10.8 提交文件 442

10.9 小结 442

第十一章 DOS扩展:FASTOPEN与SHARE的原理及实现 443

11.1 FASTOPEN的作用与实现 443

图11.1 fastopen服务程序示意框图 445

11.2 SHARE的数据结构、功能及其实现 450

图11.2 SHARE所使用的数据结构网 454

图11.3 SHARE中“SCB创建或再次打开”子程序的流程 459

图11.4 SHARE中“并闭共享文件的SFT”子程序的流程 460

图11.5 SHARE中“关闭指定计算机的共享文件”子程序的流程 461

图11.6 SHARE中“以文件名关闭共享文件”子程序的流程 463

图11.7 两个锁定区域的六种相对位置 464

图11.8 SHARE“检测文件读/写时的锁定冲突”子程序的流程 466

图11.9 SHARE中“检查是否有打开模式等相同的句柄”子程序的流程 470

第三篇 MS—NET与IFS 473

第一章 问题的引入:Microsoft Network 473

1.1 分层结构中与DOS内核文件系统平行的分支 473

1.2 微机局域网的硬件特性 474

第三篇 MS—NET与IFS 475

图1.1 PC Network网络适配器硬件结构图 475

1.3 MS—NET的组成及其总体结构 477

图1.2 PC Network环境下的MS-NET总体结构 478

1.4 在不同层次实现网络文件系统的对比分析 478

图1.3 Novell Netware的总体结构 480

第二章 MS—NET的重定向服务程序 481

2.1 DOS内核与重定向接口 481

2.2 MS—NET的基石:NETBIOS 496

2.3 重定向服务程序的实现原理初探 507

第三章 MS—NET的文件/打印服务程序 511

3.1 文件服务程序概述 511

3.2 INT 2AH与前后台调度 511

3.3 文件服务程序所使用的数据结构 514

3.4 SMB请求的解释执行 515

第四章 可安装的文件系统IFS 517

4.1 IF重定向接口的奇妙用途 517

4.2 IFS的演示程序:Phantom驱动器介绍 518

4.3 利用IFS编程的一些构想 519

第四篇 DOS外壳层 521

图1.1 稳定状态下的DOS内存布局 521

第四篇 DOS外壳层 521

第一章 COMMAND.COM驻留部分总介 521

1.1 稳定状态下的DOS内存布局 521

1.2 各部份的功能介绍 522

第二章 COMMAND的暂驻部分 525

2.1 暂驻部分的主流程 525

图2.1 一般命令行的处理过程 526

图2.2 PROMPT子命令表的表项结构 527

图2.3 内部命令表的表项结构 528

2.2 对重定向操作及管道命令的处理 532

2.3 可安装命令的接口及其实现 535

2.4 DIR命令的实现流程 542

图2.4 DIR命令的显示过程流程 543

2.5 COPY命令的完整格式及实现流程 544

2.6 ERASE/DEL命令的实现流程 548

图2.5 ERASE/DEL命令的实现流程 549

2.7 其他内部命令的使用与实现 550

图2.6 RENAME/REN命令的实现流程 551

图2.7 cls命令的实现流程 553

图2.8 CTTY命令的实现流程 554

2.8 FOR命令的使用与实现 558

2.9 批处理命令的使用与实现 560

2.10 再论暂驻部份的完整流程 567

图2.9 COMMAND暂驻部分的完整流程 568

3.1 常驻部份的构成及其实现流程 575

第三章 COMMAND的常驻部份 575

图3.1 常驻部分加载执行子例程的流程 575

图3.2 COMMAND中INT23H服务程序的流程 576

图3.3 COMMAND中INT22H服务程序的流程 578

3.2 保留的lNT 2EH中断 582

4.2 批处理命令的增强 584

4.1 增强目录操作能力 584

第四章 COMMAND的改进方案 584

4.6 与汉字系统的融合 585

4.5 其他方面 585

4.4 环境块变量的编辑 585

4.3 命令行历史机制 585

1.1 多种内存的概念及区别 586

第一章 扩充内存和扩展内存 586

第五篇 DOS 5.0与DOS 6.O的新特性 586

图1.1 虚拟内存示意图 588

第五篇 DOS5.0和DOS6. 588

图1.2 DOS内存布局总图 589

1.2 从DOS6对UMB的管理的实现谈UMB的使用 589

图1.3 58H功能流程图 592

1.3 先进的80386存储管理 593

图1.4 48H功能流程图 593

图1.5 80386模式关系图 594

图1.6 80386和8086的物理地址形成对比图 595

图1.7 物理地址寻址示意图 596

图1.9 GDTR、LDTR示意图 597

图1.8 改变段寄存器示意图 597

图1.10 80386的段地址变换图 598

图1.11 分布功能示意图 599

图1.12 80386物理地址形成总图 600

图1.13 TLB算法流程 601

图1.14 TLB使用示意图 601

图1.15 XMS功能总体关系图 602

1.4 HIMEM.SYS与XMS 602

图1.16 DOS=HIGH时HIMEX.SYS的入口流程 605

1.5 EMS386.EXE与EMS 610

图1.17 扩展内存原理图 611

图1.18 55功能参数含义图 613

图1.19 56H功能控制流原理图 614

图1.20 56H功能参数含义图 614

图1.21 EMS功能总体关系图 615

1.6 虚拟控制程序接口VCPI 626

第二章 MSDOS 5.0和MSDOS 6.0总体结构的变化及原因 632

2.1 当DOS装入HMA中,DOS又是如何工作的 632

图2.3 2NT21 H A20切换流程 634

图2.2 4BDOH A20切换流程 634

图2.1 INT 23H、INT 24H、INT 28H调用流程 634

图2.5 DOS=HIGH时HMA中内存布局 635

2.2 DOS系统的静态和动态布局 635

图2.4 MS DOS.SYS的静态分布图 635

图2.6 DOS=LOW时常规内存布局 636

2.3 从DOS—INIT看DOS=HIGH的形成 637

图2.7 DOS—2NIT流程分析 638

图2.8 MSDOS模块安装流程 639

3.1 32位文件系统 641

第三章 DOS内核在功能和效率上的改进 641

3.2 先行缓冲区的使用 644

图3.1 使用先行缓冲器对256K字节的文件进行12800次顺序读写,所获得的性能改善图 644

图3.2 先行缓冲区管理总图 645

3.4 有趣的DOSKEY 646

3.3 EXEC功能的校正码到底是怎么回事? 646

第一章 C语言的高级应用 648

1.1 程序代码定位——先从汇编语言讲起 648

第六篇 DOS的高级编程启示与实例 648

1.2 内存模式 653

1.3 C语言启动代码 654

1.4 C语言的命令行处理 664

1.5 环境块的处理 669

1.6 如何用C语言编写设备驱动程序 671

1.7 用C语言编写中断驻留程序 694

2.1 TSR程序的分类 696

第二章 TSR编程 696

2.2 TSR的安装 696

2.3 TSR激活与弹出 700

2.4 INT9H、INT8H、INT1CH、INT16H、INT28H的截获技术 702

2.5 标准TSR识别技术 706

2.6 图形模式下弹出TSR 710

2.7 TSR的释放 718

2.8 利用SDA切换技术的TSR 724

第三章 调试器接口 729

3.1 调试器环境的建立 729

第六篇 高级应用篇 733

图3.1 DEBUG环讲建立及主循环框图 733

图3.2 INT22H流程图 734

图3.3 INT24H流程图 735

3.2 T、G、P命令的实现及用户态、管程态的互换原则 735

图3.4 下命令流程图 736

图3.5 P命令流程图 737

图3.6 INT1、INT3流程图 738

3.3 利用SDA技术扩展Debug功能 739

4.1 DOS为实现各国语言支持的总体设计 742

第四章 可翻译程序编程 742

4.3 国家码功能的使用 743

4.2 字符串翻译 743

图4.1 国家码的国家信息框图 744

4.4 怎样用国家信息 745

4.5 大小写转换 746

4.7 双字节引导字符集的使用 747

4.6 排序 747

4.8 小结 748

图5.1 命令解释器的大循环框图 749

第五章 命令解释器编程 749

5.1 命令解释器的基本要求和改进设计 749

5.2 其它命令解释器产品与COMMAND的比较 753

5.3 利用、定位、访问主环境块 754

5.4 批处理增强器 758

5.5 中断过滤程序 760

5.6 一个利用可安装的内部命令的实例 761

第六章 病毒的实现技巧和预防措施 775

6.1 计算机病毒的分类 775

6.2 计算机病毒的机制 775

6.3 计算机病毒的驻留方法及内存映象 776

6.4 检查内存中病毒的方法 777

6.5 病毒的截获技术 778

6.6 病毒的传染方法和磁盘映象 780

6.7 DIR_2病毒分析 781

第七章 DOS监视器 799

7.1 DOSSPY的设计 799

7.2 DOS监视器的一些实现技术 802

7.3 BIOSSPY的设计 808

中英文名词对照表 822

参考文献 823

相关图书
作者其它书籍
返回顶部