程序代码执行方法及系统及固件更新方法

文档序号:6558472阅读:210来源:国知局

专利名称::程序代码执行方法及系统及固件更新方法
技术领域
:本发明涉及一种程序代码执行的方法及系统,特别地涉及一种可自动切换并可执行不同操作系统间的程序代码以及固件更新(firmwareupdate)方法。
背景技术
:目前的处理装置如个人计算机中普遍使用视窗(Windows)操作系统作为其引导操作系统。视窗操作系统的视窗界面提供了友善的使用者操作界面,使得使用者可以利用视窗操作系统兼容的程序代码,来执行多项的功能,例如文本编辑、影像处理、媒体播放等等。然而,对于一些不能在目前操作系统执行的程序代码,通常需要使用者手动地切换到与其对应的操作系统下才能执行。举例来说,一般的固件更新如基本输入输出系统(BasicInput-OutputSystem,以下称为BIOS)更新必须在磁盘操作系统(diskoperationsystem,以下称为DOS)下才能完成。因此,使用者必须从Windows操作系统重新引导(reboot,重新开机),切换到DOS下,再放入更新磁盘或光盘,才能执行BIOS更新动作。等到执行完成后,还要再手动重新引导,才能回到原Windows操作系统。这使得使用上非常不方便而且也增加使用上产生错误的机会。因此,需要一个有效的程序代码执行方法,使得使用者可轻易地完成不同操作系统下的程序代码执行动作。
发明内容有鉴于此,本发明的目的之一在于提供一种程序代码执行方法及系统,使得使用者可轻易地完成不同操作系统下的程序代码执行动作。基于上述目的,本发明提供一种程序代码执行方法,适用于具有主引导记录的处理装置,其中主引导记录指向第一操作系统的第一加载模块,使处理装置可由第一操作系统启动,此方法包括下列步骤建立虚拟磁盘驱动器,其包括第二加载模块、至少一段固件更新程序代码以及备份记录,并且第一加载模块是第二操作系统的第三加载模块;修改主引导记录,使其指向虚拟磁盘驱动器;重新引导;重新依据主引导记录,执行虚拟磁盘驱动器中的第二加载模块,使处理装置在第二操作系统启动;将主引导记录重新指向第一加载模块;执行虚拟磁盘驱动器中的固件更新程序代码;重新引导;以及依据主引导记录,使处理装置在第一操作系统启动。其中,在修改主引导记录使其指向虚拟磁盘驱动器的步骤之前还包括以下步骤存储主引导记录,并在处理装置在第二操作系统启动后,利用储存的主引导记录,将主引导记录重新指向第一加载模块。本发明还提供一种程序代码执行系统,适用于具有主引导记录的处理装置,其包括至少一个磁盘,该磁盘包括至少一个第一磁盘位置和一个第二磁盘位置,该程序代码执行系统包括至少一个虚拟磁盘驱动器,其设置于第二磁盘位置,且具有加载模块、至少一段程序代码,以及备份记录。加载模块为第二操作系统加载模块,备份记录则用于储存主引导记录。其中,虚拟磁盘驱动器可使处理装置重新引导至第二操作系统,并且可在虚拟磁盘驱动器执行完成之后,使处理装置在再次重新引导后,返回第一操作系统。本发明还提供一种固件更新方法,适用于具有主引导记录的处理装置,其中主引导记录指向第一操作系统的加载模块,使该处理装置可在第一操作系统启动,此固件更新方法包括下列步骤建立虚拟磁盘驱动器,其包括第一加载模块、至少一段固件更新程序代码以及备份记录,其中第一加载模块为第二操作系统的加载模块;储存主引导记录在虚拟磁盘驱动器的备份记录中,并修改主引导记录指向虚拟磁盘驱动器位置;第一次重新引导,跳至虚拟磁盘驱动器执行,并依据虚拟磁盘驱动器的第一加载模块,使处理装置以第二操作系统启动;利用虚拟磁盘驱动器中的备份记录将主引导记录还原,指向第一操作系统的加载模块;执行虚拟磁盘驱动器中的固件更新程序代码;以及利用主引导记录指向的第一操作系统的加载模块,第二次重新启动回到第一操作系统。为使本发明的上述和其它目的、特征、和优点能更明显易懂,下文特举出优选实施例,并配合附图,作详细说明如下。图1示出了现有技术的开机流程的示意图。图2示出了现有技术的主引导记录的示意图。图3A示出了根据本发明实施例的处理装置示意图。图3B示出了磁盘空间示意图。图3C示出了根据本发明实施例的虚拟磁盘驱动器示意图。图4示出了根据本发明实施例的软件执行方法流程。图5示出了根据本发明实施例的固件更新方法流程。具体实施例方式图1示出了现有技术的处理装置开机流程示意图100。首先,开机时电源供应器启动(步骤S110)。接着,处理装置中的中央处理器(CPU)开始执行BIOS测试(步骤S120),而后执行开机自我测试(poweronselftest,POST)(步骤S130)。开机自我测试完成后,BIOS将根据处理装置的设定顺序搜寻各个磁盘,读入主引导记录(masterbootrecord,MBR)(步骤S140)。主引导记录为磁盘中最重要的引导扇区,通常位于磁盘的磁盘空间起始位置。举例来说,主引导记录位于磁盘的第0轨。图2示出了现有技术的主引导记录200的示意图。主引导记录200中包括了一个主引导程序(masterbootprogram)210以及磁盘分割表(partitiontable)220,主引导程序210中所存放的操作系统加载模块(operationsystemloader),是用来告诉处理装置在启动之后要加载哪个操作系统,和到哪里加载。如此当系统顺利通过BIOS之后就会加载主引导记录指定的加载模块(步骤S150)。最后,启动对应上述加载模块的操作系统,完成引导动作(步骤S160)。因此,若要启动不同操作系统,必须加载对应的操作系统加载模块。图3A示出一个根据本发明实施例之处理装置300。处理装置300中至少包括中央处理器(CPU)310、内存单元320、磁盘330、总线(bus)340以及BIOS芯片350。处理装置300中的其它单元例如影像控制单元、音效控制单元(未显示在图中)的运作非本发明的重点,在此省略。其中,中央处理器(CPU)310、内存单元320、磁盘330以及BIOS芯片350通过总线340彼此耦接在一起。其中,磁盘330可以是硬盘。磁盘330包括具有多个磁盘位置的磁盘空间332。举例来说,上述磁盘位置可表示为磁盘的第几个磁道。图3B示出磁盘空间示意图。如图所示,第0个磁盘位置包括主引导记录M,第X个磁盘位置包括操作系统的加载模块,而第Y个磁盘位置则包括一个虚拟磁盘驱动器。图3C示出根据本发明实施例的虚拟磁盘驱动器V的示意图。虚拟磁盘驱动器V中至少包括了操作系统加载模块334、程序代码336以及备份记录338。操作系统加载模块334可使处理装置300在指定的操作系统启动,使处理装置300可切换到不同操作系统下运作。举例来说,操作系统加载模块334可以是DOS或Windows操作系统的加载模块,使处理装置300可分别在DOS或Windows操作系统启动。程序代码336可为BIOS更新程序代码、固件更新程序代码或任何应用程序代码。备份记录338用来备份主引导记录的所有数据,以便将修改的主引导记录还原成原来的设定状态。图4示出根据本发明实施例的软件执行方法的流程400。首先,如步骤S410,首先在磁盘位置中建立虚拟磁盘驱动器。此虚拟磁盘驱动器中至少包括了操作系统加载模块、程序代码以及备份记录,如图3C所示。接着,如步骤S420,储存目前主引导记录在此虚拟磁盘驱动器的备份记录中,并修改主引导记录指向虚拟磁盘驱动器。接着,使处理装置自动重新引导。此时主引导记录已修改,因此重新引导后,处理装置将根据主引导记录,跳至虚拟磁盘驱动器位置执行(步骤S430),并根据虚拟磁盘驱动器所指定的操作系统加载模块,加载指定的操作系统,如步骤S440。接着,进入指定的操作系统后,如步骤S450,利用虚拟磁盘驱动器中的备份记录将主引导记录还原成原来的设定状态,使其指向原操作系统的加载模块。此可确保当程序执行失败造成系统死机时,依旧可于下次重新开机后,启动于原操作系统。然后,如步骤S460,执行虚拟磁盘驱动器中所存放的程序代码。最后,当所有程序代码执行完成后,再次重新引导,由于此时主引导记录已被还原,因此重新引导后,处理装置将根据主引导记录指向的操作系统加载模块,重新启动回到原操作系统,如步骤S470所示。此外,本发明还包括提供使用者界面,用于指定并执行上述程序代码。同时也可在此使用者界面中显示提示信息,令使用者了解程序代码执行的目的、执行的流程以及注意事项,避免使用者因不当操作而产生不必要的风险。另外,也可利用一般的转文件程序,将软盘磁盘或光盘片的数据转换成映像文件(imagefile)放到虚拟装置中,再利用转文件程序来执行。根据本发明的方法,使用者只需在原操作系统,利用使用者界面来简单设定,接着,处理装置就可以自动完成需要在不同操作系统间切换执行的程序代码,再回到原操作系统,而不需额外的软盘磁盘或光盘片及繁复的操作。此外,由于无需更改扇区分割,因此可适用于各种操作系统平台,例如WindowsNT、Linux。图5示出一个根据本发明实施例的固件更新方法的流程500,用于说明如何利用本发明实现从Windows操作系统下完成DOS下的固件更新流程。首先,如步骤S510,处理装置300处于待机状态,此时主引导记录M指向Windows操作系统的加载模块W。接着,如步骤S520,开启使用者更新界面,指定欲执行的固件更新动作。接着,如步骤S530,在磁盘位置Y上建立虚拟磁盘驱动器V,此虚拟磁盘驱动器V中包括了DOS加载模块D、固件更新程序代码C以及备份记录BR。接着,如步骤S540,储存目前的主引导记录在虚拟磁盘驱动器V的备份记录BR中,并修改主引导记录指向虚拟磁盘驱动器的磁盘位置,即主引导记录指向磁盘位置Y。接着,第一次重新引导,跳至虚拟磁盘驱动器V执行(步骤S550),并根据虚拟磁盘驱动器V的DOS加载模块D,使处理装置启动于DOS下,如步骤S560。接着,如步骤S570,利用虚拟磁盘驱动器V中的备份记录BR将主引导记录M还原成原来的设定,指向Windows系统的加载模块W。然后,如步骤S580,执行虚拟磁盘驱动器V中的固件更新程序代码C。最后,当固件更新程序代码C执行完成后,再次重新引导,利用主引导记录M指向的Windows操作系统加载模块W,重新启动回到Windows操作系统,如步骤S590。通过本发明的固件更新方法,使用者只需于Windows操作系统下,利用使用者界面来简单设定,接着,处理装置就可以自动完成在DOS下执行的固件更新程序代码,再回到原Windows操作系统,而不需额外的软盘磁盘及繁复的操作。此外,不同厂商所提供的固件更新程序代码也都可被执行,没有兼容性的问题。因此,可向使用者提供一个安全且稳定的固件更新方法。上述说明提供数种不同实施例或应用本发明的不同特性的实施例。实例中的特定装置以及流程用于帮助阐释本发明的主要精神及目的,当然本发明不限于此。因此,虽然本发明已以优选实施例披露如上,然而其并非用以限定本发明,任何本领域的技术人员,在不脱离本发明的精神和范围内,可做些许更动与润饰,因此本发明的保护范围当以权利要求所界定的为准。权利要求1.一种固件更新方法,适用于具有主引导记录的处理装置,其中所述主引导记录指向第一操作系统的第一加载模块,使该处理装置可在该第一操作系统启动,该固件更新方法包括下列步骤建立虚拟磁盘驱动器,其包括第二加载模块、至少一段固件更新程序代码以及备份记录,其中该第一加载模块为第二操作系统的第三加载模块;储存该主引导记录在该虚拟磁盘驱动器的所述备份记录中,并修改该主引导记录指向所述虚拟磁盘驱动器位置;重新引导,跳至所述虚拟磁盘驱动器位置执行;根据所述虚拟磁盘驱动器的所述第二加载模块,使所述处理装置在所述第二操作系统启动;利用所述备份记录将所述主引导记录还原,使其指向所述第一加载模块;执行所述虚拟磁盘驱动器中的所述固件更新程序代码;以及重新引导,根据所述主引导记录指向的所述第一加载模块,使所述处理装置返回该第一操作系统。2.根据权利要求1所述的固件更新方法,其中所述第一操作系统与所述第二操作系统为不同位的操作系统。3.根据权利要求2所述的固件更新方法,其中所述第一操作系统为视窗操作系统。4.根据权利要求2所述的固件更新方法,其中所述第二操作系统为DOS。5.根据权利要求1所述的固件更新方法,其中所述固件更新程序代码为基本输入输出系统更新程序代码。6.根据权利要求5所述的固件更新方法,其中该固件更新程序代码为映像档案。7.一种程序代码执行方法,适用于具有主引导记录的处理装置,其中该主引导记录指向第一操作系统的第一加载模块,使所述处理装置可在所述第一操作系统启动,所述程序代码执行方法包括下列步骤建立虚拟磁盘驱动器,其包括第二加载模块、至少一段程序代码以及备份记录,并且所述第二加载模块为第二操作系统的第三加载模块;修改所述主引导记录,使其指向所述虚拟磁盘驱动器;重新引导;重新根据所述主引导记录,执行所述虚拟磁盘驱动器中的所述第二加载模块,使所述处理装置在所述第二操作系统启动;将所述主引导记录重新指向所述第一加载模块;执行所述虚拟磁盘驱动器中的所述程序代码;重新引导;以及根据所述主引导记录,使所述处理装置在所述第一操作系统启动。8.根据权利要求7所述的程序代码执行方法,其中在所述修改所述主引导记录,使其指向所述虚拟磁盘驱动器的步骤之前还包括以下步骤储存所述主引导记录,并在所述处理装置在所述第二操作系统启动后,利用储存的所述主引导记录,将所述主引导记录重新指向所述第一加载模块。9.根据权利要求7所述的程序代码执行方法,其中所述第一操作系统与所述第二操作系统为不同位的操作系统。10.根据权利要求7所述的程序代码执行方法,其中所述固件更新程序代码为映像文件。11.根据权利要求7所述的程序代码执行方法,其中所述虚拟磁盘驱动器还包括第一加载模块、至少一段程序代码以及备份记录,其中所述第一加载模块为所述第二操作系统加载模块。12.一种程序代码执行系统,适用于具有主引导记录的处理装置,所述处理装置包括至少一个磁盘,所述磁盘包括至少第一磁盘位置与第二磁盘位置,所述程序代码执行系统包括至少一个虚拟磁盘驱动器,其设置在所述第二磁盘位置,并且包括加载模块,其为第二操作系统加载模块;至少一段程序代码;以及备份记录,用以储存所述主引导记录,其中,所述虚拟磁盘驱动器可使所述处理装置重新引导至所述第二操作系统,并且可在所述虚拟磁盘驱动器执行完成后,使所述处理装置再次重新引导后,返回所述第一操作系统。13.根据权利要求12所述的程序代码执行系统,其中所述第一操作系统与所述第二操作系统为不同位的操作系统。14.根据权利要求12所述的程序代码执行系统,其中还包括使用者界面,用于指定并执行所述程序代码。15.根据权利要求12所述的程序代码执行系统,其中所述程序代码为更新程序代码。全文摘要本发明提供一种程序代码执行方法,适用于具有主引导记录的处理装置,其中主引导记录指向第一操作系统的第一加载模块,使处理装置可在第一操作系统启动,此执行方法包括下列步骤在磁盘空间中,建立虚拟磁盘驱动器;储存主引导记录于虚拟磁盘驱动器中,并修改主引导记录,使其指向虚拟磁盘驱动器;第一次重新引导,跳至虚拟磁盘驱动器执行;虚拟磁盘驱动器使处理装置在第二操作系统启动;利用虚拟磁盘驱动器,还原主引导记录,使其指向第一操作系统的加载模块;执行虚拟磁盘驱动器中的至少一段程序代码;以及第二次重新引导,返回第一操作系统。文档编号G06F9/445GK101075194SQ20061007836公开日2007年11月21日申请日期2006年5月15日优先权日2006年5月15日发明者林君学申请人:明基电通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1