一种自动改变计算机启动顺序的方法

文档序号:6636111阅读:171来源:国知局
专利名称:一种自动改变计算机启动顺序的方法
技术领域
本发明涉及一种自动改变计算机启动顺序的方法,属于通用数字计算机的初始控制或配置控制的技术领域。
背景技术
目前,软件安装技术已经得到了非常广泛的应用,如网络安装操作系统在很大程度上解决了非常繁琐的操作系统安装过程,典型的应用有微软的远程安装服务(RIS)技术首先在服务器端设置目标操作系统,再在安装过程中使用者通过交互式操作,就可以安装具有定制信息的本地操作系统。除了操作系统外,其他应用软件的安装也可以通过网络进行,这些技术的出现,大大地提高了计算机的易用性。但是,在这些现有的安装过程中,一个很难克服的问题是需要使用者的人工参与和交互。
以网络安装操作系统为例,其操作过程往往是这样的安装系统提供给用户一张软盘,用户利用该软盘启动和联接服务器,并在用户对系统的若干问题作出应答之后,安装程序就从网络服务器下载必要的安装程序,然后告诉用户需要将软盘拔出来。接着,系统又重新启动,并将启动控制权交给网络服务器或本地硬盘。如果系统为固定启动程序,必须完成一次人工拔出软盘的操作,不能够实现无人操作的全自动安装。如果要真正实现全自动安装,必须在需要更换启动设备前,用程序改变计算机的基本输入输出系统BIOS(Basic Inputoutput system)的启动控制优先级,不幸的是BIOS控制启动设备优先级的方式是非标准的,各个BIOS和主板的制造厂商都是采用自己的独特控制方式,也没有通用的商业软件实现无人值守的网络系统安装等方面的应用。正是由于这些问题的存在,限制了许多全自动的软件安装过程的实现。
熟悉计算机的人都知道,可以在基本输入输出系统BIOS的设置中手工改变启动顺序。以Award公司研制的BIOS为例,开机时,按Del键进入BIOS设置界面,使用者在“Advance feature SETUP”选项中将First Boot Device修改成所希望设置的启动设备,重新启动后,BIOS就将控制权交给该新设定的启动设备。因此,如果要想实现计算机启动过程的自动化,必须通过程序运行,自动改变启动设备。
为了实现这一目的,这里先介绍一下BIOS控制启动顺序的原理。为了在关机后BIOS仍然知道下次开机的启动设备,必须让这种信息保存在非易失性存储器中,对于PC机而言,BIOS控制启动顺序的字节存储在CMOS RAM中。该CMOS RAM存储器设置在主板芯片组中,依靠电池供电;在关机后,其中存储的信息不会丢失。BIOS在启动时,查看该字节的数值指定哪个启动设备,并在自检结束后,从该设备引导操作系统。从原理上讲,如果用程序改变CMOSRAM中启动顺序的控制字节,同样可以达到改变启动顺序的功能。但是在现有的计算机设计中,由于各主板厂家对控制字节的定义是不相同的,无法直接通过程序实现通用的改变启动顺序的功能。这是因为有三方面的原因1、控制字节在CMOS RAM中存放的地址不同虽然Award BIOS对CMOSRAM各字节有原始定义,但是各主板厂家在获得其源代码后,往往会根据自己的实际需要进行调整,各个厂家没有统一规范,甚至同一厂家生产的不同型号的主板CMOS RAM定义都不一定相同。另外,除了Award公司开发的BIOS以外,还有其他厂家研制的BIOS,它们之间的定义更是各不相同。
2、控制字节定义的启动设备不同由于各主板的技术特点和功能不相同,它们支持的启动设备也不相同;此外,外部设备的发展日新月异,各主板厂家的技术水平各不相同,对新的启动设备的采纳和支持能力也各不相同,因此在启动字节的内容定义上各厂家也是不相同的。
3、CMOS RAM纠错控制方式不同因为CMOS RAM中的内容对于BIOS非常重要,为了防止意外更改,BIOS对CMOS RAM内容进行校验和的算法保护,即对CMOS中的某些字节计算校验和,并保存在CMOS RAM中。各主板厂家规定的计算校验和的CMOS RAM区域各不相同,除非是BIOS的研发人员,否则其他厂家根本无法用程序直接改变CMOS RAM中的某个字节。

发明内容
本发明的目的是提供一种自动改变计算机启动顺序的方法,能够实现自动更改计算机的启动设备,从而为实现操作系统和其他应用软件的网络安装提供一种有效的技术手段。
本发明的目的是这样实现的一种自动改变计算机启动顺序的方法,其特征在于规定统一的BIOS功能调用,通过功能调用来自动改变计算机的启动顺序;至少包括下列步骤(a)定义一个统一的BIOS功能调用子程序模块组;(b)将步骤(a)中的BIOS功能调用子程序模块组挂在一个中断接口上,也可以将其设置在BIOS与应用程序关联的其它接口地址上。
所述的步骤(a)中BIOS功能调用子程序模块组至少包括有三个子程序模块子程序模块一获得版本及安装检查,子程序模块二读取当前设备启动顺序,子程序模块三设置设备启动顺序。
所述的步骤(b)中推荐将该BIOS功能调用子程序模块组挂在一个口地址为Int 15H的中断接口上;如果挂在其它中断或其它接口上,应使用该BIOS接口的公开资料上没有的子功能号进行定义,以避免发生冲突。
本发明是一种自动改变计算机启动顺序的方法,也是一项对现有的计算机系统在设计方面存在欠缺进行弥补的技术措施。该方法的实施,使得诸如安装操作系统和应用软件的操作可望实现完全无人化参与,这将对减少计算机软件维护费用,提高计算机的易用性,降低对计算机使用和维护人员的技术要求都带来一系列的好处,并由此产生相当可观的经济效益。可以展望,本发明的方法一旦获得广泛采用,将会成为业界遵循的一项技术标准;如果将其作为一项计算机系统的设计技术,再和其他技术相结合,可以使得诸如自动切换操作系统,无人值守软件安装及计算机状态等以前很难实现自动化的应用,都有可能实现突破。总之,本发明通过制定统一的BIOS规格,在计算机的产品级上实现功能统一,使该计算机产品具有方便应用的特色,能够提高计算机产品的竞争力,并有可能对计算机的应用带来较大的有益变化。


图1是本发明在启动顺序控制CMOS RAM地址的设置规定示意图。
图2是本发明的一种实现自动改变计算机启动顺序的程序流程图。
具体实施例方式
本发明是一种通过自动更改计算机的启动设备来改变其启动顺序的方法,从而为实现操作系统和其他应用软件的网络安装提供一种有效的技术手段。本发明提供了三种不同的实现方法,下面分别结合具体实施例详细说明之。
本发明的第一种方法是针对由于主板厂家的规定不同,导致无法直接用程序改变CMOS RAM启动控制字节的现状,统一设置或规定CMOS RAM中控制启动顺序的字节,以实现自动改变计算机启动顺序。其中统一规定控制启动字节的内容包括有控制启动顺序字节的存储地址,设备编号,校验和计算范围和校验和存放地址。图1所示为该第一种方法的一个实施例。其操作步骤为(1)设置CMOS RAM中控制启动顺序字节的存储地址为66H。67H,并对各个启动设备进行编号;

(2)在CMOS RAM中的控制启动顺序的每个字节66H和67H中写入顺序启动的设备编号;(3)设置对控制启动顺序字节66H和67H中存储的数据不计算校验和。
参见图1,以设定软驱和网卡为第一和第二启动设备为例,说明利用该方法实现改变启动顺序的步骤1、取出CMOS RAM中原先66H、67H字节的数值,并保存之;2、将66H字节中第一启动设备位(Bit0~bit3)设为软驱,即写入0000B;3、将66H字节中第二启动设备位(Bit4~bit7)设为网卡,即写入1101B;4、将原先67H字节的值写回67H,或者不操作67H;5、用程序重新启动计算机。
使用该方法时,需要注意的是对于标准CMOS RAM数据区的程序访问方法有两种(1)在计算机I/O地址70H口设定需要访问的CMOS RAM偏移地址。(2)通过I/O地址71H口,对指定的CMOS RAM进行读写访问。另外,上述举例说明的定义的控制字节地址、设备编号和校验和的控制形式都是为了便于描述,也可以将控制字节设置成其他地址,有关设备编号,以及校验和位置和区域等参数的设置,也是如此。它们的数据不同不妨碍该方法的适用性。
本发明的第二种方法是通过保存/恢复CMOS镜像来自动改变计算机启动顺序的。举例而言,如果想在软盘启动与硬盘启动之间进行切换。事先需要通过手工方式将BIOS设置为目标启动设备,将软盘设置为第一启动设备。设置完成后,重新启动计算机,用获取CMOS镜像的read_cmos程序读取CMOSRAM的全部内容,并保存为镜像文件floppy.dat。接着,在BIOS设置中手工设置硬盘为第一启动设备,同样保存为镜像文件hdd.dat。如果安装时需要软盘启动,则用恢复CMOS镜像的write_cmos程序将软盘启动的镜像文件floppy.dat恢复到CMOS RAM中去;如果需要硬盘启动,则将硬盘启动的镜像文件hdd.dat恢复到CMOS RAM中去。该第二种方法的优点是简单易行,且方法通用,不需要对BIOS提出特殊要求,通过一次性的手工初始操作,就可在以后的改变启动设备过程中实现程序自动设置,BIOS自己会根据手工的选择更改CMOS启动控制字节,同时调整校验和。其缺点是需要用户参与获得初始的启动CMOS RAM镜像文件,且在恢复CMOS镜像文件的同时会将用户自行设置的CMOS破坏掉,因此,该方法不太适合商业化产品。
下面举例说明获得CMOS镜像文件read_cmos程序的实现步骤A、通过CMOS RAM标准访问端口70H和71H读取CMOS中偏移10字节到128字节内的所有寄存器数值,并写入到内存缓冲区;B、将内存缓冲区内容写入指定的启动设备的CMOS RAM镜像文件中。
该方法中恢复CMOS RAM镜像的程序write_cmos的实现步骤是C、将指定的启动设备的CMOS RAM镜像文件读到内存缓冲区中;D、通过标准的CMOS RAM访问端口70H和71H,将内存缓冲区的内容写入到CMOS中偏移10字节到128字节的区间。
使用该方法编写程序时,需要注意的是(1)应该跳过CMOS RAM的前10个字节,因为CMOS RAM中前10个字节存放的是包括系统时间、日期等的系统实时钟(RTC)数据,如果全部做成镜像,恢复时就会将系统时间改为保存时的时间。而且,各种BIOS对该10个字节都不计算校验和。(2)CMOSRAM共有256字节,但是只有前128字节能够通过标准的CMOS访问端口进行操作,被称为标准CMOS数据区;后128字节的访问方法与芯片组特性有关,不同的芯片组访问方法不同。因为控制启动顺序的字节存在于标准CMOS数据区,该数据区与后128字节用不同的校验和控制。因此保存和恢复前128字节(确切说128-10=118个字节)不会造成CMOS RAM的校验出错。
下面再以用软驱启动,登录服务器,并从服务器下载操作系统安装程序进行本地安装为例,说明第二种方法的应用过程首先是准备阶段的操作1、进入BIOS设置程序,将软驱设置为第一启动设备。保存后重新启动。
2、运行read_cmos程序生成floppy.dat镜像文件。
3、进入BIOS设置程序,将硬盘设置为第一启动设备。保存后重新启动。
4、运行read_cmos程序生成hdd.dat镜像文件。
接着是自动改变启动设备的应用阶段1、插入系统引导软盘,该软盘带有网卡驱动和登录服务器程序。
2、调用write_cmos程序,将floppy.dat镜像文件写到CMOS RAM中。
3、调用中断口Int19的功能重新启动计算机。
4、系统从软盘启动,登陆服务器,并从服务器下载操作系统安装程序到本地硬盘。
5、使用write_cmos程序,将hdd.dat镜像文件写到CMOS RAM中6、依靠操作系统的安装功能自动安装操作系统,在该过程中,系统会自动重新启动,重新启动后将从硬盘启动,继续安装和运行操作系统。
本发明的第三种方法是规定BIOS中的CMOS RAM内容,从而提供启动顺序设置功能调用来改变计算机的启动顺序。因为直接规定CMOS RAM的定义会改变现有的CMOS RAM规划,本发明的该方法是采取一种间接的控制方式,即规定统一的BIOS功能调用子程序,再通过功能调用子程序来改变启动顺序。其中各个功能调用子程序的实现细节,包括如何处理控制字节的偏移地址、设备编号、校验和方式等都由各个主板厂家自行完成,但是对应用程序的接口和实现的功能是相同的。其具体做法是定义一个新的BIOS功能调用子程序模块组,并挂在一个BIOS接口上,例如Int15H;也可以将其设置在BIOS与应用程序关联的其它接口的地址上;但是,必须要找到该接口公开资料上没有的子功能序号进行定义。这里的BIOS功能调用子程序模块组至少包括有三个子程序模块子功能调用程序模块一获得版本及安装检查。该调用程序模块提供安装检查功能,确定当前的BIOS是否支持设备启动顺序功能调用组。同时要求主板厂家如果BIOS不支持该功能调用,不能出现死机或系统重启等现象。
子功能调用程序模块二读取当前设备启动顺序。该调用程序模块读取当前第一、第二和第三启动设备的编号。其中设备编号的形式可以采用第一种实现方法中的定义形式。
子功能调用程序模块三设置设备启动顺序。该调用程序模块设置当前的第一、第二和第三启动设备,其中的设备是依据设备编号确定的。
参见图2所示的本发明第三种自动改变计算机启动顺序实现方法的流程图。图中比较详细地介绍了该方法的实现过程,这里就不再赘述。
本发明的第三种方法已经由申请人进行了试验实施,取得了良好的效果,达到预先的发明目的。
权利要求
1.一种自动改变计算机启动顺序的方法,其特征在于规定统一的BIOS功能调用,通过功能调用来自动改变计算机的启动顺序;至少包括下列步骤(a)定义一个统一的BIOS功能调用子程序模块组;(b)将步骤(a)中的BIOS功能调用子程序模块组挂在一个中断接口上,或者将其设置在BIOS与应用程序关联的其它接口地址上。
2.根据权利要求1所述的自动改变计算机启动顺序的方法,其特征在于所述的步骤(a)中BIOS功能调用子程序模块组至少包括有三个子程序模块子程序模块一获得版本及安装检查,子程序模块二读取当前设备启动顺序,子程序模块三设置设备启动顺序。
3.根据权利要求1所述的自动改变计算机启动顺序的方法,其特征在于所述的步骤(b)中推荐将该BIOS功能调用子程序模块组挂在一个口地址为Int15H的中断接口上;如果挂在其它中断或其它BIOS接口上,应使用该接口的公开资料上没有的子功能号进行定义,以避免发生冲突。
全文摘要
一种自动改变计算机启动顺序的方法,其是通过自动更改计算机的启动设备来改变其启动顺序,为实现操作系统和其他应用软件的网络安装提供了有效技术手段。本发明公开了一种间接控制的方法规定BIOS启动顺序设置功能调用来改变计算机的启动顺序,即规定统一的BIOS功能调用子程序,再通过功能调用子程序来改变启动顺序。其中各个功能调用子程序的实现细节由各个主板厂家自行完成,但对应用程序的接口和实现的功能是相同的。本发明能够使诸如安装操作系统和应用软件的操作可望实现完全无人化参与,这将对减少计算机软件维护费用,提高计算机的易用性,降低对计算机使用和维护人员的技术要求带来一系列的好处,并由此产生可观的经济效益。
文档编号G06F15/16GK1744043SQ200510090800
公开日2006年3月8日 申请日期2002年12月19日 优先权日2002年12月19日
发明者龚仲涛, 卢旭, 李翔 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1