利用扩展BIOS技术实现Pre-OS应用的方法及系统的制作方法

文档序号:6554270阅读:523来源:国知局
专利名称:利用扩展BIOS技术实现Pre-OS应用的方法及系统的制作方法
技术领域
本发明涉及一种通过PCI扩展ROM在计算机加载磁盘操作系统之前加载并执行其它辅助功能程序的方法及系统。
背景技术
时下Pre-OS应用非常流行,所谓Pre-OS应用是指在电脑加电自举过程中,操作系统(OS)加载运行之前执行一些具有特定功能的应用的技术,它允许在传统的个人电脑(PC)加电自启动过程中,在BIOS检测完毕,操作系统引导之前定制一些应用,以实现诸如病毒检测、密钥验证、数据保护、甚至透过网络进行远程诊断和数据传输、以及PC的家电化操作等功能。Pre-OS技术提升了电脑的安全性、易用性和可扩展性,在垂直分工的PC产业结构里开辟了一个新的增值服务空间。
Pre-OS应用有两种方式,一种方式直接将应用程序放置在软盘、光盘或硬盘等载体介质上,将磁盘主引导记录替换成该应用的引导代码在BIOS载入OS的时候接管控制。这种方式的优点是软件升级方便,另外由于容量不受限制功能可以做的非常强大;但它的缺点就是保密性差,容易被病毒破坏和非法拷贝。
Pre-OS应用的另一种方式是与BIOS相结合,把应用程序作为BIOS的一个扩展功能模块,在技术实现上可将编写的代码与BIOS代码联编,并烧录在同一块ROM芯片上,在BIOS运行过程中通过热键呼出应用,这种方式的优点是安全性高,不受外部介质和病毒的影响,给用户的感觉相对透明,但它的缺点也很明显,开发扩展BIOS程序属于BIOS开发领域,这是一个技术相对艰深的软件开发领域,要跟BIOS直接打交道,技术实现难度较大,使用此种方法的大多是OEM厂商和BIOS厂商,由于核心技术被世界上仅有的几家公司所垄断,所以开发资料稀缺,技术门槛很高,不容易升级。其次ROM空间有限,相对硬盘、光盘等软件载体空间要小很多,因此出于成本考虑,作为扩展BIOS应用的载体ROM芯片的容量一般都只有几十KB而已,受限于代码容量的制约,扩展BIOS应用实现的功能也无法做得很强大。为了克服容量上的限制,已有一些相关的尝试,例如申请号为00106120.8的中国申请公开了一种作为计算机扩展BIOS软件的载体的Boot ROM的增容方法及其载体;申请号为02137957.2的中国申请公开了一种计算机的扩展ROM的扩容方法及接口芯片。以上方法都是通过修改硬件的方式来扩大ROM容量,不够通用。
依据《PCI局部总线标准》和《即插即用BIOS规范》中描述的PC启动过程,PC在上电自举过程中,加载磁盘操作系统之前,会扫描PCI总线上的各PCI设备,如果发现某个PCI设备带有扩展ROM,且这个扩展ROM中的数据符合BOOT ROM的标准格式,PC就会依次加载并运行这些扩展ROM中的程序。这种对系统BIOS功能进行扩展的技术称为“扩展BIOS”技术,计算机中常用到的显卡、声卡、网卡和硬盘保护卡等设备大都用到了这种“扩展BIOS”的技术,例如显卡可以在扩展ROM中置入初始化代码,系统在加电自检后、OS启动前即可显示系统信息;硬盘保护卡通过在扩展ROM中置入网络及数据传输功能程序即可实现网络克隆等功能。扩展BIOS技术的实现原理就是在扩展ROM中写入应用的引导程序和应用程序,计算机会在上电自举过程中操作系统加载之前自动扫描和加载扩展ROM中的引导程序和应用程序,由于可以不要求操作系统的支持和干预,所以即使计算机没有硬盘和操作系统,扩展ROM中的引导程序和应用程序也能够控制计算机以实现某些特定的应用。
基于这种PCI扩展ROM的工作机制,个人就可以编写各式各样功能的ROM程序,为计算机开辟相应的扩展BIOS应用领域,譬如申请号为200410064968.7的中国申请公开了一种在网卡引导区实现开机锁功能的方法,是在ROM程序中实现了开机锁功能;申请号为200510037709.X的中国申请公开了一种通过PCI扩展ROM实现网络功能的方法,是在ROM中放置了网络驱动程序,从而进行网络认证和数据传输;申请号为00114265.8的中国申请公开了一种防止开机时通过计算机主板存储单元传送数据的方法,仅仅是在ROM中放置了一个可以自动清除cmos数据的小程序;申请号为200310121280.3的中国申请中公开了一种扩展BIOS及使用该扩展BIOS的双模式计算机,其扩展ROM甚至包括了一套独立的家电操作系统。

发明内容
为了解决以上所述的两种Pre-OS应用的缺陷,本发明提出了一种利用扩展BIOS技术实现Pre-OS应用的方法及系统,通过本方法及系统不仅可以克服扩展ROM空间的限制,规避BIOS编程的技术门槛,而且可以增强应用的安全性以及易维护和易升级性。
根据上述目的,本发明采用了以下的技术方案一种利用扩展BIOS技术实现Pre-OS应用的方法,包括有一个支持扩展BIOS规范和PCI总线标准的计算机;一个或多个与操作系统相剥离的Pre-OS应用;一个或多个可被所述计算机访问的存储所述Pre-OS应用的存储装置;一个或多个可植入只读存储芯片中的应用加载程序;一个或多个可承载所述应用加载程序的载体;所述方法包括步骤a、所述计算机在加载操作系统之前运行所述应用加载程序;b、所述应用加载程序运行后加载并引导运行所述Pre-OS应用;c、所述Pre-OS应用在被加载运行后接管所述计算机的控制权,在完成所述应用功能后将控制权交还所述计算机的默认启动处理过程。
进一步地,步骤a中所述的加载操作系统是计算机启动过程中的一个步骤,本发明并不限定所述计算机必需包含有磁盘操作系统,也不限定一定要在Pre-OS应用执行完毕后加载所述的操作系统。
进一步地,对于所述的Pre-OS应用可以进行加密,相应的所述应用加载程序也同时包含有解密功能,在应用加载执行之前首先对所述应用的程序和数据进行解密。
本发明不限定所述的Pre-OS应用加载程序的载体形式,可以以单独的PCI外插卡上的ROM芯片作为载体,也可以以主板BIOS芯片作为载体;本发明不限定PCI卡的类型,只要其可以被BIOS的ROM扫描过程检测到即可。
相应于以上方法,本发明还提出了一种利用扩展BIOS技术实现Pre-OS应用的系统,包括有一个支持扩展BIOS规范和PCI总线标准的计算机;一个或多个与操作系统相剥离的Pre-OS应用;一个或多个可被所述计算机访问的存储所述Pre-OS应用的存储装置;一个或多个可植入只读存储芯片中的应用加载程序;一个或多个可承载所述应用加载程序的载体;其特征在于,所述计算机系统在加电自举过程中,在加载操作系统之前可加载并运行所述应用加载程序,由应用加载程序加载并引导运行所述Pre-OS应用,所述Pre-OS应用接管所述计算机的控制权,在完成所述应用功能后将控制权交还所述计算机的默认启动处理过程。
本发明的独特之处在于应用的核心代码并不放置在ROM上,置入ROM中的应用加载程序只是一个起引导作用的用于加载位于大容量存储设备上的核心应用程序的载入程序,功能单一,易于实现。


图1是定制应用载入程序置于主板BIOS ROM内的示意图;图2是定制应用载入程序置于PCI卡扩展ROM内的示意图;图3是计算机启动过程示意图;图4是本发明所揭示方法的流程示意图。
具体实施例方式
以下结合具体的实施例和附图对本发明做详细的说明。
如图1所示,在一实施例中,应用载入程序(以下简称位BootLoader)存储于主板BIOS的ROM里。Pre-OS应用的核心镜像与操作系统一起保存在硬盘上,所述“核心镜像”是指完成所述Pre-OS应用主体功能的文件及数据的集合,可以以镜像文件的方式存放在光盘上或其它存储介质上。
如图2所示,在另一最佳实施例中,BootLoader存储于PCI卡的扩展ROM里,定制应用的核心镜像保存在光盘中,使用光盘等可移动存储介质的好处是便于发布,便于用户从网上下载更新以及刻录。
如图2所述的PCI卡可以是网卡、显卡、声卡或硬盘保护卡等具备扩展ROM能力的PCI设备。
本发明所述的应用加载程序的加载方式可以是在系统加电自举过程中,通过人为按热键的方式来呼叫,可以默认执行,也可以是等待用户干预超时后跳出执行默认处理的方式。
本发明注重的是应用载入程序即BootLoader如何加载位于其它存储装置上的核心镜像,并不对核心镜像的内容作出限制。核心镜像可以是一个单独的可执行程序,也可以是一套完整的操作系统。例如一实施例中核心镜像是一套FreeDOS操作系统,在它基础上使用MiniGUI开发了一个简单的图形应用程序,BootLoader加载此镜像后就可以引导操作系统启动并运行图形应用程序。
以下结合附图3和附图4介绍本发明的具体工作流程。
为了增强定制应用的核心镜像的保密性、安全性以及为了防止核心镜像的非法拷贝,一最佳实施例对核心镜像进行了加密,加密的方式不限,一个简单的实施例可以在镜像发布时使用一个特定的加密字串对核心镜像按字节异或,在ROM程序里对读出的镜像内容按同样的加密字串异或求解即可还原出原始的镜像内容。
如图3所示步骤302所述的扩展ROM程序在本实施例中即指BootLoader程序,BootLoader负责加载及解密核心镜像,并将核心镜像安装到硬盘的特定区域,该硬盘特定区域对用户透明并保证不会被硬盘上的操作系统正常访问,镜像安装成功以后每次启动BootLoader程式代码就直接从硬盘上的特定区域载入核心镜像并执行。BootLoader程式代码遵循扩展BIOS规范,既可以整合进主板BIOS中如图1所示,也可以采用扩展OptionROM的形式放置在网卡、显卡、声卡等具备扩展ROM能力的PCI设备上,如图2所示。
所述硬盘特定区域是指本发明会在硬盘上保留一部分空间,使其不被划进操作系统所管理的分区内,用户在操作系统上面进行的所有操作都是基于分区内文件系统的,不会对驻留在分区以外硬盘上的核心镜像数据区域产生影响。
图4示例了BootLoader的处理流程步骤401、在BIOS初始化扩展ROM时,通过替换中断向量表中的Int19h中断向量来Hook Int19h,获取系统的优先控制权,保证核心镜像可以先于其它引导设备启动,针对一些主板BIOS会在启动过程中检查Int19h的特性,技术上采用向量保护技术——通过时钟中断Int8h反复挂接Int19h。
Int19h是主板BIOS(基本输入输出系统)提供的启动向量,负责从各种启动介质(如软驱、光驱、硬盘和网络等)上载入操作系统,这个中断向量例程是由各BIOS厂商进行维护的,在PC机完成上电自检后都会自动调用Int19h中断向量例程。本发明通过替换该Int19h例程,使得PC机在调用Int19h中断向量时自动跳转到BootLoader代码中,从而就在引导操作系统前优先获得了系统的控制权,并最先加载核心镜像去执行。
由于Int19h中断向量非常重要,一些BIOS厂商会在BIOS代码中对该向量作检测,如果发现被替换就会用原来的向量重新置换回来,从而本发明所述的载入程序失效。为了应对这种情况,本发明对替换过程进行了改良,利用时钟中断Int8h时刻监视着Int19h,一旦发现例程重新被BIOS置换就再次将它替换回去,从而实现了对例程的保护,这种技术就是向量保护技术。
步骤402、在BIOS调用int19h启动向量时,BootLoader代码就接管了控制权,若还未进行过安装,则执行步骤403,若已经安装过则执行步骤404。
步骤403、显示第一次安装界面,尝试从光驱载入核心镜像,若未找到核心镜像则会提示用户插入正确的核心镜像的光盘,放入正确的核心镜像的光盘后执行安装步骤将核心镜像安装到硬盘的特定区域,安装成功后执行步骤404。
步骤404、从硬盘载入核心镜像。
步骤405、加载并运行核心镜像。
在完成以上步骤后控制权交回有系统BIOS,接着就是OS的引导和启动过程,如附图3的步骤304及步骤305。
本实施例中BootLoader代码中不包含任何实体功能,只起接管引导的作用,因此不涉及后续的功能升级,无需进行维护,作用类似于传统BIOS中的BootBlock。本实施例中核心镜像中包含有主功能执行块,它类似一个小型的嵌入式操作系统,有自己的GUI操作界面,支持鼠标操作,提供网络和磁盘驱动支持,各个功能块以模块的形式组织在一起,具有很好的扩展性,易于用户使用。
本实施例中镜像使用特殊的加密手段保存在光盘介质上,对用户不可见,具有很高的安全性。镜像不能自启动,必须由BootLoader载入执行,有效的防止了软件的非法拷贝。
由于核心镜像执行时在核心内存区保存了所用到的寄存器及修改的中断向量等环境参数,因此在镜像退出时无需重新启动即可随意切换到不同的操作系统并正常引导。
由于核心镜像存放于光盘上,所以使用专用工具可以方便地进行核心镜像的升级和发布。
BootLoader可以有两种实现形式,一是与BIOS代码联编后存储在主板BIOS芯片中(内置式),另外就是单独存放在外插PCI卡的扩展ROM芯片上(外挂式)。
对于外挂式,考虑用户可能会拔除PCI卡的操作将会导致BootLoader失效,所以特别地在硬盘主引导记录(MBR)中放置了一段检测代码,在此代码中会读取配套的硬件卡的非易失性存储器中的相关标记,如果读不到就证明硬件卡已被拔除,程序将会阻止继续启动OS并提示用户。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,本领域技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种利用扩展BIOS技术实现Pre-OS应用的方法,包括有一个支持扩展BIOS规范和PCI总线标准的计算机;一个或多个与操作系统相剥离的Pre-OS应用;一个或多个可被所述计算机访问的存储所述Pre-OS应用的存储装置;一个或多个可植入只读存储芯片中的应用加载程序;一个或多个可承载所述应用加载程序的载体;所述方法包括步骤a、所述计算机在加载操作系统之前运行所述应用加载程序;b、所述应用加载程序运行后加载并引导运行所述Pre-OS应用;c、所述Pre-OS应用在被加载运行后接管所述计算机的控制权,在完成所述应用功能后将控制权交还所述计算机的默认启动处理过程。
2.如权利要求1所述的利用扩展BIOS技术实现Pre-OS应用的方法,其特征在于,步骤a通过替换中断向量INT19h使得所述计算机在调用INT19h向量时自动跳转到所述应用加载程序处执行,从而优先获得系统的控制权,并利用时钟中断向量INT8h时刻监视中断向量INT19h,若发现中断向量被BIOS复原则进行再次替换。
3.如权利要求1所述的利用扩展BIOS技术实现Pre-OS应用的方法,其特征在于,所述应用加载程序以单独的PCI外插卡上的只读存储芯片作为载体。
4.如权利要求1或3所述的利用扩展BIOS技术实现Pre-OS应用的方法,其特征在于,还进一步包括一个检测步骤,在硬盘MBR中放置了一段检测代码,此代码会读取所述PCI外插卡的只读存储器中的相关标记,如果读不到就证明硬件卡已被拔除,程序将会阻止继续启动操作系统并提示用户。
5.如权利要求1所述的利用扩展BIOS技术实现Pre-OS应用的方法,其特征在于,所述Pre-OS应用经过加密后以一个镜像文件的形式存储在所述存储装置上,所述应用加载程序相应的还包括对所述镜像文件进行解密的步骤。
6.如权利要求1所述的利用扩展BIOS技术实现Pre-OS应用的方法,其特征在于,所述的存储装置由光驱及光盘组成,所述Pre-OS应用存储在光盘上,在步骤b中所述应用加载程序首先检测本地硬盘中是否已经安装了Pre-OS应用的核心镜像,如果安装了则直接从硬盘加载;如果没有安装则提示从光盘安装,安装成功后,所述应用加载程序直接从硬盘加载Pre-OS应用。
7.一种利用扩展BIOS技术实现Pre-OS应用的系统,包括有一个支持扩展BIOS规范和PCI总线标准的计算机;一个或多个与操作系统相剥离的Pre-OS应用;一个或多个可被所述计算机访问的存储所述Pre-OS应用的存储装置;一个或多个可植入只读存储芯片中的应用加载程序;一个或多个可承载所述应用加载程序的载体;其特征在于,所述计算机系统在加电自举过程中,在加载操作系统之前可加载并运行所述应用加载程序,由应用加载程序加载并引导运行所述Pre-OS应用,所述Pre-OS应用接管所述计算机的控制权,在完成所述应用功能后将控制权交还所述计算机的默认启动处理过程。
8.如权利要求7所述的利用扩展BIOS技术实现Pre-OS应用的系统,其特征在于,通过替换中断INT19h的向量使得所述计算机在调用INT19h向量时自动跳转到所述应用加载程序处执行,从而优先获得系统的控制权,并利用时钟中断向量INT8h时刻监视中断向量INT19h,若发现中断向量被BIOS复原则进行再次替换。
9.如权利要求7所述的利用扩展BIOS技术实现Pre-OS应用的系统,其特征在于,所述的存储装置由光驱及光盘组成,所述Pre-OS应用存储在光盘上,所述应用加载程序首先检测本地硬盘中是否已经安装了Pre-OS应用的核心镜像,如果安装了则直接从硬盘加载;如果没有安装则提示从光盘安装,安装成功后,所述应用加载程序直接从硬盘加载Pre-OS应用。
10.如权利要求7所述的利用扩展BIOS技术实现Pre-OS应用的系统,其特征在于,所述应用加载程序以单独的PCI外插卡上的只读存储芯片作为载体,硬盘MBR中放置了一段检测代码,此代码会读取所述PCI外插卡的只读存储器中的相关标记,如果读不到就证明硬件卡已被拔除,程序将会阻止继续启动操作系统并提示用户。
全文摘要
本发明公开了一种利用扩展BIOS技术实现Pre-OS应用的方法及系统,为解决集成在ROM芯片里的Pre-OS应用开发困难、容量受限、升级困难等技术缺陷而提出,本发明包括步骤在PCI设备的扩展ROM中只存储一个起引导作用的用于加载位于大容量存储设备上的核心应用的加载程序;在计算机启动过程中执行此加载程序,通过此加载程序载入Pre-OS应用。相应的还提出一种实现此方法的系统。利用本发明的方法及系统,Pre-OS应用将不受ROM空间的大小限制,开发容易,升级方便。
文档编号G06F9/46GK101021793SQ20061000356
公开日2007年8月22日 申请日期2006年2月13日 优先权日2006年2月13日
发明者刘文斌 申请人:刘文斌
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1