中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-10-31 18:51
共 47,815 主题排行 / 349,930 发帖 / 今日 0 篇 / 48,290 会员排行
DOS开发编程 & 发展交流 (开发室) » 哪位朋友研究过再次引导计算机启动?
可打印版本  1,395 / 9
第1楼 zhgwbzhd 发表于 2007-06-18 00:36
高级用户 发帖 187 积分 506
哪位朋友研究过再次引导计算机启动?
比如先让计算机启动到自己的OS,在这里里面有控制界面。输入密码正确之后,再让计算机启动到自己的操作系统。
原来俺使用int19,但是再很多机器上都不能使用。死机呀。
不知道有没有其他的什么更好的办法呀!
第2楼 zhgwbzhd 发表于 2007-06-18 22:24
高级用户 发帖 187 积分 506
高手呀,指点一下吧。
第3楼 AlexZhang 发表于 2007-06-27 18:27
系统支持 发帖 440 积分 1,028
这就是相当于GDLDR LILO之类的东西 可以参考Aero实现。反汇编一下
第4楼 netwinxp 发表于 2007-07-25 19:50
高级用户 发帖 366 积分 741
  如果在实模式下,而又没有其他TSR程序(或者说中断向量表没被修改过),可以通过INT19H重新载入MBR启动,或者用GRUB载入其他系统,如果中断向量表被改过则很有可能死机,你只好通过JMP FAR FFFF:0000完全重新启动。
  在保护模式下,由于内存访问模式不再是段:偏移量,而是平坦模式,上述可能无效或导致不可预知的后果。
第5楼 zhgwbzhd 发表于 2007-07-26 16:37
高级用户 发帖 187 积分 506
在实模式下,我是不是可以先把中断向量表保存到其他位置,在准备重启时,
把中断向量表恢复一下,之后把MBR读到7c00处,再跳到7c00处执行。
也就是模拟一下刚刚启动的时刻。

不过,可惜的是,恢复中断向量表时就死机了。
不知道哪位高手告诉俺可能的原因在哪里呢??

十万个敬意送给你们呀!
第6楼 netwinxp 发表于 2007-07-26 18:44
高级用户 发帖 366 积分 741
把MBR读到7c00处,已经覆盖了DOS重要的数据区,然后你又恢复了DOS一大堆中断,不死机才怪呢!中断向量只是一个指针,它指向的内容很多都被破坏了,你再恢复它有啥用?想弄开机密码你可以用BIOS密码,也可以用GRLDR内置密码,你这样到处乱改重要内存区的内容不是故意整死机吗?
第7楼 zhgwbzhd 发表于 2007-07-26 23:18
高级用户 发帖 187 积分 506
首先是可以读MBR到7c00处的,这个时候不会引起死机。
就是在恢复中断向量表时,死机。
我猜测的原因是,可能DOS用到了他的一些中断,我在恢复时造成他们死机。

可是我怎么才可以不引起它死机呢??
第8楼 netwinxp 发表于 2007-07-27 01:25
高级用户 发帖 366 积分 741
你处理方法就有点象只备份分区表,切把整个硬盘的内容全清除了,你说这种情况,你即使恢复分区表能启动吗?你酱紫想不死机基本上不太可能。对于有TSR驻留(特别是挂接键盘、定时中断的程序)的情况下,用GRUB重新载入系统都会死机。
第9楼 netwinxp 发表于 2007-07-27 01:30
高级用户 发帖 366 积分 741
另外,你一乱修改中断向量表,不要说是调用DOS了,定时中断及一些挂在定时中断上的DOS中断马上就飞了。建议你多看看TSR的编写及DOS的内存调度机制这些方面的资料。

[ Last edited by netwinxp on 2007-7-27 at 01:36 AM ]
第10楼 zhgwbzhd 发表于 2007-07-28 01:13
高级用户 发帖 187 积分 506
谢谢呀,我现在正在学习这个方面呢。所以呢还是确实有很多不了解的地方。
不过还是谢谢了。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023