阅读:1548回复:2
想写u盘启动的bios isa rom,请大家分析一下我的思路是否正确。
我的系统是一个老工控系统,bios 是award bios,现在想加入u盘启动模块。
看了一个星期的资料,包括pnp bios specification,MBR的硬盘引导程序和DBR的分区引导程序,发现dos和win9x这样的操作系统启动的主要过程是DBR中的分区引导程序执行了io.sys,io.sys再引导msdos.sys等文件。 我的设计思想是这样的:先hook系统的19H号中断,就是在bios初始化完毕而操作系统还没有引导的那个时刻取得系统的控制权(这个已经被我验证可以做到) ,接下来我可以让用户选择是按照原来的启动过程还是从u盘启动,如果用户选择从u盘启动的话,那么就进入我的设计流程。 通过分析MBR的硬盘引导程序和DBR的分区引导程序的源代码,我发现这二个程序都使用了bios中断13号来实现把dbr、io.sys读到内存,因为我开发过usb总线驱动和u盘驱动,而且这二个驱动没有使用到操作系统的功能,所以我认为这个工作我可以做到,我可以改写MBR的硬盘引导程序和DBR的分区引导程序,但是不幸的是我又查了资料,发现io.sys也用到了int 13H中断,这下麻烦大了。我想我可能要把系统的13H中断全部用u盘的读写例程hook掉,不知道这个思路是否正确的呢? 希望大家指点一二,我对bios是非常不熟悉的,不胜感激!愿快乐! |
|
|
沙发#
发布于:2005-01-17 23:26
这个可能有一点帮助!
这是一个在BIOS里跑freedos的项目。 http://rayer.wz.cz/romos/romose.htm 大概看了一下,他hook了int 13h的几个功能号。 [编辑 - 1/17/05 by hands] |
|
板凳#
发布于:2005-01-18 10:03
强人阿
还要在bios里玩 |
|
|