中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 介绍:%windir%和%winbootdir% 上一主题 | 下一主题
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『楼 主』:  介绍:%windir%和%winbootdir%

用过MS-DOS 7.x/Win9x的人就知道,系统中有两个特殊的变量:%windir%、%winbootdir%。那么,它们到底是怎样产生的呢?我刚才进行了一些研究,下面就来介绍一下。

DOS在启动时首先看MSDOS.SYS的[Paths]项中有没有指定winbootdir路径,这时,就有两种情况:

如果没有指定winbootdir路径的话,将进行以下操作,否则将直接进入步骤B:
A:这时又分为两种情况:MSDOS.SYS中指定了windir路径;MSDOS.SYS中没有指定windir路径。
如果指定了windir路径的话,那么winbootdir将自动使用windir路径;如果没有指定windir路径的话,那windir将被自动设置为默认值:C:\WINDOWS

此操作完成后,windir路径就已被自动指定了,也将进入步骤B。

B:然后,又分为两种情况:MSDOS.SYS中指定了windir路径;没有指定windir路径。
如果MSDOS.SYS中指定了windir路径的话,那么这时的winbootdir路径将被自动设置为DOS环境变量%winbootdir%,并自动加载HIMEM.SYS、IFSHLP.SYS等;如果没有指定windir路径的话,将不把winbootdir路径设置为环境变量%winbootdir%,并不自动加载HIMEM.SYS、IFSHLP.SYS等。

然后,MSDOS.SYS中指定的windir路径就没有作用了,但指定的winbootdir路径却有用。但WIN.COM启动时,会通过调用IO.SYS中的一个功能重新自动取得MSDOS.SYS中的winbootdir变量并设置为环境变量%winbootdir%,所以如果在此之前手工修改%winbootdir%环境变量(例如用ENVMASTR等工具)是没有用的。

WIN.COM在重新生成%winbootdir%环境变量的同时,也会自动产生%windir%环境变量,但不像%winboodir%,这个%windir%变量不是从MSDOS.SYS的windir路径中取得的,而是自动获得WIN.COM文件的当前实际路径。

由于WIN.COM是通过调用MS-DOS 7.x的IO.SYS的一个新增功能来重新得到MSDOS.SYS的winbootdir路径并设置为%winbootdir%环境变量,而此功能在其它的DOS(如MS-DOS 6.x、ROM-DOS、PC-DOS等)中不存在,所以目前无法在非MS-DOS 7.x/8.0的DOS下启动Win9x GUI!



Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2003-9-8 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『第 2 楼』:  

最后一句话修改一下,应该是IO.SYS将MS-DOS.SYS中指定的winbootdir路径保存于内存中的某个位置,然后由Win9x的VMM32.VXD(不是WIN.COM)来从内存的那个位置取得它并设置为%winbootdir%环境变量值,然后读取WIN注册表文件%winbootdir%\SYSTEM.DAT和%winbootdir%\USER.DAT,否则就会提示注册表文件找不到。



Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2003-9-9 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


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

最新更新:

经过研究和实验已证明:IO.SYS是将MSDOS.SYS中的winbootdir路径存入内存中的地址1020FE(16进制)处,这是固定地址。在这儿可以看到类似"C:\WIN98\SYSTEM.DAT"的字样。因此,如果想修改WIN路径的话,将类似"C:\WIN98\SYSTEM.DAT"的字样换成别的即可,例如"D:\WIN98SE\SYSTEM.DAT",然后直接进入D:\WIN98SE\WIN.COM。由于那儿留下的空间很多,所以基本上没有字符长度限制问题,想修改成多长都可以的。



Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2003-9-11 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
cn_archer
元老会员

农民


积分 2903
发帖 991
注册 2003-7-23
来自 福建省
状态 离线
『第 4 楼』:  

好东西,顶!



艰难奋长戟,万古用一夫

中国DOS联盟  http://www.cn-dos.net   欢迎大家来共同学习
我的MSN&E-Mail cn_archer@hotmail.com  QQ 56049418
2003-9-11 00:00
查看资料  发送邮件  发短消息 网志  OICQ (56049418)  编辑帖子  回复  引用回复
龙王
银牌会员




积分 1186
发帖 334
注册 2003-5-30
状态 离线
『第 5 楼』:  

今受益~~
我发现我自己设置的config.sys和autoexec.bat没起作用
我把msdos.sys删除后顺利通过以上设置启动windows
看过此介绍,已解心中迷惑


2003-9-13 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (3113983)  编辑帖子  回复  引用回复
eboyzwb
初级用户




积分 185
发帖 21
注册 2004-4-23
状态 离线
『第 6 楼』:  



2004-4-24 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
#four#
中级用户




积分 209
发帖 34
注册 2004-5-25
状态 离线
『第 7 楼』:  

多谢!好.

2004-5-28 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 8 楼』:  

wengier兄剥光了 MS 的内裤.





因为我们亲手创建,这个世界更加美丽。
2004-5-28 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
如是大师
元老会员

步行的人


积分 9654
发帖 3351
注册 2003-3-11
来自 湖北
状态 离线
『第 9 楼』:  

哈哈。。还是wengier厉害啊。我这里有个问题。就是在io。sys中一定要设置winbootdir路径为实际盘符吗?能不能直接设成变量%winbootdir%。

我试过,如果不更改.io.sys的话在注册表里面将路径设成%winbootdir%是无效的。。假如能将注册表里的路径统统设成%winbootdir%那么就会是真正意义上的可以任意移植的windows操作系统了。。



弄花香满衣,掬水月在手。
                 明月鹭鸟飞, 芦花白马走。
       我自一过后,野渡现横舟。
              青云碧空在,净瓶水不流。
http://dos.e-stone.cn/guestbook/index.asp
   ======中國DOS聯盟=====
我的新网页http://rsds.7i24.com欢迎光顾
2004-5-28 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kulongerzu
中级用户

血中白狼


积分 243
发帖 39
注册 2004-6-8
来自 浙江
状态 离线
『第 10 楼』:  

顶!顶!顶!



比尔·盖兹?他那也叫有钱?
靠,我要是让他给我数钱,他准会说我判了他一个无期^_^&*_*
2004-7-7 00:00
查看资料  发送邮件  发短消息 网志  OICQ (88163681)  编辑帖子  回复  引用回复
linux1234
中级用户




积分 293
发帖 42
注册 2003-10-17
状态 离线
『第 11 楼』:  

嗯,不错,我很满意

2004-7-8 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: