应用于BIOS的虚拟磁盘实现方法技术

技术编号:7609780 阅读:268 留言:0更新日期:2012-07-22 19:59
本发明专利技术涉及应用于BIOS的虚拟磁盘实现方法,包括:在BIOS中预留连续的存储空间以用作BIOS虚拟磁盘;在BIOS中增加嵌入式虚拟磁盘(EVD)模块;在BIOS上电自检过程中,解压EVD模块于内存中;更新磁盘数量,更新BIOS的磁盘中断服务程序入口地址;调用EVD模块的中断服务程序,对BIOS虚拟磁盘进行读写操作。还提供另一种应用于BIOS的虚拟磁盘实现方法。本发明专利技术的技术方案提供一个方便用户操作的BIOS虚拟磁盘,通过调用EVD模块的中断服务程序可实现对该BIOS虚拟磁盘的读写操作,用户可在本发明专利技术提供的BIOS虚拟磁盘上进行二次开发。对于要求存储容量不大的应用环境,可采用本发明专利技术的虚拟磁盘替代固态存储媒介,节约成本,兼容性好,提高了系统的整体抗振性能。

【技术实现步骤摘要】

本专利技术涉及虚拟磁盘技术,更具体地说,涉及一种应用于BIOS的虚拟磁盘实现方法
技术介绍
客户要求在BIOS Flash中预留一段空间用来存储重要信息的需求在不断增加。 目前的做法是BIOS按需求空出有限的空间,给客户提供对BIOS Flash操作的编程接口,其编程接口目前没有统一规定,因此这种做法要求客户在其程序中必须严格按照BIOS提供的接口来操作BIOS Flash中的数据,如将其数据写入或读出,这类操作较为繁琐,且容易出错。一旦客户数据超出了预留区域,很有可能导致客户主板BIOS无法正常开机工作。而且当客户的主板硬件方案进行更新或改变时,还需要重新定制BIOS,并按照新的编程指导进行操作,带来开发上的很多不便。而在工控领域中,存在着对磁盘存储空间要求不高(可能几兆即可),但抗震性要求很高的需求。目前大部分用户采用DOC固态磁盘或CF卡等固态存储媒介来满足这类需求,但这就必须要求主板提供有此类接口,而由于技术的发展,这类接口都已退出主流,甚至在很多新平台中都不再支持。为满足工控行业的这类特殊需求,目前业界有采用转换芯片来支持此类接口,这样不但增加主板成本,也存在着一些兼容性的问题。同时,通过外设提供存储空间的方法仍难以避免在高度振动条件下造成接触不良的问题。
技术实现思路
本专利技术要解决的技术问题在于,针对现有技术的上述移植性差、操作复杂、容易出错的缺陷,提供一种应用于BIOS的虚拟磁盘实现方法。本专利技术解决其技术问题所采用的技术方案是构造一种应用于BIOS的虚拟磁盘实现方法,包括在BIOS中预留连续的存储空间以用作BIOS虚拟磁盘;在BIOS中增加嵌入式虚拟磁盘(EVD)模块;在BIOS上电自检过程中,解压EVD模块于内存中;更新磁盘数量,更新BIOS的中断服务程序入口地址;调用EVD模块的中断服务程序,对BIOS虚拟磁盘进行读写操作。在本专利技术所述的虚拟磁盘实现方法中,在BIOS中增加EVD模块具体包括按照Option ROM的格式在BIOS中增加EVD模块。本专利技术还提供另一种应用于BIOS的虚拟磁盘实现方法,包括在BIOS中预留连续的存储空间以用作BIOS虚拟磁盘;在BIOS中增加嵌入式虚拟磁盘(EVD)模块;在BIOS上电自检过程中,解压EVD模块于内存中;在内存中预留一段连续的存储空间以用作RAM虚拟磁盘,并将BIOS虚拟磁盘中的内容镜像拷贝至RAM虚拟磁盘中;更新磁盘数量,更新BIOS的中断服务程序入口地址;调用EVD模块的中断服务程序,对RAM虚拟磁盘进行读写操作。在本专利技术所述的虚拟磁盘实现方法中,还包括调用EVD模块的中断服务程序,实现BIOS虚拟磁盘的更新。在本专利技术所述的虚拟磁盘实现方法中,调用EVD模块的中断服务程序,实现BIOS 虚拟磁盘的更新的步骤具体为调用EVD模块的INTUh中断服务程序,将RAM虚拟磁盘中的内容镜像拷贝到BIOS 虚拟磁盘中,实现对BIOS虚拟磁盘的更新。在本专利技术所述的虚拟磁盘实现方法中,在BIOS中增加EVD模块具体包括按照Option ROM的格式在BIOS中增加EVD模块。本专利技术的有益效果是,用户可方便地将自己重要的数据存放到BIOS虚拟磁盘中, 并可以像访问磁盘一样,对BIOS虚拟磁盘中的数据进行读写,用户可在本专利技术提供的BIOS 虚拟磁盘上进行二次开发,利用该虚拟磁盘存放测试工具、注册码、电子标签、微型操作系统、备份还原工具等等。对于要求存储容量不大的应用环境,可以采用本专利技术的方案替代固态存储媒介,节约成本,兼容性好,提高了系统的整体抗振性能。在本专利技术提供的另一种虚拟磁盘实现方法中,用内存做虚拟磁盘,直接对RAM虚拟磁盘进行读写操作,若用户最终需要更新BIOS虚拟磁盘中的内容时,通过调用EVD模块的中断服务程序(INT13h)可实现将用户的数据内容从RAM虚拟磁盘更新至BIOS虚拟磁盘中,兼容性和可移植性更好,减少对BIOS Flash中BIOS Disk区域的擦写次数,提高了 BIOS Flash的使用寿命。此外,由于数据是在RAM Disk中进行读写,不会受到病毒感染,提高了 BIOS虚拟磁盘的安全性。附图说明下面将结合附图及实施例对本专利技术作进一步说明,附图中图1是依据本专利技术一实施例的应用于BIOS的虚拟磁盘实现方法流程示意图;图2是依据本专利技术另一实施例的应用于BIOS的虚拟磁盘实现方法流程示意图;图3是图2中应用于BIOS的虚拟磁盘实现方法的详细流程示意图。具体实施例方式图1是依据本专利技术一实施例的应用于BIOS的虚拟磁盘实现方法100流程示意图。 虚拟磁盘实现方法100包括步骤101,在BIOS中预留连续的存储空间以用作BIOS虚拟磁盘。也就是说,在 BIOS Flash中预留一部分连续的存储空间,确保BIOS自身代码不会用到这部分空间。该连续的存储空间一般预留在BIOS芯片中最开始的一段,如4M的BIOS Flash芯片,可以预留前3M的空间给BIOS虚拟磁盘用,最后IM用于存放BIOS自身代码。BIOS通常是以ROMHole的形式预留连续的存储空间,即在编译BIOS过程中声明一段空间是预留的, 这样在编译时就将之前预留的那部分空出,BIOS代码不会占用这部分空间。下文中将这部分BIOS中预留的连续存储空间称作BIOS虚拟磁盘(BIOS Disk);步骤102,在BIOS中增加EVD (Embedded Virtual Disk,嵌入式虚拟磁盘)模块, 用以支持虚拟磁盘技术。EVD模块是按照Option ROM的格式加入到BIOS中,并经过了压缩,不能直接运行。EVD模块是一个标准的Option ROM, Option ROM的格式在Plug and Play BIOS Specification 中有定义。步骤103,在BIOS上电自检过程中,解压EVD模块于内存中。系统上电,硬件开机上电和硬件复位完毕后首先执行BIOS程序,完成对硬件的初始化工作;在BIOS POST (Power On SelfTest,上电自检)过程中,BIOS首先将EVD模块解压到内存当中;EVD模块解压到内存的位置,根据实际平台上带有Option ROM设备的多少而异,通常在内存位置C0000h-E0000h这段范围内,具体的位置由BIOS代码自身决定,通常先扫描C0000h-E0000h这段内存,找到空闲的位置,并按页对齐进行分配;步骤104,更新磁盘数量;更新BIOS的磁盘中断服务程序入口地址。更新磁盘数量,是通过更改BIOS Data Area内存区域中对应的磁盘数量标记位, 比如EVD模块将BIOS虚拟磁盘虚拟成软盘,则通过更改BDA 410h内存位置的内容,来增加磁盘数量。增加磁盘数量的目的是告知BIOS这个BIOS Disk设备是个磁盘设备,这样,BIOS 会为BIOS Disk建立一个对应的中断服务接口,这个中断服务接口就是EVD模块的INT13h 中断服务接口,相当于注册BIOS Disk设备,提供访问BIOS Disk这个存储设备的接口服务。更新BIOS中断服务程序INT13h的入口,使其指向EVD模块的中断服务程序入口地址,即注册EVD模块的中断服务程序(INT13h),这样依据BBS (BIOS Boot Specificat本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:陈志列修惠文
申请(专利权)人:研祥智能科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术