标题: 三重故障重启机器——绝妙!
[打印本页]
作者: tinybit
时间: 2005-10-29 22:07
标题: 三重故障重启机器——绝妙!
用这篇英文文章里面的词来赞美,就是 elegant reset。
今天用 debug 跟踪 NTLDR 的代码,无意中发现了 NTLDR 采用键盘控制器命令 out 64h, feh 来重启动机器。虽然这个方法不是新颖的,但对我来说,却比较新颖,因为我在其他地方还没有见到这种重启机器的方法。一般都是用 jmp f000:fff0 或者 jmp ffff:0000 来重启(只能在实模式下使用)。用键盘控制器命令,可以在保护模式下使用,也可以在实模式下使用,是比较好的方法。
在 google 中猛找一通,发现了重启机器的更好方法:三重故障(triple fault):
http://www.x86.org/productivity/triplefault.htm
如果你的机器上没有键盘控制器,哈哈!你就无法用 NTLDR 中所采用的这种重启机器的方法了。而三重故障的重启方法与键盘控制器无关,总是有效的。确实有些机器没有键盘控制器,在 GNU GRUB 的网站上曾经看到这样的 BUG 报告。
-------------
这里是 DOS 论坛,我觉得缺少了点什么,比如,讨论 BIOS 的地方却没有,讨论 CPU 指令的地方也没有。我觉得似乎应该建立一个专门的讨论区。
其实 DOS 是一个集大成者。DOS 和 BIOS 密切相关,学习 CPU 指令的人,不学 DOS 和 BIOS 肯定是不行的,因为这是 PC 技术的发展历史,PC 技术最初就是这么走过来的,你撇开了历史,还能得到什么呢?空空如也!
我这种论调,微软肯定反对,因为微软恰恰不想让人们学习 DOS。好了,这不说了,人家有人家的商业目的,让普通的人聪明了,能够和它竞争了,那么它的软件还能热卖吗?所以,微软成功地培养了大批的傻瓜用户——那一堆一堆的只会用鼠标的电脑操作员。它让这些人永远仰望着微软的高楼大厦,望洋兴叹。
----------------
还找到了 A20 控制的很好的网页,正在研究呢:
http://www.win.tue.nl/~aeb/linux/kbd/A20.html
用 google 吧,你用国内的其他搜索引擎,恐怕无法找到那些精彩的英文技术资料的。
作者: fastslz
时间: 2006-7-5 22:00
刚看到这段精彩言语.....
作者: electronixtar
时间: 2006-7-5 23:47
顶一个,喜欢这种本质的东西
作者: Wengier
时间: 2006-7-6 01:08
开设一个如DOSforever所说的“大杂烩”专区,包括CPU、BIOS等各方面的讨论内容?
作者: fastslz
时间: 2006-7-6 12:46
支持一下!!!
CPU虽然很深奥,但是了解BIOS很有必要,现在硬件更新特别快BIOS技术随之更新,判断电脑故障DOS和BIOS一个也不能少。
作者: electronixtar
时间: 2006-7-6 15:57
Intel 的 什么狗屁 EFI 要代替BIOS技术了,听说主要是BIOS太古老了,启动太慢了