启动装载及安装方法及其计算系统与流程

文档序号:13875985阅读:186来源:国知局
启动装载及安装方法及其计算系统与流程

本发明是关于一种uefi固件的方法及其计算系统;具体而言,本发明是关于一种方法及计算系统,用于在uefi架构下以单一个映像档执行系统的安装及启动装载程序。



背景技术:

传统的计算系统可加载并启动一个操作系统。通常,操作系统的加载启动是由一低阶层的指令码负责处理,其中此低阶层的指令码是用于当作电脑系统的硬件构件与操作软件(及其他于电脑系统上执行的高阶层软件)之间桥梁或中介。此低阶层指令码常被称为基本输入输出系统固件(basicinput/outputsystemfirmware、亦即biosfirmware),并且可提供一组软件程序用于使得高阶层软件可与电脑系统的硬体构件产生互动。每当电脑系统开机或被启动时,此固件可执行用于进行开机自检(power-onselftest、亦即post)的程序,由此在将控制权交给操作系统前可检测并发动或初始化电脑系统中的所有硬体构件。这些硬体构件可包含系统主记忆体、硬碟及键盘等等的硬体构件。

然而,随着技术的进展以及许多目前的设备(例如周边的设备)是朝向无线的技术领域发展,原本最初是设计给国际商用机器公司的个人电脑的传统bios标准,此传统bios标准已成为基于此传统bios标准的引导固件(bootupfirmware)可控制硬件的限制点,随后甚至会导致限制操作系统可控制硬件的范围。随着新的硬件和软件技术正在得到开发,此限制点会成为软硬件交互的一个主要障碍。因此,bios固件的新标准已被提出并通过许多主要行业领导广泛采用。这新的标准被称为统一可扩展固件接口(unifiedextensiblefirmwareinterface、简称为uefi)。

随着采用uefi标准,bios企业能够开始生产uefi固件计算系统,同时生产操作系统的公司能够通过生产符合uefi标准的操作系统来取得到uefi固件所提供的服务优势。当制造商或公司欲想将一特定的计算系统或装置的固件或操作系统进行更新及/或修改时,传统的方式包含一个漫长的过程,其过程包含计算装置的固件及/或操作系统被修补。在其他案例中,上述程序会需要使用者俱备技术知识才能协助进行新修补档的安装。这是一个耗时且复杂的过程。然而,在现代时刻,当具有装载资信处理/计算及联网功能的各种不同物件的数量倍数增加时,以传统方式更新及/或补修所有装置上的固件及/或操作系统将会是个几乎不可能或不实际的任务。

因此,以上述情况而言,在联网装置的固件及操作系统的更新及安装程序过程中,势必需要有方法可降低安装的复杂度并且减轻用户的烦恼。



技术实现要素:

本创作的一个目的在于提供一种计算系统及其方法,其具有可支援根据单一个映像档安装及启动操作系统的uefi固件架构。

根据本创作的一个方面,计算系统包括处理器单元、储存器装置以及记忆体。储存器装置储存映像档,其包含加载器组件、虚拟磁碟组件以及操作系统核心组件。记忆体储存指令,此指令可被处理器单元执行;指令被执行时会使得计算系统辨识出加载器组件、装载加载器组件为一加载器至记忆体中的第一位置、以及执行加载器组件以取得并分别装载虚拟磁碟组件及操作系统核心组件至记忆体中的第二位置及第三位置。

于一实施例中,该映像档是从一远端来源接收并且是储存至该储存装置中的一操作系统分区。

于一实施例中,储存于该记忆体并被该处理器单元执行以辨识并装载该加载器组件至该记忆体中的指令,是位于该计算系统的一固件中的一efi启动模块。

于一实施例中,该efi启动模块包含一预设设定,该预设设定指向至该映像档中对应该加载器组件的一位置。

于一实施例中,该加载器组件是以一加载器装载至该记忆体中,并且在该操作系统核心组件及该虚拟磁碟组件被取得并装载至该记忆体中前该装载器验证该映像档的一签章组件。

根据本创作的另一个方面,提供一种计算机实现的方法,包含执行计算机的操作,其中储存映像档于储存装置中,映像档包含加载器组件、虚拟磁碟组件以及操作系统核心组件;辨识出加载器组件;将加载器组件装载至记忆体中的第一位置;以及执行装载在记忆体中的加载器组件以取得并分别装载虚拟磁碟组件及操作系统核心组件至记忆体中的第二位置及第三位置。

于一实施例中,储存该映像档至该储存装置的步骤进一步包含:从一远端来源接收该映像档;以及储存该映像档至该储存装置的一操作系统分区。

于一实施例中,辨识出该加载器组件的步骤进一步包含:根据一预设设定,在该预设设定指定的一位置读取该映像档。

于一实施例中,辨识出该加载器组件的步骤进一步包含:确认该映像档的签章的真实性。

于一实施例中,装载该加载器组件至该记忆体的步骤进一步包含:以一efi启动加载模块从该映像档中取得该加载器组件;以及将该加载器组件解码并以一家载器装载至该记忆体中。

于一实施例中,在取得该操作系统核心组件及该虚拟磁碟组件的步骤后进一步包含:从该映像档取得一文件系统组件;以及经由该虚拟磁碟装载该文件系统至该记忆体中。

于一实施例中,进一步包含:验证系统服务的签章;以及执行通过验证的系统服务。

附图说明

图1为本创作计算系统的一个实施例的示意图;

图2为本创作一个符合uefi标准的计算系统的示意图;

图3为图2的另一个实施例的示意图;

图4为储存装置与记忆空间之间本创作的一个实施例的示意图;

图5为本创作方法的一个流程图的示意图;

图6a至6c为图5的另一个实施例的示意图。

具体实施方式

本发明的实施例提供一种根据单一个映像档可进行固件(firmware)或操作系统(operatingsystem)的安装或更新的方法及计算系统。在下面的详细描述中,会参考到对应的附图,其中通过举例的方式,具体实施例或示例可被详细描述。然而,这些实施方案仅是用于形容或协助说明本发明的范围,因此不应当被解释为对本发明的限制。请参照附图,其中类似标号在不同附图中表示类似的元件,本发明的各方面以及较佳的操作环境的实施例将会如下进行说明。

本文公开一种计算系统和方法,用于根据单一映像档进行固件或操作系统的安装及/或更新。较佳的,计算系统包含(但不限于此)便携式计算机(laptopcomputers)、个人计算机(personalcomputers)、服务器(computerservers)、手持式计算设备(handheldcomputingdevices),例如移动式电话和平板电脑、可佩戴的计算装置(wearablecomputingdevices)以及/或任何具有嵌入式处理能力并且具有联网功能且可归类为物联网(internetofthings,简称为iot)的装置。

图1和以下讨论旨在提供其中可实现本发明的合适的计算环境的简要、概括描述。然而,本领域的技术人员应可体会到本发明也可以以其他合适的计算环境中实现。此外,本领域的技术人员应可理解,本发明也可以与其他计算系统组态/配置,包括可在多处理器系统、基于微处理器的或可编程的消费电子产品、小型计算机、大型计算机等的情况下实施。本发明也可以在分布式计算环境中实施,其中任务(tasks)可经由通过一通信网络连接的远端处理设备执行。

请参照图1,图1为一个示范的计算机架构,可用于实施本文的各种实施例。应当理解,尽管这里所描述的实施例在常规的桌上型计算机或服务器的假设情况下进行讨论,实际上这里所描述的实施例可以与任何类型的计算设备利用。举例而言,任何实体物件(例如任何可构成物联网的装置、车、大楼或其他物件)具有嵌入电子、软件、侦测器以及网络连通功能可能受益本创作的启动架构(bootarchitecture)。图1示出了一个计算系统100,其可操作以基于固件(firmware)发起或启动操作系统的加载引导程序。图1中的方块的目的是用于代表计算机结构的各个功能组件;并非一定会是代表计算机结构的实体元件。因此在不偏离计算机结构的整体感和宗旨的出发点的情况下,所述功能组件可以被组合、分离或除去。

为了提供本文所描述的功能性,计算系统100包括一基板(baseboard)或“主机板”,此基板是一种印刷电路板,其中各种不同的组件或设备可通过系统总线或其他方式的连接通信路径与其连接。在一实施例中,中央处理单元(centralprocessingunit,cpu)102会与芯片组(chipset)104共同操作。中央处理单元102可为一种标准的中央处理器,用于执行计算机运作上所必要的逻辑运算及算术。在此及其他实施例中,中央处理单元102可包括一或多个微处理器(microprocessors)、微控制器(microcontroller)、现场可编程门阵列(fieldprogrammablegatearray,fpga)、复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld)、专用集成电路(applicationspecificintegratedcircuit,asic)及/或任何其它电子计算设备。

芯片组104包括北桥106和南桥108。北桥106提供中央处理单元102与计算系统100的其余部分之间的界面/接口。北桥106亦提供了对一个或多个随机存取存储器(randomaccessmemory,ram)的接口,此些存储器可当作计算系统100的主存储器114,或亦可能对一版载显卡(on-boardgraphicsadapter)112提供接口服务。此外,北桥106还可以通过千兆以太网适配器(gigabitethernetadapter)110提供网络通信功能。千兆以太网适配器110能够经由一网络将计算系统100连接到一个或多个其它计算机。千兆以太网适配器110所能进行连接的范围可以包括例如局域网(localareanetwork,lan)或广域网(wideareanetwork,wan)连接。局域网和广域网联网环境在办公室、企业范围的计算机网络(enterprise-widecomputernetworks)、内联网以及网际网络上出现为常见的场景。北桥106是连接到南桥108。

南桥108是负责控制许多计算系统100的输入/输出功能。具体而言,南桥108可提供一个或多个通用串行总线(universalserialbus,usb)端口116、声音适配器(音效卡)124、以太网控制器134,以及一个或多个通用输入/输出(gpio)引脚118。南桥108还可以提供用于连接周边设备的总线,例如符合bios引导规范(biosbootspecification,bbs)标准的scsi主机总线适配器130。在一实施例中,总线包括周边组件互连(peripheralcomponentinterconnect,pci)总线。南桥108还可以提供一个系统管理总线132,用于管理计算系统100中的各种组件。电源管理电路126和时钟产生电路128也可以在南桥108的操作期间被利用。

南桥108还可被操作以提供一个或多个接口,此些接口可用于将大容量存储设备连接到计算系统100。举例而言,根据一实施例,南桥108包括串行高级技术附件(serialadvancedtechnologyattachment,sata)适配器和一个ata100适配器,其中串行高级技术附件适配器是用于提供一个或多个串行ata端口120,ata100适配器是用于提供一个或多个ata100端口122。串行ata端口120和ata100端口122可以接着是连接到有存储操作系统、应用程序及其他数据的一个或多个大量存储设备。本领域技术人员应已知道的是,一个操作系统是包括可控制一个计算机的运作及资源分配的一组程序。一个应用程序是一种在操作系统软件上(或在其他运行时环境中)运作/运行的软件,其并且会使用计算机的资源来执行用户欲计算系统100欲完成的特定任务。

连接到南桥108和scsi主机总线适配器130以及他们的相关联的计算机可读介质的大容量存储设备为计算系统100提供非易失性存储的功能。尽管此处描述的计算机可读介质是指一个大容量存储设备,诸如硬盘或光碟机(cd-romdrive),本领域技术人员应当能理解计算机可读介质可为任何计算系统100能读取的媒介。举例而言(非限制的),计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术(例如:计算机可读指令、数据结构、程序模块或其它数据等)完成的易失性、非易失性、可移动和不可移动的介质。计算机存储介质包括(但不限于)随机存取存储器(ram)、唯读存储器(rom)、可擦可编程唯读存储器(eprom)、电子可擦可编程唯读存储器(eeprom)、闪存或其他固态存储器技术、光碟(cd-rom)、数字多功能影音光碟(dvd)、高画质数字多功能影音光碟(hd-dvd)、蓝光(blu-ray)或其他光学存储、磁带盒、磁带、磁盘存储或其它磁存储设备,或可以用来存储所需信息并且任何其它计算机可存取的介质。

南桥108也可以提供一个低引脚数(lowpincount,lpc)接口,其可用于连接至一个超输入输出(input/output,i/o)设备138。超输入输出装置138负责提供若干个输入/输出端口,包括一键盘端口、鼠标端口、串行接口、并行端口以及其他类型的输入/输出端口。所述的低引脚数接口或其他接口可被用于连接一个计算机存储介质,例如唯读存储器rom,或例如快闪存储器的非易失性随机存取存储器137(non-volatilerandomaccessmemory,nvram)。所述计算机存储介质可以是用于存储固件136,其包括包含指令和数据的一或多个模块,所述指令和数据可帮助启动计算系统100和帮助计算系统100内的元件之间的信息传递。然而,在其它不同的实施例中,固件136亦可被存储在计算系统100中的任何其他区域中。

固件136可以包括符合uefi规范的程序代码。应当理解的是,除了固件136可包含符合uefi规范的固件以外,也可以增加其它类型及组合的固件。举例而言,固件136可额外或替代性包括一个bios固件和/或其它类型的本领域技术人员已知的固件。以下将会提供有关uefi固件136的操作及运作方式的详细说明,敬请参考附加后续的图。但是应当理解的是,计算系统100可能不会包括图1中所示的所有组件或元件、可能包含图1未显示的其他组件或可利用与图1所示完全不同的架构。

参照图2,有关符合uefi规范的系统并且可应用以提供本文各种不同实施例可执行的操作环境会如下更详细说明。如图2所示,该系统包括一个平台硬件316和操作系统(os)202一个平台固件308可使用一个操作系统加载程序(osloader)302从efi系统区域318中取得操作系统程序码;此操作系统加载程序时常被称为一个引导器、操作系统加载器或引导器。同理,操作系统加载程序302亦可从其他地方取得操作系统程序码,包含从连接的周边设备或从固件135本身。efi系统分区318可能为一种结构上可共享的系统分区。因此,efi系统分区318可定义一个分区及文件/文件系统,其可被设计以允许多个供应商之间进行大容量储存器的安全共享。此外,一个os分区320亦可被使用。

一旦开始了,操作系统加载程序302会继续引导并启动整个操作系统202,例如与linux操作系统相关联的grub标准可能以阶段性的加载/装载操作系统。操作系统加载程序302可使用efi引导服务304来接到其他支援的标准规范,以致使能调查、了解、及初始化各种平台组件及管理它们的操作系统202软件。因此,从其他规格/标准的接口314亦可能存在于系统中。举例而言,高级配置和电源管理接口(advancedconfigurationandpowermanagementinterface,acpi)和系统管理bios(smbios)的规格标准可被支援。

efi引导服务304提供给设备各种接口以及在引导的期间中使用的系统功能。efi运行服务306在启动阶段时可被操作系统加载程序302利用,并且当操作系统202在执行时也会提供服务给操作系统202。例如,运行服务可确保提供操作系统202在正常运作中所需的适当基础平台硬件资源的抽象。通过加载/装载efi驱动程序及efi应用程序影像档及其在被装载后可提供任何efi所定义的运行时服务及引导加载服务,efi可扩展平台固件的功能。当efi固件被初始化后,控制权将会转移至引导加载程序312。

参照图3,图3描述本创作的一种方法或程序,其可使得或促使计算系统无视装载启动efi系统分区318中操作系统码的程序步骤。实际上,在本实施例中,本创作的efi启动加载模块312可先侦测平台硬体316的储存装置操作系统分区320是否有储存一个用于安装新的操作系统的映像档322。

在一个实施例中,映像档322可经由网际网络被接收并储存于操作系统分区320中;其中,当下一次计算系统重新启动时,efi启动加载模块312可执行上述侦测程序来搜寻到储存于操作系统分区320中的映像档322。

在另一个实施例中,计算系统的固件或执行中的操作系统可发起或被促使发起更新的程序,此更新程序可包含连接至网际网络上的一个远端来源并从其中下载映像档322至操作系统分区320中。举例而言,计算系统的供应者或制造商可在远端对计算系统指示进行更新程序。在此状况下,制造商可指示或促使计算系统去下载映像档至操作系统分区320,通过此方式,在下一次重新开机时,计算系统的efi启动加载模块312在进行搜寻操作系统分区320时可侦测得到映像档322。

当efi启动加载模块312发现映像档322在操作系统分区320时,efi启动加载模块312可通过uefi磁碟服务304读取映像档322。如图3及4所示,在本实施例中,映像档322是储存于操作系统分区320(储存装置)并且包含各种不同组件的编码。在一个实施例中,映像档322包含(但不限于此)签章组件325、加载器组件326、操作系统核心组件327、虚拟磁碟组件328以及文件系统组件329。当efi启动加载模块312搜寻并侦测到操作系统分区320中的映像档322时,efi启动加载模块312会使用uefi磁碟服务304来读取并装载加载器组件326至计算系统的记忆体(记忆空间memoryspace),由此可导致计算系统执行加载器组件326中的程序编码。

在本实施例中,加载器组件326是一种efi格式加载器,其程序是经由uefi磁碟服务304以efi启动加载模块312装载至记忆空间中。当加载器的程序/指令在记忆空间中被执行时,加载器的程序会去取得操作系统核心组件327及虚拟磁碟组件328。通过此方式,操作系统核心组件327及虚拟磁碟组件328接着可被装载至记忆空间的不同位置中。举例而言,假设加载器是被装载至记忆空间的一第一位置,操作系统核心组件327及虚拟磁碟组件328则是可能分别会被装载至记忆空间中的一第二位置及一第三位置。

在一个实施例中,虚拟磁碟组件328可包含必要的文件来支援及允许一个真正文件系统(realfilesystem)可被架设在计算系统上。此些必要文件可包含驱动程序、可执行的组件以及任何其他辅助文件。在其他不同实施例中,其他任何数目的自选组件可包含于虚拟磁碟组件328中,例如语言支援文件(languagesupportfiles)。在虚拟磁碟组件328被装载在记忆空间中的情况下,虚拟磁碟组件328可将文件系统329架设在记忆空间中。当记忆空间中的加载器将操作系统核心组件327以操作系统核心(oskernel)装载至记忆空间中后,加载器可促使计算系统执行操作系统核心来启动新的操作系统。

图5为一种根据单一映像档安装新的加载器或操作系统的计算机实现方法的一个实施例。如图5所示,方法400包含步骤410至450。如上所述,映像档322是储存于平台硬体316的储存装置里的操作系统分区320。当计算系统启动或开机时,平台特定固件308的efi启动加载模块312会搜寻操作系统分区320并找到映像档322。其中,efi启动加载模块312会执行步骤420;步骤420包含辨识出映像档322中的加载器组件326。在此点,efi启动加载模块312接着会在步骤420中将加载器组件326装载至记忆体中,并且进行执行被装载至记忆体中的加载器组件326的步骤440。步骤440,当执行中时,记忆体里的加载器会从映像档322中取得虚拟磁碟组件328及操作系统核心组件327,并且将虚拟磁碟组件328及操作系统核心组件327装载至记忆空间里。接着,步骤450包含执行装载在记忆体(记忆空间)里的操作系统核心以启动新的操作系统。

图6a至6c为图5的另一方法流程图的实施例。参照图6a,在efi启动加载模块312发现操作系统分区320有映像文件322或发现原本在操作系统分区320内的映像档换成映像档322时,步骤501至505将会被efi启动加载模块312。

如图6a所示,步骤501包含发起映像档322的装载程序。在本实施例中,当efi启动加载模块312发现平台硬体316的储存装置的操作系统分区320里的映像档322时,efi启动加载模块312将会发起映像档322至计算系统的记忆空间的装载(加载)程序。efi启动加载模块312会先在步骤502中确认操作系统分区320中的文件(可能有多个文件)是否为一个操作系统的映像档。接着,当efi启动加载模块312确认操作系统分区320里的映像档322真的是一个操作系统的映像档时,efi启动加载模块312会进行步骤503,其中步骤503包含确认映像档322的签章。

在本实施例中,映像档322会包含一个签章组件325。当此签章组件325被efi启动加载模块312验证为正确或合格的签章,映像档322将会被efi启动加载模块312认定为安全且认证为适用于计算系统中。在步骤503中执行完验证后,efi启动加载模块312接着会进行步骤504;其中,步骤504包含从映像档322中取得加载器组件326。

在步骤504中,efi启动加载模块312会预设性的知道映像档322中加载器组件326的位置。efi启动加载模块312会于映像档322里在此特定位置取得加载器组件326。然而,在其他不同实施例中,efi启动加载模块312不一定会事先知道映像档322中加载器组件326的位置。在此情况下,efi启动加载模块312可先扫描映像档322并且辨识出加载器组件326,其中efi启动加载模块312接着会取得加载器组件326并且进行步骤505。步骤505包含将加载器组件326装载至记忆体(记忆空间)中。

如图6b所示,加载器组件326装载至记忆空间后流程程序会进行步骤506;其中,步骤506包含执行装载在记忆空间里的加载器组件。当被计算系统执行时,加载器会从映像档322取得虚拟磁碟组件328。在本实施例中,只有加载器知道映像档322中虚拟磁碟组件328的位置。换言之,若没有事先将加载器组件326从映像档322中解码并装载至记忆空间,就没有办法得知虚拟磁碟组件328的位置。通过此方式,由于只有真正的且认证过的映像档322才能被正确的执行,本创作可提供一定的安全机制。以类似方式,在步骤507中记忆空间里的加载器会从映像档322取得操作系统核心组件327,其中映像档322中操作系统核心组件327的位置也相对的只有加载器知道。

在取得操作系统核心组件327及虚拟磁碟组件328后,这些组件分别在步骤508及509会背装在至记忆空间的一第二位置及一第三位置(相对于记忆空间的第一位置)。接着,步骤510会被执行以启动装载在记忆空间的操作系统核心。

本创作的流程接着会如图6c执行步骤511;步骤511是在新的操作系统环境下被执行。如图6c所示,步骤511包含装载驱动程序并执行硬体初始化程序。接着,虚拟磁碟会被装载并且系统初始化将会在步骤512执行,其中文件系统接着会在步骤513中被装载或架设起来。步骤514会验证系统服务的签章,而认证好的系统服务会在步骤515中被执行以完成整个程序。

如本创作上述方法及计算系统所述,由于计算系统可从单一个被复制导操作系统分区的映像档读取并安装一个新的操作系统,本创作提供一种新颖方式,可较简单且快速配送方式将新的更新文件分配至多个联网装置。举例而言,由于每个装置只需要接收到单一个文件,几千或几千万个物联网装置的软件补修或更新可很快的被执行并完成。这样可减少需要传给每个装置的文件数量,由此可减少频宽的需求来进行这些装置的更新。同时,安装时间及安装复杂度会明显的降低,因此在安装过程中用户不需要烦恼如何进行安装,可明显降低用户的烦恼程度。此外,由于操作系统核心组件及虚拟磁碟组件在映像档中的位置只有加载器组件知道,本创作可提供另一层的安全机制来避免恶意的编码被执行。

应当理解的是,本文所描述的实施例和实施方案仅用于说明本案的目的,并且各种修改或变化对于本技术领域的人应可轻易理解,并且被包含在本申请的精神及范围内和所附的权利要求书的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1