关于 Windows,BIOS中断,如何跟踪以及如何操作?

分享于 

3分钟阅读

电脑

  繁體 雙語

问题:

是否可以查看引发 Windows的BIOS中断? 我可以使用"调试"( cmd命令) 向BIOS发送中断并跟踪一些结果?


回答 1:

硬件中断

有人似乎告诉你 Windows NT 运行在BIOS之上,你从中推断出中断是由BIOS来引导的,然后由BIOS来启动。

这是完全错误的,这是操作系统如何工作的错误模型。 除了 ACPI,系统管理模式和(。对于某些显示适配器) VESA支持,你的BIOS固件在任何时候都是 uninvolved,只要 Windows 已经启动并运行。 中断( SMM ) 不是由BIOS来部署的。 这些代码由 Windows 硬件抽象层,does does hardware jiggery necessary kernel kernel kernel kernel kernel kernel。

要跟踪 Windows NT 中中断信号的处理,需要一个调试内核,与一个内核调试器工具通信。 然后可以使用调试器命令( 如 idtapic 等) 完成操作。!

中断指令

在使用 int 指令调用的BIOS固件API中调用函数,因此混淆了 "发送到BIOS的中断"也 confusingly —和跟踪,需要 DOS ( 或者其他 16位 real模式操作系统)。 特别是你需要一个DOS调试工具。 你可以在实际的DOS上运行这个工具,比如OpenDOS或者 FreeDOS,或者在虚拟化的DOS机器上运行,比如在 Windows NT 上。 请注意,后一个虚拟DOS机器将影响固件功能。

无法调用 BIOS firmware functions —环 3模式或者 16位 环 0 protected 模式—中的固件API函数,16位 v8086 protected 模式或者环。 即使你有一种方法将它映射到虚拟内存中,机器代码也不会正确执行。 这样的固件功能在 Windows NT 或者Linux这样的操作系统上无法从应用。 ( 这对于这样的操作系统上的应用程序来说并不真正有用。


回答 2:

你可以做到这一点,毕竟,有持续中断通过 BIOS,我相信像键盘输入,磁盘 io,基本上一切都是一样的。 所以我说"是的,有一种方法"。

至于发现方法。 有一个社区管理自己的开源bios固件 coreboot。 我建议阅读他们的开发者文档,并在IRC上找到他们的开发者,并与他们交谈。

你是否严格需要在 Windows 中执行这里操作? 如果你只对BIOS感兴趣,那么你可能会更幸运地使用Linux工具进行探索。 但这超出了我现在的经验。

好运。



INT  Window  MAN  Windows  TRAC  追踪  
相关文章