中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS学习入门 & 精彩文章 (教学室) » 原创:DOS启动教学初步(一):启动过程 
« [1] [2] »
作者:
标题: 原创:DOS启动教学初步(一):启动过程  取消高亮 | 上一主题 | 下一主题
yiyesong
元老会员




积分 1987
发帖 632
注册 2002-10-27
状态 离线
『楼 主』:  原创:DOS启动教学初步(一):启动过程 

掌握一些简单的DOS启动原理知识,其意义是深远的,无论是对DOS本身还是对WINDOWS下的系统维护都有很大的帮助(事实上WINDOWS的初始启动也是如此),我将尽量地用通俗易懂的语言陆续介绍这方面的知识。希望有一定DOS基础知识的网友们能够因此而对DOS有更深层的认识。弄懂了这些东西你将会觉得解决计算机启动中的问题是如此简单。

    关健词:BOOT、IO.SYS、MSDOS.SYS、COMMAND.COM、CONFIG.SYS、AUTOEXEC.BAT、SYSINIT、DOSINIT、CMDINIT

     MS-DOS由引导程序(BOOT)和三个层次模块(IO.SYSMSDOS.SYS以及COMMAND.COM)组成。存放有这些文件的磁盘被称为DOS的系统盘。
    所谓启动DOS,即指把磁盘上的3个DOS基本模块装入到主存中,由它们指挥计算机各个部件进行协调的工作。IO.SYSMSDOS.SYS是两个隐含的系统文件,当使用命令DIR列出文件目录时,用户只能见到COMMAND.COM文件,而见不到这两个文件。
    ROM-BIOS中的自举程序先去测试软盘启动器,再去测试硬盘(这是预定设置,如果
BIOS中设置不是A、C、CDROM启动顺序,则稍有不同,不过基本原理类似),测试的目的是要确定通过谁来引导启动过程。不管系统盘是在A驱的软盘还是在C驱的硬盘中,自举
程序总是先把该盘的物理第0扇区读入内存。但由软盘引导和由硬盘引导启动,最初还是有些差别。
    对于软盘启动,读进的就是DOS引导扇区,故立即执行BOOT引导程序;对于硬盘启动而言,由于读进的第1扇区是硬盘主引导扇区,所以先要执行其中的主引导程序;由它找到DOS的主分区,即可被激活的分区,然后才能将该区的DOS引导扇区读入,转而执行BOOT引导程序。随后,整个引导过程就完全相同了。
    BOOT程序检查是否有IO.SYSMSDOS.SYS两个文件,看它们是否是最前面的两个文件,且IO.SYS排在第一位。完成这一检查、确认无误后,就把IO.SYS模块读入主存,控制转移到初始化程序SYSINIT。它对基本输入输出管理进行初始化工作,并将DOS内核模块MSDOS.SYS读入内存,调用内核初始化程序DOSINIT,完成对内核的初始化工作。在这之后,又返回到SYSINIT去执行系统配置文件CONFIG.SYS,实现对系统环境的设置,进而把命令处理程序模块COMMAND.COM读入内存,才将控制权移交给CMDINIT
    CMDINIT做一些有关的初始化工作,然后就去查找是否存在AUTOEXEC.BAT文件。若该文件存在则执行。最后将控制权交给COMMAND.COM暂驻模块CCPT,在屏幕上现出DOS提示符,整个启动过程完成。
     对于从光盘启动,则是模拟出一个软盘启动,一般是在光盘中放上软盘镜象文件,其基本原理和从软盘启动是一样的。

    启动过程如下:

                                    硬盘
ROM-BIOS—自举程序—读启动盘第0扇———— 硬盘主引导扇区—主引导程序
                          |                                     |
                          |软                                   |      
                          |盘                                   |
                          |_____________________________________|  
      _______________________________________|   
     |
     |
    DOS引导扇区—BOOT程序检查头两个基本文件—读入IO.SYS模块——
    SYSINIT程序对BIOS模块进行初始化—读入并定位MSDOS.SYS—执行CONFIG.SYS
                                                  |             |
       ___________________________________________| 读入COMMAND.COM—BIOS模块
      |                                                         |
MSDOS.SYS—DOSINITT程序—对内核进行初始化—内核模块            |
       _________________________________________________________|
      |
COMMAND.COM—CMDINIT程序进行初始化—执行AUTOEXEC.BAT—显示DOS提示符
            —暂驻模块(CCPT)
            —常驻模块(CCPR)                                   
                        

















[此贴子已经被作者于2002-11-13 19:30:55编辑过]






[flash=550,93]http://dos.e-stone.cn/dosbbs
uploadImages/200311161145850422.swf[/flash]
2002-11-12 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yiyesong
元老会员




积分 1987
发帖 632
注册 2002-10-27
状态 离线
『第 2 楼』:  

请大家对这篇文章发表看法,如果难度不是很大的话,我将在以后的教学中陆续分别介绍IO.SYS、MSDOS.SYS、COMMAND.COM等分模块的启动过程。如果觉得难以接受,我将就此为止。



[flash=550,93]http://dos.e-stone.cn/dosbbs
uploadImages/200311161145850422.swf[/flash]
2002-11-12 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hjz123
初级用户




积分 130
发帖 10
注册 2002-11-9
状态 离线
『第 3 楼』:  

难度是有一点,但是希望你能坚持下去。

2002-11-13 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Darknight
初级用户




积分 102
发帖 1
注册 2002-11-13
状态 离线
『第 4 楼』:  

我从“系统增强”区下载到了“E/OS LX0.2”发现该系统不包含IO.SYS、MSDOS.SYS、COMMAND.COM等启动文件,那么如何安装启动E/OS?望告知。

2002-11-13 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yiyesong
元老会员




积分 1987
发帖 632
注册 2002-10-27
状态 离线
『第 5 楼』:  

请大家继续关注启动教学(二)、(三)。



[flash=550,93]http://dos.e-stone.cn/dosbbs
uploadImages/200311161145850422.swf[/flash]
2002-11-18 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
mys
元老会员




积分 5170
发帖 1637
注册 2002-10-16
来自 广东佛山
状态 离线
『第 6 楼』:  

按Wengier所说:E/OS LX工作在DOS中,需要加载HIMEM.SYS但不需要EMM386,运行它的WIN.EXE启动,就像以前的WINDOWS3.X.
不过在我的机上运行到一半时死机,所以不能告诉你更多.



我的网志
http://hzmys.blog.163.com/
我的网盘
firststep.qjwm.com
fsmys.ys168.com
ssmys.ys168.com
www.brsbox.com/fsmys
www.brsbox.com/ssmys
www.brsbox.com/ccdos
2002-11-18 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (2664429)  编辑帖子  回复  引用回复
流氓企鹅
中级用户

imp


积分 312
发帖 82
注册 2002-11-9
状态 离线
『第 7 楼』:  

是不是启动到一半就卡住了啊

2002-11-18 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
MYS
元老会员




积分 5170
发帖 1637
注册 2002-10-16
来自 广东佛山
状态 离线
『第 8 楼』:  

是的,不知是硬件冲突还是怎的,似乎是显示的问题,没记清楚。



我的网志
http://hzmys.blog.163.com/
我的网盘
firststep.qjwm.com
fsmys.ys168.com
ssmys.ys168.com
www.brsbox.com/fsmys
www.brsbox.com/ssmys
www.brsbox.com/ccdos
2002-11-18 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (2664429)  编辑帖子  回复  引用回复
流氓企鹅
中级用户

imp


积分 312
发帖 82
注册 2002-11-9
状态 离线
『第 9 楼』:  

我也是这样的

2002-11-18 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
水因缘
初级用户




积分 104
发帖 2
注册 2002-11-20
状态 离线
『第 10 楼』:  

和楼上的一样啊

2002-11-20 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhangyl
初级用户




积分 111
发帖 2
注册 2003-6-6
状态 离线
『第 11 楼』:  

作为一个小菜鸟,真的感觉有点难度 呵 感觉还是讲点稍微简单的 斑竹 你说怎么样啊,我真的很想把dos学好,可是    天资愚笨加上不是很用功所以.............呵呵   辛苦斑竹了,可别给我仍鸡蛋 ,我承认俺菜啦都...................我会坚持来这个论坛学习

2003-6-6 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
柏仔
初级用户

DOS爱好者


积分 478
发帖 100
注册 2003-4-22
状态 离线
『第 12 楼』:  


学到东西




|||||||  寻人启示:姓名:
| c●● ~年龄:20,性别:男
|  ♂▃~ 特征:帅.很帅.酷.特别酷....
| |︺英俊潇洒.风流倜傥,玉树临风→我

单钓E时代论坛
2003-6-6 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wxp01
初级用户




积分 152
发帖 11
注册 2003-6-7
状态 离线
『第 13 楼』:  

我有点看不懂,请教我怎么才能学好呀

2003-6-7 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
89155380
初级用户




积分 132
发帖 7
注册 2003-6-8
状态 离线
『第 14 楼』:  

顶!

2003-6-8 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
nbh002
中级用户




积分 396
发帖 67
注册 2002-12-3
状态 离线
『第 15 楼』:  

我大体是看懂了,只是SYSINIT、DOSINIT、CMDINIT这三个东东还不太了解,希望以后的(二)(三)中能顺道祥解一下!!!
狂顶此帖!!!

2003-6-8 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: