CN101421700B - 支持处理系统的分区中的独立操作系统的方法和设备 - Google Patents
支持处理系统的分区中的独立操作系统的方法和设备 Download PDFInfo
- Publication number
- CN101421700B CN101421700B CN2007800135990A CN200780013599A CN101421700B CN 101421700 B CN101421700 B CN 101421700B CN 2007800135990 A CN2007800135990 A CN 2007800135990A CN 200780013599 A CN200780013599 A CN 200780013599A CN 101421700 B CN101421700 B CN 101421700B
- Authority
- CN
- China
- Prior art keywords
- bios
- disposal system
- subregion
- parts
- zone
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4405—Initialisation of multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
具有多个处理单元的处理系统可支持独立分区中的独立操作系统(OS)。在初始化过程期间,处理系统中的预引导管理器可将软件复制到处理系统中的存储器隔离区。预引导管理器还可将处理系统配置成向处理系统的第一分区隐藏存储器隔离区。此外,预引导管理器可使用处理系统中的第一处理单元来引导第一分区上的OS,并且预引导管理器可将引导触发从第一处理单元传送到处理系统中的第二处理单元。引导触发可使第二处理单元使用存储器隔离区中的软件来引导处理系统的第二分区。还描述了其他实施例并要求其他实施例的权利。
Description
技术领域
本申请一般涉及数据处理领域,更具体地说,涉及用于支持在处理系统的不同分区中加载独立操作系统或软件环境的方法和相关设备。
背景技术
在典型的传统数据处理系统中,固件提供在系统上电或重置时但在操作系统(OS)被引导之前控制系统的机器指令。也就是说,固件控制预OS或预引导操作。固件还可在加载OS之后控制某些操作,如用于处理某些硬件事件和/或系统中断的操作。固件可通过统称为基本输入/输出系统(BIOS)的例行程序集来处理预引导和引导后操作。BIOS因此在系统的硬件组件与诸如OS的软件组件之间提供接口。
几年前,宣布了可扩展固件接口(EFI)模型。2002年12月1日发布的EFI规范1.10版(“EFI规范”)可从www.intel.com/technology/efi/main_specification.htm获得。该EFI规范定义了将由低端平台固件提供的标准接口和结构集。那些接口和结构可用于执行诸如加载另外的固件、运行预引导应用程序、引导OS以及在引导OS之后提供运行时服务等任务。用于EFI的平台创新框架是基于EFI模型的平台框架的一个示例。
预期不会有EFI规范的任何将来版本。但是,在2006年,统一EFI论坛在2006年1月31日发布了统一EFI(UEFI)规范2.0版(“UEFI规范”)。UEFI规范可从www.uefi.org/index.php?pg=4获得。UEFI规范是基于EFI规范的,其更正和更改由统一EFI论坛管理。近年来,基于EFI或基于UEFI的平台框架可代替基于传统BIOS模型的框架而作为用于设计、构建和操作数据处理系统的选择框架。
在本申请中,术语“固件”和“BIOS”是指可在处理系统引导到OS之前在处理系统中执行的软件、可提供允许OS或其它组件与处理系统硬件交互的运行时服务的软件、及类似类型的软件组件。因此,术语“固件”和“BIOS”包括但不限于基于UEFI模型的软件和基于传统BIOS模型的软件。传统上,固件一般存储在非易失性存储器中。但是,最近几年中,已开发了在其它类型的存储装置中存储固件或从远程储存库获得固件的处理系统。
在本申请中,视考虑的特定实现而定,术语“处理单元”可表示处理系统内的单独的中央处理单元(CPU)、CPU内的处理核、诸如超线程(HT)等逻辑处理单元或任何类似处理资源、或配置为总体作为一个单元操作的此类资源的任何集合。在存在多个处理单元的系统中,OS通常拥有所有处理单元。但是,诸如虚拟机监视器(VMM)等虚拟化软件可用于将一个处理单元分配给一个虚拟机(VM),而将另一处理单元分配给另一VM。
此外,在一些处理系统中,可能通过例如修改由BIOS产生的高级配置与电源接口(ACPI)表而向OS隐藏一个或多个处理单元。在一些系统中,也可能向OS隐藏随机存取存储器(RAM)的一个或多个部分。另外,在一些系统中,可通过例如更新系统的输入/输出(I/O)控制器集线器(ICH)中的装置隐藏寄存器或其它位置而向OS隐藏几个外围装置和集成装置。这些技术可用于出于调试目的而隐藏装置。
附图说明
根据随附权利要求、以下对一个或多个示例实施例的详细说明和附图,本发明的特征和优点将变得显而易见,附图中:
图1是描绘可在其中实现本发明的示例实施例的某些方面的适合的数据处理环境的框图;
图2是提供关于图1的处理系统中的一些硬件组件的另外细节的框图;
图3和图4是描绘根据本发明的示例实施例用于支持处理系统的分区中的独立操作系统的过程的各个方面的流程图;
图5是示出根据本发明的示例实施例的存储器配置和来自未采取隔离的示例处理系统的存储器配置的框图;以及
图6和图7是示出根据本发明的示例实施例用于将装置指定给分区的过程的各个方面的流程图。
具体实施方式
除了用于调试目的的常规使用外,上述技术还可用于在具有多个处理单元的单个计算机或数据处理系统内创建两个(或两个以上)执行环境。此类执行环境也可称为分区。例如,处理系统可包括主分区和隔离分区。主分区可包括通用OS(例如,基于各种的OS、基于的OS等之一)和一个或多个用户应用(例如,web服务器、业务应用等)。隔离分区对于主OS不可见,并且隔离分区可用于多种应用,包括但不限于I/O卸载、平台管理性和/或故障预测。
本发明的一个或多个实施例涉及用于支持处理系统的分区中的独立操作系统的方法和设备。
图1是描绘可在其中实现本发明的示例实施例的某些方面的适合的数据处理环境12的框图。数据处理环境12包括处理系统20,该系统20包括各种硬件组件80和软件组件82。硬件组件可包括例如一个或多个处理器或CPU22,它们以通信方式直接或经由一条或多条系统总线24或其它通信路径或介质间接耦合到各种其它组件。在示例实施例中,处理器22包括多个处理单元,如第一处理核21和第二处理核23。或者,处理系统可包括多个处理器,每个处理器具有至少一个处理单元。处理单元可实现为处理核、HT资源或用于同时或基本同时地执行多个线程的任何其它适合的技术。在示例实施例中,处理单元21可用作处理系统20的自引导处理器(BSP),并且处理单元23可用作应用处理器(AP)。
本文使用的术语“处理系统”和“数据处理系统”旨在从广义上包含单个机器或以通信方式耦合而在一起操作的机器或装置的系统。示例处理系统包括但不限于分布式计算系统、超级计算机、高性能计算系统、计算集群、大型计算机、微型计算机、客户机-服务器系统、个人计算机(PC)、工作站、服务器、便携式计算机、膝上型计算机、平板计算机、个人数字助理(PDA)、电话、手持式装置、诸如音频和/或视频装置等娱乐装置、及用于处理或传送信息的其它装置。
可通过来自常规输入装置(诸如键盘、如鼠标的指点装置等)的输入至少部分地控制处理系统20。输入装置可经由例如I/O端口32与处理系统20通信。处理系统20也可响应从其它处理系统或其它输入源或信号接收的指示或其它类型的信息。处理系统20可利用通过例如网络接口控制器(NIC)34、调制解调器或其它通信端口或耦合而到一个或多个远程数据处理系统70的一个或多个连接。处理系统可通过诸如局域网(LAN)、广域网(WAN)、内联网、互联网等物理和/或逻辑网络72互连。涉及网络72的通信可利用各种有线和/或无线近距离或远距离载体和协议,包括射频(RF)、卫星、微波、电气与电子工程师协会(IEEE)802.11、802.16、802.20、蓝牙、光学、红外线、电缆、激光等。
在处理系统20内,处理器22可以通信方式耦合到一个或多个易失性或非易失性数据存储装置,如RAM26、只读存储器(ROM)28及一个或多个大容量存储装置30。大容量存储装置30可包括例如集成驱动电子装置(IDE)、小型计算机系统接口(SCSI)和串行高级技术体系结构(SATA)硬盘驱动器。数据存储装置还可包括其它装置或介质,如软盘、光存储装置、磁带、闪存、记忆棒、紧凑式闪存(CF)卡、数字视频磁盘(DVD)等。在本申请中,术语“ROM”一般可用于表示非易失性存储器装置,如可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪ROM、闪存等。
处理器22也可以通信方式耦合到另外的组件,如一个或多个视频控制器、SCSI控制器、网络控制器、通用串行总线(USB)控制器、I/O端口、诸如相机的输入装置等。处理系统20还可包括用于以通信方式耦合系统组件的一个或多个桥接器(bridge)或集线器35,如存储器控制器集线器(MCH)、ICH、外围组件互连(PCI)根桥接器等。本文使用的术语“总线”包括可由多于两个装置共享的路径及点对点路径。
诸如NIC34的一些组件例如可实现为具有用于与总线通信的接口(例如,PCI连接器)的适配器卡。或者,使用诸如可编程或不可编程逻辑装置或阵列、专用集成电路(ASIC)、嵌入式处理器、智能卡等组件,NIC34和其它装置可实现为板上或嵌入式控制器。
在示例实施例中,处理系统20使用基于固件的划分。具体而言,在处理系统20启动或接通电源之后,固件40可在处理系统20内创建主分区50和隔离分离52。主分区50可包括固件代码(例如,BIOS42)和在BSP上运行的OS代码(例如,OS60)。隔离(sequestered)分区52可包括固件代码(例如,BIOS46)和在AP上运行的OS代码(例如,OS62)。主分区也可称为非隔离分区。在备选实施例中,分区可在其它类型的处理单元上运行。
在示例实施例中,ICH37(在图2中示出)包括诸如装置隐藏寄存器90的配置构造,其允许禁用或隐藏处理系统20内的各种组件或装置。例如,配置构造可用于使ICH37阻止某些装置的配置周期。此外,在示例实施例中,主分区50的ACPI参数92可用于向OS60隐藏处理单元23和RAM26的一个或多个部分,而隔离分区52的ACPI参数93可用于向OS62隐藏处理单元21和RAM26的其它部分。
有关装置隐藏寄存器和相关主题的另外细节可从2004年1月的 I/O控制器集线器6(ICH6)系列数据表(“ICH6数据表”)获得。ICH6数据表可从http://www.intel.com/design/chipsets/datashts/301473.htm获得。有关ACPI参数和相关主题的另外细节可从2005年12月30日发布的高级配置与电源接口规范修订版3.0a(“ACPI规范”)获得。ACPI规范可从www.acpi.info/spec.htm获得。
在备选实施例中,ICH内和/或一个或多个其它组件内的其它数据存储构造可用于禁用或隐藏处理系统内的装置,并且其它技术可用于隐藏处理单元和RAM的若干部分。
本文可参照诸如指令、函数、过程、数据结构、应用程序、配置设置等数据来描述本发明。如下文更详细地描述,当机器访问数据时,机器可通过执行任务、定义抽象数据类型或低端硬件上下文和/或执行其它操作而做出响应。数据可存储在易失性和/或非易失性数据存储装置中。在本申请中,术语“程序”包括范围广泛的软件组件和构造,包括应用程序、驱动程序、进程、例行程序、方法、模块和子程序。术语“程序”可用于表示完整的编译单元(即,可独立编译的指令集)、编译单元的集合或编译单元的一部分。因此,术语“程序”可用于表示在由处理系统执行时执行一个或多个所需操作的指令的任何集合。
例如,ROM28、数据存储装置30和/或RAM26可包括在执行时执行各种操作的各种指令集。此类指令集通常可称为软件。
在示例实施例中,处理系统20使用诸如上述技术的技术来在处理系统20中创建两个不同的分区:主分区50和隔离分区52。在备选实施例中,处理系统可具有多于一个主分区和/或多于一个隔离分区。
在一个示例实施例中,程序或软件组件82可包括用于每个分区的固件40的不同实例。每个分区还可接收它自己的OS和它自己的应用程序。例如,在一个示例实施例中,每个分区从ROM28接收一些或所有固件代码40。具体而言,如图1所示,处理系统20将固件40的一个实例(即,BIOS42)加载到主分区50中,并将另一实例(即,BIOS46)加载到隔离分区52中。主分区50的OS60可与隔离分区52的OS62相同或不同。
在又一个示例实施例中,处理系统20可将固件、通用OS和对应的应用程序加载到主分区50中,并且处理系统20可将嵌入式OS加载到隔离分区52中。嵌入式OS可由加载到隔离分区52中的单一指令包组成,该包随后提供将由隔离分区52执行的所有或基本所有的服务或功能。出于本公开的目的,嵌入式OS是软件,它提供一般由常规OS提供的服务种类(例如,任务调度、错误处理、I/O服务等)及一般由系统固件提供的服务(例如,发现和初始化硬件组件、提供到那些组件的软件接口等)。嵌入式OS还可提供一般由在OS之上运行的程序或应用程序提供的服务。
图2是提供关于图1的处理系统中的一些硬件组件的另外细节的框图。图2突出显示了示例系统中扩展槽和集成装置的划分。具体而言,图2在某些装置的方框中示出点填充,以说明将向OS60隐藏那些装置或其部分。例如,在示例实施例中,将使以下组件可供隔离分区52使用而向OS60隐藏:
·处理单元23;
·NIC34;
·USB端口1和2;以及
·PCI槽1和2。
以下组件对于OS60仍可见并且可供OS60使用:
·处理单元21;
·大容量存储装置30;
·USB端口3和4;
·PCI-Express(PCI-E)槽1和2;以及
·PCI槽3和4。
此外,在示例实施例中,大多数RAM26对于OS60仍可见,但一部分27将向OS60隐藏并可供隔离分区52使用。
在示例实施例中,在接通或重置处理系统20时进行的初始化过程的预引导部分期间,执行隔离装置的操作。如下面更详细地描述,在示例实施例中,主分区50中的BIOS42具有对处理系统20的初始化操作的主控制权。例如,再次参照图1,那些操作可由实现预引导管理器84的指令控制。预引导管理器84可包括用于处理初始化过程的不同方面的各种模块,如引导装置选择程序86、BIOS加载程序88等。预引导管理器84可驻留在固件40中,并且一些或所有预引导管理器84可在初始化过程的早期阶段复制到主分区50中以形成BIOS42的部分。虽然主分区50中的预引导管理器84可具有对初始化过程的主控制权,但主分区50可在适当时将控制权移交给隔离分区52,以便例如允许BIOS46初始化或配置隔离分区52的存储器。
图3和图4是描绘根据本发明的示例实施例用于支持处理系统的分区中的独立操作系统的过程的各个方面的流程图。
在图3的过程中,处理系统使用自引导处理器(BSP)来引导主分区上的通用OS,并且处理系统使用AP来引导隔离分区上的隔离执行环境(SEE)。在一个实施例中,SEE包括固件层、OS层和应用层。在一个实施例中,处理系统20中的处理单元21用作BSP,处理单元23用作AP,并且SEE驻留在隔离分区52中。如下面更详细地描述,图3中的过程涉及执行模块以在主分区50和隔离分区52中创建驱动执行环境(DXE)。
图3中的过程可响应处理系统20接通电源或重置而开始。随后,BSP可开始执行预引导管理器84,并且预引导管理器84可使BSP执行各种初始化操作。例如,如方框140所示,BSP可执行某些安全性(SEC)功能(例如,验证固件40的代码映像)。在成功完成SEC阶段后,如方框142所示,BSP可执行一个或多个预EFI初始化(PEI)模块以执行某些PEI功能。例如,PEI功能可包括将RAM26初始化并配置处理系统20以创建两个不同的存储区:一个用作主分区50的RAM,另一个用作隔离分区52的RAM。例如,处理系统可使用像下面关于图6和图7所述的那些操作的操作来创建主存储区和隔离存储区。在其它实施例中,处理系统可包含多于一个主存储区和/或多于一个隔离存储区(memory area)。在示例实施例中,防止主分区50访问隔离分区52的存储器的机制在引导过程后期才激活。
图5是示出根据本发明的示例实施例的存储器配置和来自未采取隔离的示例处理系统的存储器配置的框图。右侧的列表示RAM26的物理地址空间。两个括号50a说明已将该地址空间的若干部分配置为用作主分区50的存储器,并且括号52a说明已将该地址空间的其它部分配置为用作隔离分区52的存储器。在引导过程完成后,构成主分区50的大部分信息可驻留在主分区存储器50a中,并且构成隔离分区52的大部分信息可驻留在隔离分区存储器52a中。与主分区50和隔离分区52相关联的其它信息片段可驻留在其它硬件组件中,如MCH36中的寄存器、ICH37中的寄存器等。隔离分区存储器52a可对应于图2中的隔离存储器27。
作为配置过程的一部分,BSP可执行一个或多个PEI模块两次:一次在主分区的存储空间或存储器上下文(memory context)中,一次在隔离分区的存储器上下文中。例如,BSP可利用RAM26的实际起始和结束物理存储器地址来调用函数,例如PEI_mem_init。PEI_mem_init函数随后可将RAM26配置成具有占用RAM26的最高一兆字节(MB)的第一BIOS区域46。PEI_mem_init函数还可将固件代码加载到BIOS区域46中,并在BIOS区域46中准备要传递到随后阶段的数据。因此,诸如PEI_mem_init等函数可称为代码加载程序或BIOS加载程序88。
BSP随后可利用相同或不同起始地址和新结束地址来调用BIOS加载程序88。在一个实施例中,结束地址正好在BIOS区域46的起点之前。因此,BSP可隐藏BIOS区域46。BIOS加载程序88随后可将RAM26配置成具有占用指定地址范围内的最高兆字节的第二BIOS区域42。BIOS加载程序88还可将固件代码加到BIOS区域42中,并在BIOS区域42中准备要传递到随后阶段的数据。因此,在此类实施例中,隔离BIOS区域46可占用RAM26的最高MB,并且主BIOS区域42可占用RAM26的次高MB。BIOS加载程序88还可将RAM26配置成具有用于隔离分区的通用区域48和用于主分区的通用区域44。
在其它实施例中,可使用不同的地址范围来创建两个或两个以上BIOS区域。例如,对于对BIOS加载程序88的第二次调用,可使用远远低于BIOS区域46的起点的结束地址,以便在该结束地址之上在主BIOS区域和隔离BIOS区域之间留下足够的空间来容纳用于主分区的通用存储器。因此,在此类实施例中,主分区存储器的单个区可包括通用区域和相邻的BIOS区域,并且隔离分区存储器的单个区可类似地包括通用区域和相邻的BIOS区域。
在一个实施例中,将从零开始的逻辑存储器地址指定给主分区和隔离分区,BIOS区域42占用主分区存储器50a的最高兆字节(MB),并且BIOS区域46占用隔离分区存储器52a的最高MB。在其它实施例中,可使用除了基于零的寻址之外的方案。如图5所示,在单分区处理系统引导后,其RAM180可不包含两个不同的BIOS区域和两个不同的通用区域,而只包含单个BIOS区域192和单个通用区域194。
以上描述指示,BSP可执行PEI模块两次,以便为不同的分区配置不同的存储空间。在备选实施例中,处理系统可使用一个或多个不同的BIOS加载程序或PEI模块来配置不同的存储空间。
再次参照图3所示的示例实施例,在执行BIOS加载程序88后,如方框144所示,BSP可执行一个或多个模块以便在主分区50中创建DXE。用于创建DXE的模块可部分地像常规DXE模块一样操作。但是,在一个实施例中,BSP在用于BSP的ACPI表92中将AP标记为禁用。在DXE阶段,BSP也可使用启动处理器间中断(SIPI)来使AP进入闲置循环150。如方框152所示,BSP也可将系统管理中断(SMI)、处理器管理中断(PMI)或类似的信号或消息发送到AP,以使AP设置系统管理模式(SMM)基础(base)和SMI处理程序(handler)。一旦设置了SMI基础和处理程序,AP便可返回执行闲置循环。
如方框160所示,BSP随后开始执行BDS程序86,由此进入引导装置选择(BDS)阶段。在BSD阶段160期间,BSP可将引导触发(boottrigger)发送到AP而不是使AP停止。例如,BSP可将处理器间中断(IPI)发送到AP以指示AP开始执行DXE阶段170。IPI可提供例如在PEI阶段加载的隔离BIOS46的进入点。此外,BSP可将要由隔离分区52拥有的装置列表传递到AP。
AP随后可执行DXE阶段170。AP的执行可类似于BSP中的执行。但是,在示例实施例中,一个不同之处在于,AP跳过(skip)了像外围组件互连(PCI)列举的功能,而转为只初始化将由隔离分区52拥有的装置。基于在各个DXE阶段144和170中对当前处理单元是BSP还是AP的确定,可为BSP和AP采取不同的执行路径。例如,一个或多个DXE模块可检查本地高级可编程中断控制器(APIC),并且可确定在处理器标识符(PID)为零时当前处理单元是BSP,而在PID为非零时当前处理单元是AP。因此,基于PID,相同的DXE映像在主分区50中的表现可不同于它在隔离分区52中的表现。
AP随后可执行BDS阶段172和SEE阶段174。在示例实施例中,由于RAM26的最低部分50a由主分区50拥有,因此,SEE阶段174以AP引导不需要基于零的物理存储器的SEE开始。
当AP处于DXE阶段170、BSD阶段172或SEE阶段174时,BSP可从其BDS阶段160转到OS阶段162。因此,AP无需闲置等待BSP引导OS。相反,AP可完成DXE阶段和BDS阶段的操作,并且可在BSP加载OS或完成BDS阶段之前开始SEE阶段。
在上述示例实施例中,单个固件映像由不同的分区共享,并且该映像用于执行平台的全局初始化及每个分区的本地环境的初始化。BSP可引导任何适合的OS,包括任何合适的常规、现成OS。主分区50和隔离分区52随后可作为独立处理环境操作。
在示例实施例中,BSP分区拥有低存储器(low memory)并引导通用OS,而AP分区拥有高存储器(high memory)并引导SEE。但是,在其它实施例中,这些作用可交换。
在图4的过程中,处理系统使用BSP来引导主分区上的通用OS,并且处理系统使用AP来引导隔离分区上的嵌入式OS。在一个实施例中,处理系统20中的处理单元21可用作BSP,而处理单元23可用作AP。图4中的过程可响应处理系统20接通电源或重置而开始。随后,如方框110和112所示,BSP可执行某些安全性功能和PEI功能,如上面关于图3所述的那些功能。图4中的过程也包括DXE阶段114,像图3中的对应阶段,其中,如方框120和122所示,BSP使用SIPI和SMI来设置(set up)用于AP的SMM基础和SMM处理程序,并且将AP置于闲置循环。
BSP随后可开始执行BDS程序86,由此开始BDS阶段130。在BDS阶段130中,BSP可构建具有隔离信息的参数结构,如标识将用作隔离存储器的物理存储器部分的存储器映射、可供隔离分区使用的装置列表等。此外,BSP可将该参数结构复制到隔离存储器中的预定或熟知的区域。另外,BSP可从存储装置(例如,从闪存的区域、从硬盘的特殊区、或从某个其他非易失性存储装置)提取嵌入式OS映像,并且可将该映像复制到隔离存储器中的预定或熟知的区域。
BSP随后可将引导触发发送到AP。例如,BSP可发布IPI,其中以AP作为目标处理器,而嵌入式OS的第一指令作为目标处理器应开始执行时的地址。如方框134所示,AP随后可在隔离分区内执行嵌入式OS。此外,嵌入式OS可在隔离分区中独立于主分区中的OS且不为其所知地操作。
在传送IPI以触发在隔离分区中执行嵌入式OS后,BSP可继续为主分区选择引导装置。如方框132所示,BSP随后可使用该引导装置来启动主分区中的OS。
图6和图7是描绘根据本发明的示例实施例用于将装置指定给分区的过程的各个方面的流程图。具体而言,图6代表主分区50的观点,而图7代表隔离分区52的观点。
图6从处理系统20在初始化过程开始或接近开始时开始。该过程可响应例如处理系统20接通电源或重置而开始。在方框210,主分区50中的BIOS42可扫描处理系统20中的所有PCI总线及任何其它总线,并且可构建标识在那些总线上发现的所有装置的第一装置列表。例如,在示例实施例中,处理系统20可扫描一条或多条PCI总线、PCI-E总线、USB总线、工业标准体系结构(ISA)总线等。在备选实施例中,可扫描其它类型的总线。扫描处理系统中的总线以确定存在哪些装置的过程可通称为总线扫描。总线扫描可包括诸如将桥接器和装置基址寄存器(BAR)编程等操作。
在构建第一装置列表时,主分区50可包括在第一次扫描期间发现的一些或所有装置的位置信息。例如,位置信息可包括所发现的每个装置的总线编号、装置编号、功能编号及装置类型。装置类型或任何其它合适的标志或数据项可用于跟踪哪些装置是桥接器。对于桥接器,本地信息也可标识桥接器的类型,并且可包括与桥接器相关联的其它信息,如从属总线信息。
如方框212所示,在构建第一装置列表之后,主分区50可将装置隐藏寄存器90和/或类似的配置构造编程以隐藏某些预定装置。此编程可基于预先选择的装置分配来设置或清除配置构造中的位。例如,ROM28可由用户(例如,制造商、管理员、最终用户等)预先编程而具有指定哪些装置将由隔离分区52使用并向主分区50隐藏的配置信息。在备选实施例中,主分区可从任何其它合适的数据储存库检索配置信息。
通过指定将如何配置装置隐藏寄存器90和类似配置构造,配置信息可标识要隐藏的装置。例如,处理系统20可将装置编号0指定给图2中标为PCI1的扩展槽中的装置,并且如果管理员已将处理系统20配置成隐藏该装置,则配置信息可包括指示应将次级PCI装置隐藏(SPDH)寄存器的位0设为1的数据。ROM28中的配置信息可使用类似的方法来标识要隐藏的其它类型的装置,如SATA控制器、板上NIC、其它类型的总线上的装置等。例如,配置信息可包括指示主分区50将使用功能禁用(FD)寄存器来隐藏PCI-E总线、USB总线等上的特定装置的数据。
如方框214所示,主分区50随后可执行第二次总线扫描,并且可构建第二装置列表以标识在第二次扫描期间检测到的所有装置。如方框216所示,主分区50随后可重置配置构造以取消对任何隐藏装置的隐藏或阻止。此外,如方框220所示,主分区50可将第一和第二装置列表进行比较,并产生包括在第一次扫描中发现但未在第二次扫描中发现的装置的待隔离装置列表。基于比较产生的列表可称为隔离装置列表,并且对于每个要隔离的装置,该列表可包括与第一装置列表相同类型的位置信息。
如方框222所示,主分区50随后可启动隔离分区52,并且可将待隔离装置列表传递给隔离分区52。由于根据图6中的方框216,将不会隐藏任何装置,因此,隔离分区52将能够读取待隔离装置的配置空间。
如方框230所示,在将隔离装置列表发送到隔离分区52后,主分区50可等待,直至引导隔离分区52为止。如方框232所示,在引导隔离分区52后,主分区50可再次将诸如装置隐藏寄存器90的配置构造编程为向主分区50隐藏隔离装置。如方框234所示,主分区50随后可引导OS60。图6中的过程随后可结束。
在一个实施例中,方框222、230和232中描绘的操作可在图3的BDS阶段160或图4的BDS阶段130中执行。例如,BSP可在传递隔离装置列表之前将IPI发送到AP。随后,一旦BSP确定AP已完成DXE阶段170,BSP便可如图6中的方框232所示将装置隐藏寄存器编程。如图6中的方框234和图3中的方框162所示,BSP随后可转到OS阶段。
当主分区50启动隔离分区52时,图7中的过程可响应如图6中的方框222所描绘的操作而开始。如图7中的方框310所示,一旦启动后,隔离分区52便可从主分区50接收待隔离装置列表。隔离分区52随后可将列表上的装置初始化而不必执行总线扫描。
例如,如方框320所示,隔离分区可确定列表上的所有装置是否都已被初始化。如果隔离分区52尚未将列表上的所有装置初始化,则隔离分区可选择要初始化的下一个装置,并且如方框322所示,可使用列表中的诸如选定装置的总线编号、装置编号、功能编号和装置类型的信息来定位该装置。如方框324所示,隔离分区随后可将该装置初始化。在将装置初始化时,隔离分区52可从该装置的配置空间提取它需要的任何信息,并且可执行配置装置所需的任何其它操作,如将装置的BAR编程、以及可能执行装置的选项ROM。但是,在示例实施例中,由于视总线拓扑而定,重新配置桥接器或装置BAR可能会使桥接器或装置不可访问,因此,隔离分区52避免将任何桥接器或装置BAR重新编程。此外,在示例实施例中,隔离分区52不会将未指定给它(即,未包括在隔离装置列表中)的任何装置初始化。
上述操作可作为例如图3中的DXE阶段170的一部分或图4中的嵌入式OS阶段134的一部分执行。一旦隔离分区52的所有装置都已被初始化,如方框330所示,隔离分区52便可引导OS62,并且隔离分区52可使用隔离装置。图7中的过程随后可结束。
因此,处理系统中的一个分区可发现要隔离的装置的位置,并且可将具有那些装置的位置信息的列表传递到第二分区。第二分区随后可将那些装置初始化。装置隐藏寄存器和/或相关配置构造随后可编程为对第一分区隐藏或阻止那些装置。在示例实施例中,装置隐藏寄存器在第一分区上的OS引导之前便进行了如此编程。在各种实施例中,像将ICH寄存器编程为阻止对隔离装置的配置访问等功能可由任一分区执行。在示例实施例中,将每个隔离装置的位置提供给隔离分区,并且隔离分区因此无需执行总线扫描。隔离分区因此可避免在隔离分区要扫描包含相同类型的装置的多个实例(例如,USB端口)的总线时可能发生的模糊结果。另外,由于ICH可阻止隔离装置的配置周期,但不可阻止对那些装置的I/O地址和存储器映射寄存器的访问,因此,即使主分区可在引导隔离分区之后设置装置隐藏寄存器和/或相关设置,隔离分区仍可继续使用隐藏装置。
此外,如上所述,处理系统可包含多于一个主分区、多于一个隔离分区或多个主分区和隔离分区。此类处理系统可使用上述过程的变型来为一个或多个隔离分区实现隔离装置。
如上所述,处理系统可独立运行两个(或两个以上)OS,而无需昂贵的基于硬件的分区或诸如VMM的基础软件管理层。相反,预OS固件可划出存储区域,将可引导的OS映像复制到该区域,并且随后将IPI发给目标处理单元以使该OS在该处理单元上运行。处理系统还可支持在另一处理单元上运行的另一OS,并且不同的OS可完全或基本相互独立地操作。此外,一个分区上的OS可能不知道任何隔离资源。
鉴于本文所述和所示的原理和示例实施例,将认识到,在不脱离此类原理的情况下,可在布置和细节上修改所述实施例。此外,虽然以上论述集中在特定实施例上,但其它配置也考虑在内。虽然在本文中可使用诸如“在一个实施例中”、“在另一实施例中”或诸如此类表述,但这些短语意在一般地提及实施例可能性,并且无意将本发明限制为特定的实施例配置。在本文中使用时,这些术语可涉及可组合成其它实施例的相同或不同的实施例。
类似地,虽然关于以特定顺序执行的特定操作描述了示例过程,但许多修改可应用到那些过程以得出本发明的许多备选实施例。例如,备选实施例可包括使用少于所有公开操作的过程、使用另外操作的过程、以不同顺序使用相同操作的过程、及组合、细分或以其它方式改变本文公开的各个操作的过程。
本发明的备选实施例还包括包含用于执行本发明的操作的指令的机器可访问介质。此类实施例也可称为程序产品。此类机器可访问介质可包括但不限于诸如软盘、硬盘、CD-ROM、ROM和RAM等存储介质及由机器或装置制造或形成的其它可检测粒子布置。指令也可在分布式环境中使用,并且可在本地和/或远程存储以便由单或多处理器机器访问。
还应理解,本文所述的硬件和软件组件表示适当独立的功能要素,以便每个组件可基本独立于其它组件进行设计、构建或更新。在备选实施例中,许多组件可实现为硬件、软件或硬件与软件的组合以提供诸如本文中所述和所示的功能。用于执行本发明的操作的硬件、软件或硬件与软件的组合也可称为逻辑或控制逻辑。
鉴于可从本文所述的示例实施例轻松得出的多种有用置换,此详细说明仅用于说明,而不应视为限制本发明的范围。因此,本发明所要求的权利是在随附权利要求的范围与精神内的所有实现和此类实现的所有等效物。
Claims (17)
1.一种用于在具有多个处理单元的处理系统中引导第一和第二分区的方法,所述方法包括:
在所述处理系统的初始化过程期间:
将软件复制到所述处理系统中的存储器隔离区;
将所述处理系统配置成向所述处理系统的第一分区隐藏所述存储器隔离区,其中所述配置所述处理系统包括:
在所述第一分区生成要向所述第一分区隔离的装置的列表;
启动所述处理系统的第二分区;以及
将所述装置的列表发送给所述第二分区;
使用所述存储器隔离区中的所述软件和所述处理系统的第二处理单元来基于所述要隔离的装置的列表引导所述处理系统的所述第二分区;以及
使用操作系统(OS)和所述处理系统的第一处理单元来引导所述处理系统的所述第一分区。
2.如权利要求1所述的方法,其中:
将软件复制到存储器隔离区的所述操作包括将嵌入式OS加载到所述存储器隔离区中。
3.如权利要求1所述的方法,还包括:
在引导所述第二分区之后,独立于所述第一分区上的所述OS来操作所述第二分区。
4.如权利要求1所述的方法,其中所述第一处理单元执行将所述软件复制到所述存储器隔离区的所述操作。
5.如权利要求1所述的方法,还包括:
为所述第一分区创建第一基本输入/输出系统(BIOS)区域;以及
为所述第二分区创建第二BIOS区域。
6.如权利要求1所述的方法,还包括:
为所述第一分区创建第一基本输入/输出系统(BIOS)区域;
为所述第二分区创建第二BIOS区域;
使用所述第一BIOS区域来引导所述第一分区;以及
使用所述第二BIOS区域来引导所述第二分区。
7.如权利要求1所述的方法,还包括:
利用第一存储器映射来运行基本输入/输出系统(BIOS)加载程序以便为所述第一分区创建第一BIOS区域;以及
利用第二存储器映射来运行所述BIOS加载程序以便为所述第二分区创建第二BIOS区域。
8.如权利要求1所述的方法,还包括:
为所述第一分区创建第一基本输入/输出系统(BIOS)区域;
为所述第二分区创建第二BIOS区域;
在所述第一和第二BIOS区域中存储匹配的BIOS代码副本;以及
在所述第二分区中执行所述BIOS代码时,基于所述第二处理单元的属性自动确定执行路径。
9.如权利要求8所述的方法,其中自动确定执行路径的所述操作包括:
自动确定所述BIOS代码是否在应用处理器上执行;以及
如果所述BIOS代码在应用处理器上执行,则跳过用于列举装置的指令。
10.一种用于在具有多个处理单元的处理系统中引导第一和第二分区的设备,包括:
将软件复制到所述处理系统中的存储器隔离区的部件;
将所述处理系统配置成向所述处理系统的第一分区隐藏所述存储器隔离区的部件,其中用于配置所述处理系统的所述部件包括:
在所述第一分区生成要向所述第一分区隔离的装置的列表的部件;
启动所述处理系统的第二分区的部件;以及
将所述装置的列表发送给所述第二分区的部件;
使用所述存储器隔离区中的所述软件和所述处理系统的第二处理单元来基于所述装置的列表引导所述处理系统的第二分区的部件;以及
使用操作系统(OS)和所述处理系统的第一处理单元来引导所述处理系统的所述第一分区的部件。
11.如权利要求10所述的设备,还包括使所述处理系统将嵌入式OS加载到所述存储器隔离区中的部件。
12.如权利要求10所述的设备,还包括使所述第一处理单元将所述软件复制到所述存储器隔离区的部件。
13.如权利要求10所述的设备,还包括:
为所述第一分区创建第一基本输入/输出系统(BIOS)区域的部件;以及
为所述第二分区创建第二BIOS区域的部件。
14.如权利要求10所述的设备,还包括:
为所述第一分区创建第一基本输入/输出系统(BIOS)区域的部件;
为所述第二分区创建第二BIOS区域的部件;
使用所述第一BIOS区域来引导所述第一分区的部件;以及
使用所述第二BIOS区域来引导所述第二分区的部件。
15.如权利要求10所述的设备,还包括:
利用第一存储器映射来运行基本输入/输出系统(BIOS)加载程序以便为所述第一分区创建第一BIOS区域的部件;以及
利用第二存储器映射来运行所述BIOS加载程序以便为所述第二分区创建第二BIOS区域的部件。
16.如权利要求10所述的设备,还包括:
为所述第一分区创建第一基本输入/输出系统(BIOS)区域的部件;
为所述第二分区创建第二BIOS区域的部件;
在所述第一和第二BIOS区域中存储匹配的BIOS代码副本的部件;以及
在所述第二分区中执行所述BIOS代码时,基于所述第二处理单元的属性自动确定执行路径的部件。
17.如权利要求16所述的设备,还包括:
自动确定所述BIOS代码是否在应用处理器上执行的部件;以及
如果所述BIOS代码在应用处理器上执行,则跳过用于列举装置的指令的部件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310111174.0A CN103257860B (zh) | 2006-04-19 | 2007-04-16 | 支持处理系统的分区中的独立操作系统的方法和设备 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/407,425 US7610481B2 (en) | 2006-04-19 | 2006-04-19 | Method and apparatus to support independent systems in partitions of a processing system |
US11/407,425 | 2006-04-19 | ||
PCT/US2007/009337 WO2007123885A1 (en) | 2006-04-19 | 2007-04-16 | Method and apparatus to support independent operating systems in partitions of a processing system |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310111174.0A Division CN103257860B (zh) | 2006-04-19 | 2007-04-16 | 支持处理系统的分区中的独立操作系统的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101421700A CN101421700A (zh) | 2009-04-29 |
CN101421700B true CN101421700B (zh) | 2013-05-01 |
Family
ID=38620827
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800135990A Active CN101421700B (zh) | 2006-04-19 | 2007-04-16 | 支持处理系统的分区中的独立操作系统的方法和设备 |
CN201310111174.0A Active CN103257860B (zh) | 2006-04-19 | 2007-04-16 | 支持处理系统的分区中的独立操作系统的方法和设备 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310111174.0A Active CN103257860B (zh) | 2006-04-19 | 2007-04-16 | 支持处理系统的分区中的独立操作系统的方法和设备 |
Country Status (4)
Country | Link |
---|---|
US (4) | US7610481B2 (zh) |
EP (1) | EP2027531B1 (zh) |
CN (2) | CN101421700B (zh) |
WO (1) | WO2007123885A1 (zh) |
Families Citing this family (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI298837B (en) * | 2004-05-03 | 2008-07-11 | Lg Electronics Inc | Apparatus and method for preventing data copy by cardbus devices |
US8656487B2 (en) | 2005-09-23 | 2014-02-18 | Intel Corporation | System and method for filtering write requests to selected output ports |
US7610481B2 (en) | 2006-04-19 | 2009-10-27 | Intel Corporation | Method and apparatus to support independent systems in partitions of a processing system |
US7797555B2 (en) * | 2006-05-12 | 2010-09-14 | Intel Corporation | Method and apparatus for managing power from a sequestered partition of a processing system |
US7660922B2 (en) * | 2006-05-12 | 2010-02-09 | Intel Corporation | Mechanism to flexibly support multiple device numbers on point-to-point interconnect upstream ports |
US20070288761A1 (en) * | 2006-06-09 | 2007-12-13 | Dale Jason N | System and method for booting a multiprocessor device based on selection of encryption keys to be provided to processors |
US7594104B2 (en) * | 2006-06-09 | 2009-09-22 | International Business Machines Corporation | System and method for masking a hardware boot sequence |
US20070288740A1 (en) * | 2006-06-09 | 2007-12-13 | Dale Jason N | System and method for secure boot across a plurality of processors |
US20070288738A1 (en) * | 2006-06-09 | 2007-12-13 | Dale Jason N | System and method for selecting a random processor to boot on a multiprocessor system |
US7774616B2 (en) * | 2006-06-09 | 2010-08-10 | International Business Machines Corporation | Masking a boot sequence by providing a dummy processor |
US20080022124A1 (en) * | 2006-06-22 | 2008-01-24 | Zimmer Vincent J | Methods and apparatus to offload cryptographic processes |
US20070300299A1 (en) * | 2006-06-27 | 2007-12-27 | Zimmer Vincent J | Methods and apparatus to audit a computer in a sequestered partition |
US20080046891A1 (en) * | 2006-07-12 | 2008-02-21 | Jayesh Sanchorawala | Cooperative asymmetric multiprocessing for embedded systems |
US7882333B2 (en) * | 2007-11-05 | 2011-02-01 | Dell Products L.P. | Architectural enhancements to CPU microcode load mechanism using inter processor interrupt messages |
US7971098B2 (en) * | 2008-03-24 | 2011-06-28 | Globalfoundries Inc. | Bootstrap device and methods thereof |
US8201163B2 (en) * | 2008-07-16 | 2012-06-12 | Dell Products, Lp | Input/output transaction management during platform initiation |
US8380971B2 (en) * | 2008-12-02 | 2013-02-19 | Dell Products, Lp | Information handling systems including network adapters and methods of booting the information handling systems using boot configuration information from remote sources |
CN101901171B (zh) * | 2009-05-27 | 2012-03-14 | 同方股份有限公司 | 一种计算机数据备份还原软件的使用方法 |
US8458718B2 (en) * | 2009-08-27 | 2013-06-04 | The Boeing Company | Statically partitioning into fixed and independent systems with fixed processing core |
US8726002B2 (en) * | 2010-02-02 | 2014-05-13 | Dell Products L.P. | Embedded managed system services repository |
US8522066B2 (en) * | 2010-06-25 | 2013-08-27 | Intel Corporation | Providing silicon integrated code for a system |
EP2482220A1 (en) * | 2011-01-27 | 2012-08-01 | SafeNet, Inc. | Multi-enclave token |
DE102011102425A1 (de) | 2011-05-24 | 2012-11-29 | Heidelberger Druckmaschinen Ag | Simultanes Softwareupdate |
JP6063941B2 (ja) * | 2011-08-30 | 2017-01-18 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. | システム管理要求のための仮想高特権モード |
US10325297B2 (en) | 2011-11-28 | 2019-06-18 | Dell Products, Lp | Method for comparing sales performance of web sites and a system therefor |
WO2013137879A1 (en) * | 2012-03-15 | 2013-09-19 | Hewlett-Packard Development Company , L.P. | First and second housing and a mass storage device |
US9110761B2 (en) * | 2012-06-27 | 2015-08-18 | Microsoft Technology Licensing, Llc | Resource data structures for firmware updates |
US8972973B2 (en) | 2012-06-27 | 2015-03-03 | Microsoft Technology Licensing, Llc | Firmware update discovery and distribution |
US9235404B2 (en) | 2012-06-27 | 2016-01-12 | Microsoft Technology Licensing, Llc | Firmware update system |
US9110731B1 (en) | 2012-08-15 | 2015-08-18 | Xiotech Corporation | Hard allocation of resources partitioning |
US9244874B2 (en) * | 2013-06-14 | 2016-01-26 | National Instruments Corporation | Selectively transparent bridge for peripheral component interconnect express bus systems |
US9507404B2 (en) | 2013-08-28 | 2016-11-29 | Via Technologies, Inc. | Single core wakeup multi-core synchronization mechanism |
US9792112B2 (en) | 2013-08-28 | 2017-10-17 | Via Technologies, Inc. | Propagation of microcode patches to multiple cores in multicore microprocessor |
US9465432B2 (en) | 2013-08-28 | 2016-10-11 | Via Technologies, Inc. | Multi-core synchronization mechanism |
US9411605B2 (en) * | 2013-08-29 | 2016-08-09 | Samsung Electronics Co., Ltd. | Device-less and system agnostic unified extensible firmware interface (UEFI) driver |
US9563457B2 (en) | 2013-11-18 | 2017-02-07 | Bitdefender IPR Management Ltd. | Enabling a secure environment through operating system switching |
CN104714844B (zh) * | 2013-12-17 | 2018-06-26 | 华为技术有限公司 | 轻量级操作系统部署方法及装置 |
CN104714843B (zh) * | 2013-12-17 | 2018-06-15 | 华为技术有限公司 | 多内核操作系统实例支持多处理器的方法及装置 |
CN105335227B (zh) * | 2014-06-19 | 2019-01-08 | 华为技术有限公司 | 一种节点内的数据处理方法、装置和系统 |
CN106462548B (zh) * | 2014-06-24 | 2020-06-16 | 英特尔公司 | 固件传感器层 |
CN105335228B (zh) * | 2014-06-30 | 2018-12-07 | 华为技术有限公司 | 一种内存变更处理方法,及操作系统 |
CN104407852B (zh) * | 2014-11-05 | 2017-09-29 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种基于代码隔离的嵌入式软件构建方法和调用方法 |
CN106339232A (zh) * | 2015-07-10 | 2017-01-18 | 深圳市蓝魔数码科技有限公司 | 一种移动终端的启动方法及移动终端 |
US10133504B2 (en) | 2016-04-06 | 2018-11-20 | Futurewei Technologies, Inc. | Dynamic partitioning of processing hardware |
US9965315B1 (en) * | 2016-06-17 | 2018-05-08 | Rockwell Collins, Inc. | Multi-core guest operating system loading approach |
US10586048B2 (en) * | 2016-06-23 | 2020-03-10 | Vmware, Inc. | Efficient reboot of an operating system |
US10139876B2 (en) | 2016-06-23 | 2018-11-27 | Vmware Inc. | Efficient reboot of an operating system executed in a virtual machine |
CN106293620B (zh) * | 2016-08-09 | 2019-05-14 | 浪潮电子信息产业股份有限公司 | intel平台检测Flash Rom中参数的方法 |
CN106897229A (zh) * | 2017-02-28 | 2017-06-27 | 郑州云海信息技术有限公司 | 一种硬盘分区方法及系统 |
US10915331B2 (en) * | 2017-08-04 | 2021-02-09 | Qualcomm Incorporated | Partitioning flash and enabling flexible boot with image upgrade capabilities |
CN110134443A (zh) * | 2018-02-08 | 2019-08-16 | 联想企业解决方案(新加坡)有限公司 | 在计算设备中执行附件的选项rom的方法和设备 |
US20200004522A1 (en) * | 2018-06-27 | 2020-01-02 | Hewlett Packard Enterprise Development Lp | Selective download of a portion of a firmware bundle |
US10949111B2 (en) * | 2018-11-28 | 2021-03-16 | Red Hat Israel, Ltd. | Updating operating system images of inactive compute instances |
US11531627B2 (en) | 2019-03-08 | 2022-12-20 | International Business Machines Corporation | Secure storage isolation |
US11487906B2 (en) | 2019-03-08 | 2022-11-01 | International Business Machines Corporation | Storage sharing between a secure domain and a non-secure entity |
US11640361B2 (en) | 2019-03-08 | 2023-05-02 | International Business Machines Corporation | Sharing secure memory across multiple security domains |
CN111142955B (zh) * | 2019-12-31 | 2021-07-16 | 联想(北京)有限公司 | 一种信息处理方法及装置 |
CN113377566B (zh) * | 2021-06-22 | 2024-07-05 | 新华三技术有限公司合肥分公司 | 一种基于uefi的服务器启动方法、装置及存储介质 |
WO2024072470A1 (en) * | 2022-09-28 | 2024-04-04 | Altiostar Networks India Private Limited | Automated upgrade and fallback across multiple operating system instances |
CN117707626A (zh) * | 2022-10-09 | 2024-03-15 | 荣耀终端有限公司 | 系统启动方法及电子设备 |
CN116028129B (zh) * | 2023-03-29 | 2023-06-13 | 湖南博匠信息科技有限公司 | 一种基于飞腾平台的uefi快速启动方法及飞腾平台 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101142553A (zh) * | 2003-06-25 | 2008-03-12 | 英特尔公司 | 跨越多个计算平台的操作系统不可知的资源共享 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6094699A (en) | 1998-02-13 | 2000-07-25 | Mylex Corporation | Apparatus and method for coupling devices to a PCI-to-PCI bridge in an intelligent I/O controller |
US6314501B1 (en) * | 1998-07-23 | 2001-11-06 | Unisys Corporation | Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory |
US6532538B1 (en) | 2000-02-17 | 2003-03-11 | International Business Machines Corporation | Method and system for supporting multiple operating systems on the same disk running on different computers at the same time |
US6996706B1 (en) | 2000-02-19 | 2006-02-07 | Powerquest Corporation | Booting an operating system or running other pre-boot code from a file stored under a different operating system |
US6973517B1 (en) | 2000-08-31 | 2005-12-06 | Hewlett-Packard Development Company, L.P. | Partition formation using microprocessors in a multiprocessor computer system |
US7065761B2 (en) | 2001-03-01 | 2006-06-20 | International Business Machines Corporation | Nonvolatile logical partition system data management |
US6957435B2 (en) | 2001-04-19 | 2005-10-18 | International Business Machines Corporation | Method and apparatus for allocating processor resources in a logically partitioned computer system |
US20030009654A1 (en) | 2001-06-29 | 2003-01-09 | Nalawadi Rajeev K. | Computer system having a single processor equipped to serve as multiple logical processors for pre-boot software to execute pre-boot tasks in parallel |
US7165137B2 (en) * | 2001-08-06 | 2007-01-16 | Sandisk Corporation | System and method for booting from a non-volatile application and file storage device |
US20030115443A1 (en) | 2001-12-18 | 2003-06-19 | Cepulis Darren J. | Multi-O/S system and pre-O/S boot technique for partitioning resources and loading multiple operating systems thereon |
ATE322717T1 (de) | 2002-06-28 | 2006-04-15 | Hewlett Packard Co | Betriebssystemselecktor und datenplattenspeicher |
TW573275B (en) * | 2002-08-30 | 2004-01-21 | Acer Inc | Recovery method and device of computer operating system and method for building computer system with BTC model |
US8578130B2 (en) * | 2003-03-10 | 2013-11-05 | International Business Machines Corporation | Partitioning of node into more than one partition |
US7076634B2 (en) * | 2003-04-24 | 2006-07-11 | International Business Machines Corporation | Address translation manager and method for a logically partitioned computer system |
US7089411B2 (en) * | 2003-04-25 | 2006-08-08 | International Business Machines Corporation | Method and apparatus for providing device information during runtime operation of a data processing system |
US7913226B2 (en) * | 2003-10-01 | 2011-03-22 | Hewlett-Packard Development Company, L.P. | Interposing a virtual machine monitor and devirtualizing computer hardware at runtime |
US7222203B2 (en) | 2003-12-08 | 2007-05-22 | Intel Corporation | Interrupt redirection for virtual partitioning |
US7162560B2 (en) | 2003-12-31 | 2007-01-09 | Intel Corporation | Partitionable multiprocessor system having programmable interrupt controllers |
US7249208B2 (en) * | 2004-05-27 | 2007-07-24 | International Business Machines Corporation | System and method for extending the cross-memory descriptor to describe another partition's memory |
US7406583B2 (en) | 2004-06-25 | 2008-07-29 | Intel Corporation | Autonomic computing utilizing a sequestered processing resource on a host CPU |
US20060010276A1 (en) * | 2004-07-08 | 2006-01-12 | International Business Machines Corporation | Isolation of input/output adapter direct memory access addressing domains |
US8914606B2 (en) * | 2004-07-08 | 2014-12-16 | Hewlett-Packard Development Company, L.P. | System and method for soft partitioning a computer system |
US8713180B2 (en) * | 2005-06-22 | 2014-04-29 | Cisco Technology, Inc. | Zero-copy network and file offload for web and application servers |
US7441112B2 (en) * | 2005-06-30 | 2008-10-21 | Intel Corporation | Offloading the processing of a network protocol stack |
US7802081B2 (en) * | 2005-09-30 | 2010-09-21 | Intel Corporation | Exposed sequestered partition apparatus, systems, and methods |
US20070088857A1 (en) * | 2005-09-30 | 2007-04-19 | Travis Schluessler | Using sequestered memory for host software communications |
US7716465B2 (en) * | 2005-11-14 | 2010-05-11 | Intel Corporation | Method and apparatus for maintaining a partition when booting another partition while an address line is disabled |
US7418586B2 (en) * | 2005-12-05 | 2008-08-26 | Intel Corporation | Method and apparatus for assigning devices to a partition |
US7640426B2 (en) * | 2006-03-31 | 2009-12-29 | Intel Corporation | Methods and apparatus to manage hardware resources for a partitioned platform |
US7610481B2 (en) | 2006-04-19 | 2009-10-27 | Intel Corporation | Method and apparatus to support independent systems in partitions of a processing system |
-
2006
- 2006-04-19 US US11/407,425 patent/US7610481B2/en active Active
-
2007
- 2007-04-16 CN CN2007800135990A patent/CN101421700B/zh active Active
- 2007-04-16 CN CN201310111174.0A patent/CN103257860B/zh active Active
- 2007-04-16 WO PCT/US2007/009337 patent/WO2007123885A1/en active Application Filing
- 2007-04-16 EP EP07755567.0A patent/EP2027531B1/en active Active
-
2009
- 2009-10-26 US US12/589,630 patent/US8380973B2/en active Active
-
2013
- 2013-02-07 US US13/761,413 patent/US9189246B2/en active Active
- 2013-07-11 US US13/939,481 patent/US10120695B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101142553A (zh) * | 2003-06-25 | 2008-03-12 | 英特尔公司 | 跨越多个计算平台的操作系统不可知的资源共享 |
Also Published As
Publication number | Publication date |
---|---|
CN103257860B (zh) | 2017-12-26 |
EP2027531A1 (en) | 2009-02-25 |
US20100131746A1 (en) | 2010-05-27 |
CN103257860A (zh) | 2013-08-21 |
CN101421700A (zh) | 2009-04-29 |
US8380973B2 (en) | 2013-02-19 |
EP2027531A4 (en) | 2009-08-05 |
EP2027531B1 (en) | 2016-03-16 |
US20170046172A9 (en) | 2017-02-16 |
WO2007123885A1 (en) | 2007-11-01 |
US20070250691A1 (en) | 2007-10-25 |
US9189246B2 (en) | 2015-11-17 |
US20130254522A1 (en) | 2013-09-26 |
US10120695B2 (en) | 2018-11-06 |
US20140223156A1 (en) | 2014-08-07 |
US7610481B2 (en) | 2009-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101421700B (zh) | 支持处理系统的分区中的独立操作系统的方法和设备 | |
US9189291B2 (en) | Sharing a kernel of an operating system among logical partitions | |
CN1318970C (zh) | 对多体系组件软件的系统管理模式加载程序和执行机制 | |
US8301917B2 (en) | Method and apparatus for managing power from a sequestered partition of a processing system | |
CN101142553B (zh) | 跨越多个计算平台的操作系统不可知的资源共享 | |
US7647509B2 (en) | Method and apparatus for managing power in a processing system with multiple partitions | |
US20150081829A1 (en) | Out-of-band replicating bios setting data across computers | |
CN101091161B (zh) | 用于协作访客固件的设备和方法 | |
CN100353320C (zh) | 引导过程 | |
US8041932B2 (en) | Method and apparatus for assigning devices to a partition | |
CN101283333A (zh) | 用于在引导一个分区时维持另一个分区的方法和装置 | |
CN109426527B (zh) | 在uefi固件及作业系统间分享蓝牙数据的电脑系统及其方法 | |
US20030051114A1 (en) | Executing large device firmware programs | |
Rothman et al. | Harnessing the UEFI Shell: Moving the platform beyond DOS | |
US20120284711A1 (en) | Method and Arrangement for Configuring a Resource for a Virtual Runtime Environment | |
US11829772B2 (en) | Heterogeneous compute domains with an embedded operating system in an information handling system | |
CN110941452B (zh) | 一种配置方法、bios芯片和电子设备 | |
JP5029076B2 (ja) | カーネル起動方法、カーネルソースコード最適化方法、カーネルソースコード最適化装置及びプログラム | |
JP2006012158A (ja) | デジタルデバイスのファームウェアとオペレーティングシステムとの間の拡張可能インターラクションを提供する方法および装置 | |
Zhang | Implementation of extensible firmware interface: performance test |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |