CN101283333B - 用于在引导一个分区时维持另一个分区的方法和装置 - Google Patents
用于在引导一个分区时维持另一个分区的方法和装置 Download PDFInfo
- Publication number
- CN101283333B CN101283333B CN2006800378589A CN200680037858A CN101283333B CN 101283333 B CN101283333 B CN 101283333B CN 2006800378589 A CN2006800378589 A CN 2006800378589A CN 200680037858 A CN200680037858 A CN 200680037858A CN 101283333 B CN101283333 B CN 101283333B
- Authority
- CN
- China
- Prior art keywords
- subregion
- partition
- address wire
- place
- module
- 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.)
- Expired - Fee Related
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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
Abstract
在具有主分区和隔离分区的处理系统中,主分区在调用主分区的操作系统(OS)引导加载程序之前向隔离分区发出中断。隔离分区然后可进入中断处理程序。隔离分区进入中断处理程序后,该处理系统的一地址线可以被禁用,并且非隔离分区的OS引导加载程序可以被调用。然后该隔离分区可以确定该地址线是否已被重新启用。隔离分区可以继续留在中断处理程序中,直到该地址线被重新启用。还描述和声明了其他实施例。
Description
技术领域
本发明通常涉及数据处理领域,更特别地,涉及在处理系统中支持多个分区的方法及相关装置。
背景技术
在典型的遗留(legacy)数据处理系统中,固件提供了当系统正加电或已被重置时、而操作系统被引导(boot)之前对系统进行控制的机器指令。即,固件控制OS前或引导前的操作。固件也可以控制OS被加载之后的某些操作,例如用来处理某些硬件事件和/或系统中断的操作。固件可以通过一组统称作基本输入/输出系统(BIOS)的例程来处理引导前和引导后的操作。因此BIOS提供了在系统硬件组件与例如OS这样的软件组件之间的接口。
对于本公开来说,术语“固件”被用来表示可以在处理系统引导至OS之前在该处理系统中执行的软件,可以提供允许OS或其他组件与处理系统硬件进行交互的运行时服务的软件,以及其他类似类型的软件组件。传统上,固件通常被存储在非易失性存储器中。不过,最近处理系统已经发展到了将固件存储在其他类型的存储设备中,或者从其他类型的存储设备中获得固件。
此外,不久以前,发布了平台固件和例如操作系统这样的上层软件之间的接口的一种新的模型。该模型称为可扩展固件接口(EFI)。可以从www.intel.com/technology/efi/main_specification.htm处获得2002年12月1日的1.10版本的EFI规范。EFI规范定义了一组由底层平台固件提供的标准接口和结构。这些接口和结构可以用于以下任务,例如加载额外的固件、运行引导前应用、引导OS,以及在OS被引导后提供运行时服务。
在EFI规范颁布之前或者不考虑EFI规范而创建的BIOS可以称为遗留BIOS。类似地,设计为与遗留BIOS一起工作的OS可以称作遗留OS或者不符合EFI的OS(non-EFI-compliant OS)。例如,WindowsOS可以被认为是遗留OS。相反地,能够与符合EFI的BIOS一起工作的OS可以称为符合EFI的OS。
对于本公开来说,取决于所考虑的特定实现,术语“处理单元”可以表示处理系统中的各个中央处理单元(CPU)、CPU中的处理核心、例如超线程(HT)这样的逻辑处理单元、或者任何类似的处理资源或作为一个单元协同操作的资源集合。在存在着多个处理单元的系统中,操作系统(OS)通常拥有所有的处理单元。
不过,在一些处理系统中,有可能通过修改BIOS生成的高级配置与电源接口(ACPI)表来对OS隐藏一个或多个处理单元。在一些系统中,还有可能对OS隐藏一部分或者多个部分的随机存取存储器(RAM)。另外,在一些系统中,若干外围和集成设备还可以通过向系统的输入/输出(I/O)控制中心(ICH)中的寄存器写入位屏蔽(bit masks)来实现隐藏。这些技术可以用来在单个处理系统内创建两个(或更多)执行环境。OS可以在其中一个环境中运行,该环境称为“主分区”。其他环境,称为“隔离分区(sequesteredpartition)”,可以是对OS不可见的。隔离分区可以用于各种各样的应用,例如I/O卸载、平台可管理性、以及故障预测等。
在典型的处理系统中,BIOS通过调用称为OS引导加载程序(loader)的程序来开始引导OS。由于历史的原因,针对不符合EFI的OS的OS引导加载程序通常期望或者要求BIOS在调用该加载程序前将处理器切换至实模式(real mode)并且将21号地址线禁用。由于例如键盘控制器这样的设备上的引脚可能从0开始编号,21号地址线实际上可能耦合到标为“A20”的引脚。
在具有多个分区的处理系统中,如果主分区运行在CPU 1上而隔离分区运行在CPU 2上,则将CPU 1切换至实模式可能不会影响隔离分区,因为各CPU能够独立切换模式。不过,键盘控制器的A20屏蔽输出引脚可能与所有CPU相连。从而,激活该引脚可排除所有CPU访问存储器奇数兆字节(MB)。相反地,如果A20引脚有效,所有对存储器奇数MB中地址的访问都可能实际上会被映射到存储器偶数MB中对应的地址。因此,如果当A20引脚为有效或者21号地址线被禁用时隔离分区要执行存储器奇数MB中的代码或者访问其中的数据,处理系统可能会将存储器引用映射到不正确的存储单元(location),而这可能会最终导致系统错误或系统崩溃。
发明内容
本申请涉及一种用于在多分区处理系统中在引导第二分区时维持第一分区的方法,该方法包括:将中断从所述第二分区发送到所述第一分区;响应于接收到所述中断,进入所述第一分区的中断处理程序;在确定所述第一分区已进入所述中断处理程序之后,在所述第二分区处禁用所述多分区处理系统的一地址线;在所述第二分区处调用操作系统(OS)引导加载程序;在所述第二分区处启用所述地址线;以及在确定所述第二分区已启用所述地址线之后,退出所述第一分区的中断处理程序。
其中,禁用所述多分区处理系统的一地址线的操作包括:禁用21号地址线;以及将所述第二分区的处理单元转换至实模式。
其中,确定所述第二分区已启用所述地址线的操作包括:在所述第一分区处确定所述第二分区的处理单元正在保护模式下执行。
其中,进入所述第一分区的中断处理程序的操作还包括:在所述第一分区处设置预定存储单元的内容;以及确定所述第二分区已启用所述地址线的操作包括:在所述第一分区处确定所述预定存储单元的内容已被更改。
其中:所述中断是针对所述第一分区的系统管理中断(SMI);和所述第一分区的中断处理程序包括系统管理中断处理程序。
其中所述第一分区是隔离分区;所述第二分区是非隔离分区。
所述方法还可以包括:在启用所述地址线之后,在所述第二分区处修改预定存储单元处的数据,所修改的数据用于指示所述第二分区已启用所述地址线。
本申请还涉及一种用于在多分区处理系统中在引导第二分区时维持第一分区的装置,所述装置包括:发送模块,用于将中断从所述第二分区发送到所述第一分区;进入模块,用于响应于接收到所述中断,进入所述第一分区的中断处理程序;禁用模块,用于在确定所述第一分区已进入所述中断处理程序之后,在所述第二分区处禁用所述多分区处理系统的一地址线;调用模块,用于在所述第二分区处调用操作系统(OS)引导加载程序;启用模块,用于在所述第二分区处启用所述地址线;以及退出模块,用于在确定所述第二分区已启用所述地址线之后,退出所述第一分区的中断处理程序。
其中,所述禁用模块包括:用于禁用21号地址线的模块;以及用于将所述第二分区的处理单元转换至实模式的模块。
其中,确定所述第二分区已启用所述地址线的操作包括:在所述第一分区处确定所述第二分区的处理单元正在保护模式下执行。
其中,所述进入模块还包括:用于在所述第一分区处设置预定存储单元的内容的模块;以及确定所述第二分区已启用所述地址线的操作包括:在所述第一分区处确定所述预定存储单元的内容已被更改。
其中:所述中断是针对所述第一分区的系统管理中断(SMI);和所述第一分区的中断处理程序包括系统管理中断处理程序。
其中所述第一分区是隔离分区;所述第二分区是非隔离分区。
附图说明
从所附的权利要求、以下对一个或多个示例性实施例的详细描述以及对应的附图中,本发明的特性及优势将变得显而易见,在附图中:
图1是描述本发明示例性实施例的某些方面可在其中被实现的适当的数据处理环境的方框图;
图2是描述根据本发明示例性实施例的某些操作或事件的示例性时间表的方框图;
图3和图4是描述根据本发明示例性实施例当引导主分区时维持隔离分区的过程的各个方面的流程图。
具体实施方式
本公开内容描述了关于当主分区引导不符合EFI的OS时防止隔离分区出现故障的系统和方法的一个或多个示例性实施例。一个或多个公开的实施例实现该功能利用了以下事实,即用来处理例如系统管理中断(SMI)这样的信号的程序位于存储器首兆字节(MB)。特别地,通过强制隔离分区留在其SMI处理程序(handler)中,直到主分区重新启用21号地址线为止,一个或多个公开的实施例减少或者消除了发生故障的可能。
图1是描述了适当的数据处理环境12的方框图,本发明示例性实施例的某些方面可以在其中实现。数据处理环境12包括处理系统20,该系统包括多种硬件组件80和软件组件82。硬件组件可以包括,例如,一个或多个CPU 22-23,其直接或间接地以通信方式通过系统总线24或其他通信路径或介质耦合到各种其他组件。一个或多个CPU 22-23可以包括一个或多个处理核心,而一个或多个处理核心可以支持同时执行两个或更多的线程,例如HT。
此处所使用的术语“处理系统”以及“数据处理系统”旨在广泛地包括单个机器、或者由以通信方式耦合的机器或共同运行的设备所组成的系统。处理系统的例子包括但不限于:分布式计算系统、超级计算机、高性能计算系统、计算集群、大型计算机、袖珍型计算机、客户机-服务器系统、个人计算机(PC)、工作站、服务器、便携式计算机、膝上型计算机、平板计算机、个人数字助理(PDA)、电话机、手持设备、例如音频和/或视频设备这样的娱乐设备、以及其他处理或传输信息的设备。
可以通过来自传统输入设备(例如键盘、如鼠标这样的定点设备等)的输入来至少部分地控制处理系统20。处理系统20还可以对从其他处理系统或者其他输入源或信号接收到的指示或者其他类型信息作出响应。处理系统20可以利用到一个或多个远程数据处理系统70的一个或多个连接,例如通过网络接口控制器(NIC)34、调制解调器、或者其他通信端口或耦合。处理系统可以通过物理的和/或逻辑的网络72进行互连,所述网络例如局域网(LAN)、广域网(WAN)、内联网、互联网等。涉及网络72的通信可以利用各种有线的和/或无线的短程或长程的载波和协议,包括射频(RF)、卫星、微波,电气与电子工程师协会(IEEE)802.11、802.16、802.20、蓝牙、光学、红外、电缆、激光等。
在处理系统20内,处理器22-23可以以通信方式耦合到一个或多个易失性或非易失性的数据存储设备,例如RAM 26,只读存储器(ROM)28,诸如电子集成驱动(IDE)或小型计算机系统接口(SCSI)硬盘驱动器这样的大容量存储设备30,以及/或其他设备或媒体,例如软盘、光存储、磁带、闪速存储器、记忆棒、紧凑型闪存(CF)卡、数字视频光盘(DVD)等等。对于本公开来说,术语“ROM”可一般地用于指非易失性存储设备,例如可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、flashROM、闪速存储器等。处理器22-23还可以以通信方式耦合到其他组件,例如视频控制器、SCSI控制器、网络控制器、通用串行总线(USB)控制器、I/O端口32、输入设备(例如键盘、鼠标、照相机)等等。处理系统20还可以包括一个或多个桥接器或控制中心36,例如存储器控制中心、I/O控制中心、外围组件互连(PCI)根桥接器等等,来以通信方式耦合系统组件。这里使用的术语“总线”包括可以被多于两个设备共享的路径,以及点对点路径。
某些组件,例如NIC 34,可以作为具有用于同总线通信的接口(例如,PCI连接器)的适配卡来实现。或者,NIC 34和其他设备可以采用下列组件作为嵌入式控制器来实现,所述组件例如可编程或不可编程逻辑器件或阵列、专用集成电路(ASIC)、嵌入式计算机、智能卡等等。
在这里本发明可以关于或结合某些数据来描述,所述数据例如指令、函数、过程、数据结构、应用程序、配置设置等。当数据被机器访问时,机器可以通过执行任务、定义抽象数据类型或其他底层硬件上下文、和/或执行其他操作来作出响应,如下面更详细所描述的。数据可以存储在易失性的和/或非易失性的数据存储装置中。对于本公开来说,术语“程序”可一般地用于涵盖广阔范围的软件构造,包括应用、例程、方法、模块、驱动程序、子程序、进程、以及其他类型的软件组件。
例如,数据存储设备30和/或RAM 26可以包括多种指令集,其被执行时完成各种操作。这样的指令集一般地可以称作软件。
在该示例性实施例中,处理系统20使用例如上面所描述的技术来创建两个不同的分区:主分区50和隔离分区52。在替代性的实施例中,处理系统可以具有多于一个的主分区和/或多于一个的隔离分区。如图1中所示,在该示例性实施例中,程序或者软件组件82可以针对每个分区包含固件40的不同实例。每个分区还可以接收自己的OS和自己的应用。例如,在该示例性实施例中,每个分区均从ROM 30接收固件代码40的一部分或全部。特别地,处理系统20将固件40的一个实例(即固件42)加载到主分区50,将其另一个实例(即固件44)加载到隔离分区52。主分区50的OS60可以与隔离分区52的OS 62相同或者不同。在该示例性实施例中,固件40包括SMI处理程序46,其在隔离分区52的固件44中被实例化为SMI处理程序48。
图2是方框图,其描述了根据本发明的示例性实施例的某些操作或事件的示例性时间表。特别地,时间表90描述了主分区50的事件的非穷举序列,而时间表92描述了相应的隔离分区52的事件的非穷举序列。所描述的事件和操作与安全地引导主分区50上的不符合EFI的OS(例如OS 60)的示例性步骤序列有关。
图1的方框图说明了OS 60在主分区50中执行,而OS 62在隔离分区52中执行。不过,图2中的时间表,开始于主分区50已引导至OS 60之前,且开始于隔离分区52已引导至OS 62之后或者之前。如时刻t1所示,在准备调用主分区50的OS引导加载程序时,固件42向隔离分区52发送SMI。例如,固件42可以向运行隔离分区的处理器的高级编程接口控制器(APIC)标识符(ID)发送例如处理器间中断(IPI)这样的定向SMI。然后主分区50可以等待隔离分区52已实际上进入SMI处理程序48的指示。例如,如时刻t3所示,SMI处理程序48可以设置一个可被主分区50读取的标志,来表示隔离分区52已进入其SMI处理程序。这样的标志可以处于RAM 26、芯片组寄存器、闪存中,或者处于平台中任何其他可以由隔离分区52写入并被主分区50读取的数据存储组件中。
不过,如时刻t2所示,在隔离分区52表示其已进入SMI处理程序48之前,SMI处理程序48可以向存储器中预定的存储单元写入预定值。特别地,在一个实施例中,隔离分区52将预定值写入某存储单元,其中已知该存储单元在主分区50引导至其OS时将被主分区50的OS修改。例如,隔离分区52可以将预定值0写入存储单元0x100000(1MB)。对于本公开来说,术语“存储单元X”用来方便地标标识隔离分区52将要写入并监视的存储单元,通过该监视来确定主分区50是否已启用21号地址线。
如时刻t4所示,一旦主分区50检测到隔离分区52已经进入其SMI处理程序,主分区50可以停止等待,然后可以将其支持的处理器或处理单元切换至实模式并将21号地址线禁用。同时,如时刻t3和t9之间所示,隔离分区52可以监视其在时刻t2写入的存储单元(即存储单元X),来确定OS 60是否已修改了该存储单元的数据。
切换至实模式并将21号地址线禁用之后,如时刻t6所示,固件42可以调用主分区50的OS引导加载程序。如时刻t7所示,OS引导加载程序然后可以将主分区50的处理单元切换至保护模式,重新启用21号地址线,并将OS 60加载到主分区50中。如时刻t8所示,一旦主分区50开始加载OS 60,OS 60就可以修改存储单元X处的数据。如时刻t9所示,一旦SMI处理程序48检测到存储单元X处的数据已被修改,隔离分区52就可以退出SMI处理程序48。这样,如期间d1所示,隔离分区52从其从主分区50接收到SMI时开始直到其确定主分区已启用21号地址线后为止,将一直处于SMI处理程序48中。在此上下文中,术语“确定”表示SMI处理程序通过调查、推理、计算或者发现而作出判定。例如,SMI处理程序可以基于对处理系统相关方面的发现,例如发现存储单元X处的数据是否改变,或者发现主分区中OS是否正在保护模式下执行,来确定21号地址线是否已启用。
处理系统20可以使用例如前面所描述的操作来防止隔离分区52访问由于地址线被禁用而可能会被不正确映射的存储单元或者地址。一旦主分区50修改了存储单元X并且隔离分区52已退出其SMI处理程序,处理系统20就可以恢复正常执行。
图3和图4是描述根据本发明的示例性实施例在引导主分区时维持隔离分区的过程的各个方面的流程图。图3描述了主分区50在上述过程中的角度,而图4描述了隔离分区52在上述过程中的角度。因此,图3和图4中所描述的操作一般与图2中关于时间表90和92所描述的操作分别对应。
图3从处理系统准备将OS引导至主分区50中开始。在方框202中,处理系统20中的固件确定主分区50是否要引导至需要禁用21号地址线的OS。这样的OS可以被称为遗留OS或者不符合EFI的OS。此外,对于本公开来说,术语“遗留OS”指任何在该OS的引导加载程序被调用之前要求禁用一条或多条地址线的OS。如果主分区50要引导至符合EFI的OS,则如方框204所示,处理系统可以开始该OS的引导过程而无需特殊操作。然而,如果主分区50要引导至遗留OS,则如方框206所示,主分区50可以向隔离分区52发送SMI。
然后,如方框210所示,主分区50可以等待,直到其检测到隔离分区52已经进入其SMI处理程序的指示。在检测到隔离分区52已进入其SMI处理程序之后,如方框212、214以及前面描述所示,主分区50可以切换至实模式,禁用21号地址线,并启动OS引导加载程序。如方框216和218所示,OS引导加载程序然后可以切换至保护模式,启用21号地址线,并加载OS 60。如方框220所示,OS 60然后可以修改存储单元X。然后图3的过程便可结束。
图4的过程以固件44及可能还有OS 62被加载到隔离分区52开始。如方框240和250所示,当隔离分区52接收到SMI时,SMI处理程序48确定该SMI是否来自主分区50并指示A20门将被关闭。如果该SMI并不指示主分区50将要禁用21号地址线,则如方框252所示,该中断可以以某种程度常规的方式来处理。
另一方面,如果SMI的确指示主分区50将要禁用21号地址线,则如方框254、256以及前面描述所示,SMI处理程序48可以响应于该SMI而将预定值写入存储单元X,然后可以设置标志来向主分区50指示隔离分区52已进入SMI处理程序48。如方框260所示,隔离分区52然后可以留在SMI处理程序48中,直到SMI处理程序48检测到存储单元X内容的变化。当检测到这样的变化后,如方框262所示,隔离分区52可以退出SMI处理程序48。然后图4的过程便可结束。
上述说明涉及隔离分区,其通过监视存储单元X的变化来确定离开SMI处理程序是否安全。上述说明还涉及主分区,其通过查询隔离分区设置的标志来确定隔离分区是否已进入其SMI处理程序。不过,任何其他适当的技术都可以在其他实施例中用来进行这样的判定。
例如,各个实施例可以使用一个或者多个下面的技术,让隔离分区来确定离开SMI处理程序是否安全:
·监视存储器、处理器、芯片组寄存器、设备等中的某个存储单元的状态,当OS将处理器切换至保护模式后该存储单元的内容将被修改。一旦OS将其处理单元切换至保护模式后,就可以安全地假定21号地址线已被重新启用。
·主分区的OS中的定制驱动程序可以向隔离分区发送信号。例如,隔离处理器中的SMI处理程序可以重新启用中断,可以创建中断重定向表(IDT),可以实现IPI处理程序,并且定制驱动程序可以向隔离处理器发送IPI。
类似地,各个实施例中主分区可以使用任何适当的技术来确定隔离分区是否已进入其SMI处理程序。
如所描述的,处理系统在主分区引导遗留OS的同时可以维持隔离分区。并且,如前面所指出的,处理系统可以包含多于一个主分区、多于一个隔离分区、或者多个主分区和隔离分区。这样的处理系统在一个或多个主分区引导遗留OS的同时可以维持一个或多个隔离分区。对于本公开来说,任何引导至遗留OS的分区均可以称作主分区、遗留分区、或者非隔离分区。
根据这里所述和所示的原理和示例性实施例,可以理解的是,可以对所述的实施例在安排和细节上作出修改,而不背离这种原理。例如,尽管前面描述了SMI处理程序,但可替代的实施例可以利用其它类型的中断或事件处理程序来防止隔离分区试图使用可能受被禁用的地址线影响的存储单元。
此外,尽管前面的讨论集中在特定的实施例,但是其他的配置同样是在设想之中的。尽管这里可能使用了例如“在一个实施例中”、“在另一个实施例中”或类似的表达,这些短语通常是用来表示提及可能的实施例,而不是要将本发明限制在特定的实施例配置中。如这里所使用的,这些术语可涉及相同或者不同的实施例,这些实施例又可以组合为其他实施例。
类似地,尽管针对以特定序列执行的特定操作描述了示例性过程,但是可以对这些过程进行许多的修改,而得到本发明许多替代性的实施例。例如,替代性的实施例可以包括使用比所有公开的操作更少操作的过程、使用了额外操作的过程、以不同序列使用了相同操作的过程、以及其中对这里公开的单独操作进行组合、细分、或者更改的过程。
本发明的替代性的实施例还包括编码有用于执行本发明的操作的指令的机器可访问媒体。这样的实施例可以称作程序产品。这种机器可访问媒体可包括但不限于:例如软盘、硬盘、CD-ROM、ROM和RAM这样的存储媒体;以及例如天线、电线、光纤、微波、无线电波和其他电磁或光学载波的通信媒体。从而,指令和其他数据可以以分组、串行数据、并行数据、传播信号等形式通过传输环境或网络进行递送,并可以在分布式环境中使用,以及在本地和/或远程进行存储以便由单个或多处理器机器访问。
也应理解,这里所描述的硬件和软件组件表示功能性要素,所述功能性要素是适度完备的,因此每个要素都可以实质上独立于其他要素而被设计、构造或更新。在替代性的实施例中,许多组件可以以硬件、软件、或软件和硬件的组合来实现,来提供这里所述和所示的功能。执行本发明的操作的硬件、软件、或软件和硬件的组合也可称为逻辑或者控制逻辑。
考虑到可以容易地从这里描述的示例性实施例中获得多种有用的改变,本详细说明仅是说明性的,而不应当被用作限制本发明的范围。因此,本发明所要求保护的,是落入下面的权利要求书范围和实质之内的所有实现、以及所有这些实现的等同物。
Claims (13)
1.一种用于在多分区处理系统中在引导第二分区时维持第一分区的方法,该方法包括:
将中断从所述第二分区发送到所述第一分区;
响应于接收到所述中断,进入所述第一分区的中断处理程序;
在确定所述第一分区已进入所述中断处理程序之后,在所述第二分区处禁用所述多分区处理系统的一地址线;
在所述第二分区处调用操作系统(OS)引导加载程序;
在所述第二分区处启用所述地址线;以及
在确定所述第二分区已启用所述地址线之后,退出所述第一分区的中断处理程序。
2.根据权利要求1所述的方法,其中,禁用所述多分区处理系统的一地址线的操作包括:
禁用21号地址线;以及
将所述第二分区的处理单元转换至实模式。
3.根据权利要求2所述的方法,其中,确定所述第二分区已启用所述地址线的操作包括:
在所述第一分区处确定所述第二分区的处理单元正在保护模式下执行。
4.根据权利要求1所述的方法,其中,
进入所述第一分区的中断处理程序的操作还包括:在所述第一分区处设置预定存储单元的内容;以及
确定所述第二分区已启用所述地址线的操作包括:在所述第一分区处确定所述预定存储单元的内容已被更改。
5.根据权利要求1所述的方法,其中:
所述中断是针对所述第一分区的系统管理中断(SMI);和
所述第一分区的中断处理程序包括系统管理中断处理程序。
6.根据权利要求1所述的方法,其中
所述第一分区是隔离分区;和
所述第二分区是非隔离分区。
7.根据权利要求1所述的方法,其中,所述方法还包括:
在启用所述地址线之后,在所述第二分区处修改预定存储单元处的数据,所修改的数据用于指示所述第二分区已启用所述地址线。
8.一种用于在多分区处理系统中在引导第二分区时维持第一分区的装置,所述装置包括:
发送模块,用于将中断从所述第二分区发送到所述第一分区;
进入模块,用于响应于接收到所述中断,进入所述第一分区的中断处理程序;
禁用模块,用于在确定所述第一分区已进入所述中断处理程序之后,在所述第二分区处禁用所述多分区处理系统的一地址线;
调用模块,用于在所述第二分区处调用操作系统(OS)引导加载程序;
启用模块,用于在所述第二分区处启用所述地址线;以及
退出模块,用于在确定所述第二分区已启用所述地址线之后,退出所述第一分区的中断处理程序。
9.根据权利要求8所述的装置,其中,所述禁用模块包括:
用于禁用21号地址线的模块;以及
用于将所述第二分区的处理单元转换至实模式的模块。
10.根据权利要求9所述的装置,其中,确定所述第二分区已启用所述地址线的操作包括:
在所述第一分区处确定所述第二分区的处理单元正在保护模式下执行。
11.根据权利要求8所述的装置,其中,
所述进入模块还包括:用于在所述第一分区处设置预定存储单元的内容的模块;以及
确定所述第二分区已启用所述地址线的操作包括:在所述第一分区处确定所述预定存储单元的内容已被更改。
12.根据权利要求8所述的装置,其中:
所述中断是针对所述第一分区的系统管理中断(SMI);和
所述第一分区的中断处理程序包括系统管理中断处理程序。
13.根据权利要求8所述的装置,其中
所述第一分区是隔离分区;和
所述第二分区是非隔离分区。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/273,817 | 2005-11-14 | ||
US11/273,817 US7716465B2 (en) | 2005-11-14 | 2005-11-14 | Method and apparatus for maintaining a partition when booting another partition while an address line is disabled |
PCT/US2006/043640 WO2007058887A2 (en) | 2005-11-14 | 2006-11-09 | Method and apparatus for maintaining a partition when booting another partition |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101283333A CN101283333A (zh) | 2008-10-08 |
CN101283333B true CN101283333B (zh) | 2012-07-11 |
Family
ID=37709573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800378589A Expired - Fee Related CN101283333B (zh) | 2005-11-14 | 2006-11-09 | 用于在引导一个分区时维持另一个分区的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (2) | US7716465B2 (zh) |
EP (1) | EP1949231B1 (zh) |
CN (1) | CN101283333B (zh) |
WO (1) | WO2007058887A2 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 |
US8365294B2 (en) * | 2006-06-30 | 2013-01-29 | Intel Corporation | Hardware platform authentication and multi-platform validation |
US7802042B2 (en) * | 2007-12-28 | 2010-09-21 | Intel Corporation | Method and system for handling a management interrupt event in a multi-processor computing device |
US20090172232A1 (en) * | 2007-12-28 | 2009-07-02 | Zimmer Vincent J | Method and system for handling a management interrupt event |
CN102279836B (zh) * | 2011-08-24 | 2013-07-24 | 浪潮集团有限公司 | 一种物理多分区计算机体系结构的时序控制方法 |
US20140189184A1 (en) * | 2012-12-28 | 2014-07-03 | Nicholas Adams | Creating dynamic fixed functionality for a hardware device system |
CN112507399B (zh) * | 2020-12-08 | 2021-09-14 | 福州富昌维控电子科技有限公司 | 一种固件和用户程序隔离保护方法及终端 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 |
US20050144434A1 (en) * | 2003-12-31 | 2005-06-30 | Taylor Billy K. | Partitionable multiprocessor system |
US6934833B2 (en) * | 2002-06-28 | 2005-08-23 | Hewlett-Packard Development Company, L.P. | Operating system selector and data storage drive |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5497497A (en) * | 1989-11-03 | 1996-03-05 | Compaq Computer Corp. | Method and apparatus for resetting multiple processors using a common ROM |
US5524209A (en) * | 1995-02-27 | 1996-06-04 | Parker; Robert F. | System and method for controlling the competition between processors, in an at-compatible multiprocessor array, to initialize a test sequence |
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 |
US6473853B1 (en) * | 1999-06-21 | 2002-10-29 | Intel Corporation | Method and apparatus for initializing a computer system that includes disabling the masking of a maskable address line |
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 |
US7222203B2 (en) | 2003-12-08 | 2007-05-22 | Intel Corporation | Interrupt redirection for virtual partitioning |
US7406583B2 (en) | 2004-06-25 | 2008-07-29 | Intel Corporation | Autonomic computing utilizing a sequestered processing resource on a host CPU |
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 |
-
2005
- 2005-11-14 US US11/273,817 patent/US7716465B2/en not_active Expired - Fee Related
-
2006
- 2006-11-09 WO PCT/US2006/043640 patent/WO2007058887A2/en active Application Filing
- 2006-11-09 EP EP06827668.2A patent/EP1949231B1/en not_active Not-in-force
- 2006-11-09 CN CN2006800378589A patent/CN101283333B/zh not_active Expired - Fee Related
-
2010
- 2010-05-11 US US12/778,091 patent/US8261053B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 |
US6934833B2 (en) * | 2002-06-28 | 2005-08-23 | Hewlett-Packard Development Company, L.P. | Operating system selector and data storage drive |
US20050144434A1 (en) * | 2003-12-31 | 2005-06-30 | Taylor Billy K. | Partitionable multiprocessor system |
Non-Patent Citations (1)
Title |
---|
US 20030009654 A1,全文. |
Also Published As
Publication number | Publication date |
---|---|
WO2007058887A2 (en) | 2007-05-24 |
WO2007058887A3 (en) | 2007-07-19 |
EP1949231B1 (en) | 2015-06-17 |
EP1949231A2 (en) | 2008-07-30 |
US7716465B2 (en) | 2010-05-11 |
US20100325408A1 (en) | 2010-12-23 |
CN101283333A (zh) | 2008-10-08 |
US20070113063A1 (en) | 2007-05-17 |
US8261053B2 (en) | 2012-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101283333B (zh) | 用于在引导一个分区时维持另一个分区的方法和装置 | |
CN101421700B (zh) | 支持处理系统的分区中的独立操作系统的方法和设备 | |
US7107441B2 (en) | Pre-boot interpreted namespace parsing for flexible heterogeneous configuration and code consolidation | |
AU734920B2 (en) | Modifiable partition boot record for a computer memory device | |
CN102081534A (zh) | 自动模块化且安全的引导固件更新 | |
JP2011519451A (ja) | 周辺装置ロッキングメカニズム | |
CN100485621C (zh) | 用于将设备指定到分区的方法和装置 | |
EP3436947B1 (en) | Secure driver platform | |
WO2010090636A1 (en) | Electronic device with overlapped boot task fetches and boot task execution | |
KR20140083530A (ko) | 하드웨어를 디버깅하는 부트 쉘을 포함하는 시스템온칩 및 이의 구동 방법 | |
US7461244B2 (en) | Method and apparatus to support booting despite deficient resources | |
US8868891B2 (en) | Method and apparatus to support booting despite deficient resources | |
US7412597B2 (en) | Computer system and booting method thereof | |
CN113253978A (zh) | 嵌入式软件开发方法、模型、电子设备和介质 | |
US20080256348A1 (en) | Method for configuration of a processing unit | |
US20020138680A1 (en) | Apparatus and methods for controlling removable media devices using a BIOS abstraction layer | |
CN112346390A (zh) | 光模块控制方法、装置、设备及计算机可读存储介质 | |
CN110941452B (zh) | 一种配置方法、bios芯片和电子设备 | |
US11244055B1 (en) | Management controller to bios root of trust bypass implant detection and remediation | |
US11868276B2 (en) | Non-volatile memory write access control | |
US5802350A (en) | System and method for selecting an interrupt system based upon the operating system of a multiprocessor system | |
KR101646223B1 (ko) | 망 선택 기능을 구비한 컴퓨터 및 그 컴퓨터의 망 활성화 방법 | |
CN118036092A (zh) | 一种基于硬件辅助虚拟化的软件完整性保护方法与系统 | |
CN102760112A (zh) | 电子设备和提供电子设备的固件的方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120711 Termination date: 20201109 |