CN103677807B - 用于引导系统的定制程序逻辑 - Google Patents

用于引导系统的定制程序逻辑 Download PDF

Info

Publication number
CN103677807B
CN103677807B CN201310450563.6A CN201310450563A CN103677807B CN 103677807 B CN103677807 B CN 103677807B CN 201310450563 A CN201310450563 A CN 201310450563A CN 103677807 B CN103677807 B CN 103677807B
Authority
CN
China
Prior art keywords
driver
goal systems
list
logic
customization
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
Application number
CN201310450563.6A
Other languages
English (en)
Other versions
CN103677807A (zh
Inventor
B.帕斯托雷利
F.塞里
A.塞克曼迪
G.马利亚尼
C.玛丽内里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103677807A publication Critical patent/CN103677807A/zh
Application granted granted Critical
Publication of CN103677807B publication Critical patent/CN103677807B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/4408Boot device selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • G06F9/4413Plug-and-play [PnP]
    • G06F9/4415Self describing peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/085Retrieval of network configuration; Tracking network configuration history

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供用于产生定制的程序逻辑(110,408)的计算机实现的方法,该定制的程序逻辑可操作以控制至少一个目标系统(116‑120,206‑210,314,402)的硬件设备(Dev1‑Dev7),该方法包括:‑‑确定(502)与至少一个目标系统操作地连接的硬件设备;‑‑发送(504)已确定的硬件设备的标识符的第一列表(112)到服务器系统(102,202,302);‑‑接收(506)设备标识符的第一列表;‑‑自动选择(508)可操作以控制标识的装置的至少一个驱动器,由此产生所述驱动器组的子组(204,310);‑‑以所述驱动器子组补充(510)核心程序逻辑(106),从而产生所述定制的程序逻辑。

Description

用于引导系统的定制程序逻辑
技术领域
本公开涉及数据处理领域。更具体说,本公开涉及可操作以控制目标系统的硬件装置及引导所述目标系统的程序逻辑。
背景技术
在不断发展的网络引导环境中,用于引导目标系统的操作系统(及相应的配置引擎)从服务器系统经由网络配置到每个网络系统。例如,在所谓“裸金属环境”,目标系统的硬盘(计算机的操作系统安装在其上的通用介质)可能不包括操作系统或任何其他可引导程序码。因此,所述可引导码需要经由网络从服务器传递。这方便了目标系统的维护,也允许如所需地在目标系统上灵活地配置不同的操作系统。传递的操作系统或配置引擎必须至少包括用于访问目标系统的硬盘的驱动器,以便将操作系统写入所述硬盘。在几个网络引导环境中,目标系统也许已经为了下载配置引擎提供了初始网络能力。然而,所述初始网络能力的能力极其有限。所以,当经由有限的初始网络能力提供的网络连接下载配置引擎时,目标系统可接收提供扩展的网络能力的附加网络驱动器。该目标系统可关闭用于下载配置引擎的有限的初始网络支持,并将控制传给使用附加网络驱动器用于控制目标计算机的网络卡的配置引擎。因此,至少一些驱动器需要被从服务器传送到相应目标系统,以允许配置的操作系统控制所述目标系统的硬件装置,并且引导和操作该目标系统。所述硬件装置可包括打印机、扫描仪,图形卡等。
与目前网络-引导方法关联的问题是目标系统的硬件装置组成——且相应地需要提供给单个目标系统的驱动器——会不一致。为了保证配置的操作系统或配置引擎可操作以控制多个不同目标系统中每个系统的硬件设备,在混杂(heterogeneous)环境中用于网络引导的当前的操作系统和配置引擎包括多个不同的驱动器,覆盖比目标系统中实际含有的更多的硬件设备。因此,尽管所述驱动器的小部分(fraction)实际上可由任何目标系统使用,但是多个其它驱动器,由于其不包括相应的硬件设备而从未被目标系统使用过,也被作为操作系统的部分或配置引擎的部分传递(transfer)。这就增加了配置的数据的量,增加了网络的通信量,降低了配置的速度,并增大了传送冲突驱动器到目标系统的风险。冲突可能通过例如由对相同盘控制器的不同硬件供应商开发的两个驱动器造成。
发明内容
本发明的实施例的一个目的是提供程序逻辑提供一种改进的方法,该程序逻辑可操作以控制目标设备的硬件设备并可操作以引导所述目标设备。所述目的通过独立权利要求的主题得以解决。有利的实施例在从属权利要求中得到描述。如果无其它明确阐述,本发明的实施例可自由地相互结合。
在此使用的术语“程序逻辑”涉及可由处理器执行的指令序列。
在此使用的术语“硬件设备”涉及可由数据处理装置使用并控制的物理设备。硬件设备可以是例如网络卡、硬盘、连接到数据处理装置的打印机、图形卡或CD/DVD驱动器。硬件设备可以是所述数据处理装置的整体部分或操作地连接到所述数据处理设备。
在此使用的术语“目标系统”或“目标”涉及数据处理系统,其例如经由网络操作地连接到在此称作“服务器计算机系统”或“服务器”的另一数据处理系统。目标系统是应当被引导的数据处理系统。服务器系统是使目标系统能够执行引导的数据处理系统。术语“操作地连接”表示某元件是另一元件的子元件或连接到该另一元件,例如,经由网络或系统总线,以允许所述连接的元件为监控和/或控制目的交换数据。
在此使用的术语“驱动器”涉及计算机程序,允许高级别计算机程序,例如,操作系统或应用程序与硬件设备交互。驱动器通常通过与硬件设备连接的计算机总线或通信子系统与硬件设备进行通信。当呼叫程序调用驱动器例程时,驱动器可以向设备发送指令。一旦收到来自硬件设备的数据,驱动器也可向呼叫程序发回数据,并且甚至可调用呼叫程序中的例程。驱动器不依赖于硬件且是操作系统特定的程序。
在此使用的术语“预引导环境”(PBE)是目标系统的整体部分,并提供一些基本服务,特别是用于下载及操作网络引导程序(NBP)的基本网络和盘访问能力。PBE可以是包含在BIOS中的程序逻辑,故可考虑为目标系统的固件或硬件的一部分。已内置于BIOS(即固件)的驱动器提供了一些基本功能以便从盘、USB或网络执行简单的操作(即加载和操作系统)。然而,所述类型驱动器提供极其有限的能力,而且没有很好地优化,并且倾向于仅在引导阶段期间使用。一旦OS或网络引导程序(NBP)已被加载,则BIOS不再可用,而且OS或NBP需要专用驱动器。
在此使用的术语“引导加载器”或“网络引导程序”(NBP)涉及简化版的操作系统(OS)或配置引擎。NBP被加载到目标系统的存储器中并用于在所述目标系统的硬盘或主存储器上配置完全OS或配置引擎。NBP可通过例如USB-棒、CD-ROM或经由网络在一些BIOS驱动器的帮助下提供给目标系统。在PBE将NBP成功下载到目标系统后,PBE将控制传送给NBP。NBP下载OS或配置引擎其余的组件。NBP可与服务器系统交互操作而执行所述下载。当OS或配置引擎的下载完时,NBP将对目标系统的设备的控制传送给下载的配置引擎或下载的OS。在这方面,硬件装置的本地驱动器必须在目标系统可用的,以使得OS或配置引擎能够控制硬件装置。NBP的一个示例为Windows预安装环境(WinPE)的引导加载器。WinPE是简化版本的Windows-XP或Windows Vista或另一种Windows风格。NBP可以与服务器系统交互以下载完整的OS或下载并安装该完整OS的配置引擎。
在此使用的术语“配置引擎”是单机微型操作系统,用于将在完全OS(如WinXP或Linux)之外进行的管理任务。所述任务可涉及分区和格式化盘,下载并安装完整的OS,如Windows或UNIX,抹去(wipe)盘等。优先地,配置引擎不是手动地安装在目标系统上,而是自动下载,比如说,当指令目标系统在OS配置服务器帮助下进行引导。在配置引擎加载在目标系统上并启动后,就可在目标系统上执行其任务。因此,配置引擎是单机管理平台,并不需要完全OS工作。它可用来配置完全OS,但也可替换地用于其它目的。
在此使用的术语“硬件管理模块”(HMM)涉及一片固件,其为目标系统的一部分或与目标操作地有效连接,而且为服务器系统提供有关目标系统的硬件设备进行呼叫一些监控和/或控制功能的能力。HMM可具有单独的网络连接(以及其自己的IP地址),服务器系统可与其直接连接而不牵涉任何目标系统的NBP、配置引擎或OS,以建立跟服务器的连接。硬件管理模块的一个例子是IBM硬件管理控制台,它使得从远程位置在目标系统上进行活动成为可能。
一方面,本发明涉及用于产生定制程序逻辑的计算机实现的方法,该程序逻辑可操作以控制至少一个目标系统的硬件设备。优先地,所述定制的程序逻辑还可操作以引导所述至少一个目标系统。该方法包括:
--由至少一个目标系统的报告单元确定与至少一个目标系统操作地连接的一个或多个硬件设备;
--由该报告单元发送所确定的硬件设备的标识符的第一列表到服务器系统;
--由该服务器系统接收该设备标识符的第一列表;
--由该服务器系统对于在接收到的第一列表中的每个设备标识符,从一组驱动器自动选择可操作以控制该标识的设备的至少一个驱动器,由此产生该驱动器组的子组;
--以所述驱动器子组自动补充核心程序逻辑,由此产生所述定制的程序逻辑。核心程序逻辑没有驱动器组的任何一个驱动器。
所述特征可以是有利的,这是由于其允许显著地(在有些情况下高达50%以上)减小配置给目标系统的程序逻辑的尺寸,从而提高配置速度并降低了网络通信量。在更有利的方面,减少了可能阻止或降低目标系统的引导的驱动器冲突的风险。
根据实施例,报告单元是核心程序逻辑的引导加载器。引导加载器可以已配置到至少一个目标系统的存储器。核心程序逻辑可以是配置引擎或OS。优先地,引导加载器的尺寸很小,最好小于相应配置引擎或OS尺寸的5%。将驱动器检测和列表提交功能性集成到引导加载器中是有利的,这是由于利用引导加载器的现有网络引导架构仅需最低限度的变更用于提供改进的且更有效的网络引导环境:用包括所述特征的引导加载器替代常规的引导加载器,或将此特征附加到能与该服务器系统协同操作的常规引导加载器即可。
在又一个有利的方面,一开始就禁止传输缺少重要驱动器的配置引擎或操作系统,从而禁止网络资源的浪费。在又一个有利的方面,所述特征方便网络引导系统的维护。目前,这种系统的操作者必须手动确认配置到裸金属目标系统的任何配置引擎或操作系统包括所有必需的驱动器。这可能是高度复杂、易出错而且耗时的工作,而且会导致包括更多实际上不必要的驱动器的配置引擎或操作系统的产生。在又一个有利的方面,配置到目标系统的驱动器的数量的减少,减少了会导致引导过程的中断的驱动器冲突的机会。
根据又一个实施例,报告单元是进一步已经配置到至少一个目标系统的存储器的程序逻辑。所述程序逻辑可以不包括任何引导加载器功能。所以,所述实施例优先用于与标准引导加载器结合。
根据又一个实施例,报告单元是至少一个目标系统的硬件管理模块。根据一些实施例,硬件管理模块可包括提供网络服务的程序逻辑。一旦由服务器系统调用,网络服务可提供可调用(callable)接口返回包含在目标系统中的设备的设备标识符的第一列表,该目标系统包括或与硬件管理模块操作地连接。这可以是有利的,这是因为每个目标系统都配有支持网络引导的一些嵌入的功能。硬件管理模块可适于经由网络与服务器系统进行通信而不涉及或无需任何目标系统侧的OS或NBP。
根据实施例,核心程序逻辑是没有驱动器组的任何一个驱动器的配置引擎,该配置引擎是可操作以配置与服务器系统交互的操作系统的程序逻辑。定制的程序逻辑是所述配置引擎和驱动器子组的结合。根据其他实施例,核心程序逻辑是没有驱动器组的任何一个驱动器的完全操作系统。所述特征可以是有利的,这是因为定制和配置的配置引擎和操作系统都不包括不是目标系统部分的设备的驱动器,因此定制和配置的配置引擎的尺寸以及操作系统的尺寸减小了。
根据其它实施例,核心程序逻辑是运行时间环境的图像。所述图像不包括驱动器组的任何一个驱动器。定制的程序逻辑是所述图像和驱动器子组的结合。定制的程序逻辑可操作以在已经安装在至少一个目标系统上之后控制至少一个目标系统的设备。运行时间环境可包括,例如,操作系统逻辑及可选地应用程序逻辑和/用户数据。运行时间环境还可以是模拟硬件机器并用于例如桌面虚拟化的虚拟机器。所述特征能提供改进的再成像系统,其可操作以有效地提供图像给一个或多个目标系统。
根据实施例,由服务系统执行补充。服务系统与已经存储驱动器组和核心程序逻辑的存储介质操作地连接。该方法还包括发送定制的程序逻辑到至少一个目标系统。这可以是有利的,因为必须在服务器侧仅一次做完完成工作。
根据又一个实施例,发送定制的程序逻辑到至少一个目标系统包括发送定制的程序逻辑到多个目标系统。每个所述目标系统包括与已经将设备标识符的第一列表发送给服务器系统的目标系统包括的设备类型相同的设备。服务器能够从许多不同的目标系统接收设备标识符的列表,并且将列表相互比较以便确定目标系统是否包括同一组硬件设备。优先地,发送定制的程序逻辑到包括同一组硬件设备的多个目标系统使用多播数据传输技术执行。多播传送意为定制的程序逻辑是以单独传输从服务器传送到多目标系统。定制程序逻辑的副本是在诸如路由器的网络元件中自动创建的,仅当网络拓扑要求才产生。通过当配置核心程序逻辑时避免传输同片数据的多个副本,因此使用多播数据传输技术减少了数据通信量,所以所述特征可以是有利的。
根据实施例,由至少一个目标系统的报告单元执行补充。服务器系统与已经存有驱动器组(这里也称作“驱动器池”)和核心程序逻辑的存储介质操作地连接。在补充完整核心程序逻辑之前,该方法还包括:
--由服务器系统发送核心程序逻辑与驱动器子组到至少一个目标系统;和
--由所述至少一个目标系统接收程序逻辑和驱动器子组。依赖于该实施例,发送该核心程序逻辑与驱动器子组可通过一条消息或多条消息执行。
根据实施例,发送核心程序逻辑到至少一个目标系统包括选择性地发送核心程序逻辑到分别含有相同或不同设备类型的多个目标系统。发送驱动器子组到至少一个目标系统包括发送驱动器子组到分别含有与已经发送第一列表到服务器系统的目标系统包括的相同类型的设备的一个或多个目标系统。因此,服务器可操作以检查对于目标系统之一已创建的驱动器子组是否也适合其它目标系统的硬件设备组成。所述特征可以是有利的,这是因为其可确保每个目标系统接收控制其本身硬件设备所需的设备驱动器,而不会更多。
优先地,通过使用多播数据传输技术执行核心程序逻辑的发送。优先地,通过使用单薄数据传输技术执行驱动器子组的发送。经由两个不同的通信协议发送核心程序逻辑和驱动器子组可以是有利的,因为所述方法允许根据多播传输协议传输至少程序逻辑核心,由此减少了网络通信量并使该方法加速。如果定制程序逻辑作为单条数据传送,而不是以两个分开的部分传送,包括不同硬件设备组成的目标系统的分布式网络引导系统将必须应用单播传输协议,由此增加数据通信量。
根据实施例,在此称作“驱动器-下载-命令”的命令由至少一个目标系统的报告单元提交给服务器系统。该命令触发驱动器子组从服务器系统到至少一个目标系统的发送。
根据实施例,服务器系统为确定包含在预定义的程序逻辑中的设备驱动器而分析预定义的程序逻辑。然后服务器系统从所述预定义的程序逻辑中移除没有由接收的第一列表中包含的任何一个设备标识符标识的所有已确定的设备驱动器。从而创建了定制程序逻辑。根据其它实施例,服务器系统通过从所述预定义的程序逻辑中移除所有确定的设备驱动器来产生核心程序逻辑。所述特征可以是有利的,这是因为许多硬件装置厂家提供覆盖所有设备类型和所述厂家提供的各个装置版本的大的驱动器包。所述驱动器包可以是单机的包,或可以是已经集成到OS或相应的配置引擎中,由此显著地增加了所述OS和配置引擎的尺寸。通过将所有目标系统实际不需要的所有驱动器从所述OS-驱动器包或配置引擎-驱动器包中移除,可以将预定义的包作为输入而自动产生程序逻辑核心。
根据实施例,至少一个目标系统的报告单元经由网络从服务器系统接收引导命令。网络可以是,例如因特网或内部互联网。引导命令的接收触发了设备标识符的第一列表的产生和发送。
根据实施例,对于一个或多个目标系统中的第一个产生所述定制的程序逻辑。该方法还包括:从第二个目标系统中接收设备标识符的第二列表。所述第二列表与第一列表中的设备标识符共享多个设备标识符。第二列表包括未包含在第一列表中的至少一个设备标识符。通过以至少一个驱动器补充对于第一目标系统产生的定制的程序逻辑而对于第二目标系统产生进一步定制的程序逻辑。所述至少一个驱动器可操作以控制由没有包含在设备标识符的第一列表中的第二列表的至少一个设备标识符标识的至少一个设备。将进一步定制的程序逻辑发送到第二目标系统。所述特征可以是有利的,这是因为其在通过在服务器系统上产生定制的程序逻辑而造成的处理负载,和由将驱动器子组的驱动器传输到目标系统而产生的网络通信量之间提供了良好的折衷:很多情况下,可以假设网络引导环境中的目标系统的硬件设备组成类似但不完全一样。通常,存在主要来自单个供应商的有限数量的目标系统类型。这样,有关所需驱动器方面会有交叠。可通过仅为一个目标系统创建定制的程序逻辑来减小服务器系统的处理负载,由此显著地减小了配置到目标系统的数据的总大小。对于所有其它目标系统,或至少对于类似于第一目标系统的目标系统,已创建的定制程序逻辑仅用别的类似目标系统额外需要的驱动器进行补充。这样,在为其它类似目标系统创建的所述定制的程序逻辑中就有一些驱动器,在所述类似目标系统中是不需要的。然而,就服务器的处理功率而言的节省胜过因外加所述几个额外的非需要的驱动器造成的网络通信量。
根据实施例,对于目标系统的至少一个硬件设备来说,驱动器子组包括多个候选驱动器用于控制目标系统的一个硬件设备。该方法还包括:
--依靠包含在定制的程序逻辑中的驱动器来引导目标系统;
--a)在引导目标系统的同时,由定制的程序逻辑选择候选驱动器的第一个以控制所述硬件设备;
--b1)在所述第一候选驱动器被确定为可操作以控制所述硬件设备的情况下,在存储介质中存储所述候选驱动器能够控制所述硬件设备的指示,并继续目标系统的引导而不使用所述硬件设备的其它候选设备来控制所述硬件设备;
--b2)在所述第一候选驱动器被确定为不可操作以控制所述硬件设备的情况下,在存储介质中存储所述候选驱动器不能控制所述硬件设备的指示,并重新引导目标系统,其中,当重新引导时,通过选择没有在之前重新引导循环中被选的候选驱动器的另一个来重复步骤a)和b)。执行所述重复直到至少一个候选驱动器被标识为可操作以控制所述硬件设备为止。
对于至少一些硬件设备标识符,包括各个候选驱动器组是有利的,因为由于大量可能组合的硬件装置结合,有时会出现这样的情况,即在目标系统的引导期间使用的一些驱动器会发生冲突。这可能不能事先预知。对于一个或多个标识的硬件设备,通过将一组候选驱动器而不是单个驱动器包括在驱动器子组及相应的定制的程序逻辑中,即使其中一个驱动器显示为不与子组的其它驱动器结合工作,仍能够引导目标系统。
在现有技术的系统中,在引导期间驱动器发生冲突的情况下,出现错误,该错误必须通过在执行引导的OS中实施的相应程序例程来处理。指定这类错误处理操作很费时,而且不能预见可能与在OS写入时还不存在的其它驱动器有关而发生的任何类型的冲突。通过在引导时不擦除数据的存储介质中存储哪种候选驱动器不可操作以控制其相应的装置的信息,提供自动化驱动器冲突-管理过程,其也可以在当OS或配置引擎不包括在系统引导期间处理驱动器冲突的任何错误处理例程时应用。
根据优选的实施例,用于存储失败的驱动器信息的存储介质是包括统一可扩展固件接口(UEFI)的BIOS或存储模块的一部分。根据一些实施例,已被确定为能控制目标系统的各个硬件设备的候选驱动器从所述目标系统传递到服务器系统。服务器在当产生定制的程序逻辑时可使用所述信息,以避免将候选驱动器包含在已经被确定为不可操作以控制特定的设备本身或被确定为不可操作以控制设备的定制的程序逻辑内(如果该候选驱动器被提供作为所述特定的、以前使用的驱动器子组的一部分)。这样,可以改进所选的驱动器子组和相应的定制的程序逻辑的质量和兼容性。
另一方面,本发明涉及计算机可读介质,其包括以其具体体现的计算机可读程序码,当该程序码由处理器执行时,促使处理器根据在前任一权利要求执行一种方法。
另一方面,本发明涉及经由网络连接到一个或多个目标系统的服务器系统。该服务器系统适于:
--从目标系统之一接收设备标识符的第一列表;
--对于接收的第一列表中的每个设备标识符从驱动器组自动选择可操作以控制标识的设备的至少一个驱动器,从而产生所述驱动器组的子组;
--将核心程序逻辑提供给目标系统;以及
--将驱动器子组提供给目标系统,其中,子组驱动器和核心程序逻辑的结合构成可操作以控制所述目标系统的设备的定制的程序逻辑。所述程序的逻辑也可操作以引导一个目标系统。
根据一些实施例,提供核心程序逻辑和提供驱动器子组包括由服务器系统产生定制的程序逻辑,并将所述定制的程序逻辑发送给所述目标系统。
经由网络连接到服务器系统的目标系统,该目标系统包括硬件设备,该目标系统包括报告单元,适于:
--确定与所述目标系统操作地连接的硬件设备;
--将确定的硬件设备的标识符的第一列表发送到服务器系统;
--响应于发送所述第一列表,从服务器系统接收驱动器子组,该驱动器子组包括对于每个确定的硬件装置的可操作以控制所述硬件装置的各个驱动器;
--响应于发送所述第一列表,从服务器系统接收核心程序逻辑;
其中,驱动器子组和核心程序逻辑的结合构成可操作以引导所述目标系统和控制所述目标系统的设备的定制程序逻辑。
根据一些实施例,目标系统还适于用接收的驱动器子组补充接收的核心程序逻辑。由此在目标系统侧产生定制的程序逻辑。
在另一方面,本发明涉及分布的网络引导环境,其包括至少一个服务器系统和两个或更多个目标系统。
根据一些实施例,服务器系统和一个或多个目标系统是“预引导执行环境”(PXE)的一部分。PXE是使用网络接口、不依赖于数据存储装置(如硬盘)或安装的操作系统而引导目标系统的环境。目标系统甚至可不包括任何OS。而是,加载到目标系统的主存储器中的网络引导程序(NBP)与服务器协同操作以从服务器下载相应的OS或配置引擎。对于配置过程中的几个任务,例如,在非易失性硬盘上存储下载的OS,配置引擎需要一些驱动器,该驱动器允许配置引擎能够访问所述硬盘。譬如,也可能需要网络驱动器允许配置引擎能够打开到服务器的网络连接,并经由网络下载完全操作系统。NBP可使用由PXE提供的作为基于固件或硬件的功能来访问网络或磁盘。这样,PXE可提供一些基本驱动器用于下载OS或配置引擎,但是在NBP将控制传递给配置引擎或OS(其不能利用PXE环境)之后,配置引擎或OS需要本地驱动器。PXE利用了几个网络协议,如互联网协议(IPv4)、用户数据报协议(UDP)和动态主机配置协议(DHCP),并用一组预定义的应用编程界面扩展作为PXE客户端的目标系统的固件。根据实施例,各个目标系统的PXE支持固件组件,如PXE支持硬件管理模块可操作以在网络上定位PXE重定向服务,以便接收有关可用的PXE引导服务器系统的信息。PXE重定向服务的应答由目标系统的所述固件评估,用于确定服务器系统用作引导服务器。然后,从服务器下载配置引擎并存储到目标系统的主存储器中(目标系统不需要驱动器用于访问其RAM)。可基于TFTP协议执行下载。下载的配置引擎可以可选地评估并执行,用于从服务器系统下载完全OS以及用于经由下载的OS引导目标系统。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。
应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
附图说明
通过阅读本发明实施例的下述更详细的描述并结合附图将会更好地理解本发明的上述条目、特征和优点,其中
图1是包括服务器系统和三个目标系统的分布式计算机系统的框图,
图2描述包括服务器系统和多个目标系统的另一分布式计算机系统,
图3是更详细地显示服务器系统及目标系统之一的组件的框图,
图4示出包括硬件管理模块的目标系统,
图5描述创建用于引导目标系统的定制程序逻辑的过程,以及
图6示出经由网络下载配置引擎和相应的OS的过程。
具体实施方式
图1描述以定制程序逻辑110的方式经由网络114有效地引导一个或多个目标系统的分布式计算机系统100。该计算机系统100包括服务器系统102和多个目标系统116,118和120,多个目标系统经由网络114相互连接。目标系统的存储设备可以不包括任何操作系统。更确切地,将被用于引导的操作系统(OS)或定制图像应按所需经由网络从服务器传送至每个目标系统。传送的配置引擎和相应的OS或传送的图像定制为各自目标系统的硬件组成,即,仅包括控制各个目标系统的设备Dev1-Dev7所需的驱动器。参照图1,将描述网络引导系统蓝图,其允许对具有不同设备组成的目标系统进行动态、即时和有效的网络引导。
服务器包括驱动器池104。对于任一个目标系统116-120使用的每一个设备,驱动器池包括至少一个驱动器。驱动器池104甚至可包括不包括在任何目标系统中的硬件设备的驱动器。例如,驱动器池104可由一个或多个设备制造商提供的一个或多个驱动器包(driver bundle)组成。另外,服务器系统包括程序逻辑核心106,即没有驱动器池的任何驱动器的程序逻辑,并可操作以单独引导每个目标系统116-120,或在下载附加的可执行程序(executable)后,所述程序逻辑核心由各个目标系统的驱动器补充。服务器系统的定制单元108用于创建定制程序逻辑110,由此,定制程序逻辑相对于其配置的每个目标系统的硬件设备组成而配置。
每个目标系统包括报告单元122,其可操作以确定所述目标系统的硬件设备组成,并可操作以经由网络114发送带有各个设备标识符的列表112到服务器系统102。由于目标系统116和118的设备组成相同(两者均包括设备Devil、Dev2和Dev5),目标系统116产生的列表112与将由目标系统118产生的列表相同,并且各自的产生的定制程序逻辑110也相同。由于目标系统120的设备组成与目标系统116和118的设备组成稍有不同,目标系统120的报告单元112就创建稍有不同的驱动器列表,导致目标系统120产生稍有不同的定制程序逻辑。
首先,目标系统116的报告单元122会产生列表112,包括设备Devil、Dev2和Dev5的设备标识符。对于PCI设备,所述确定可以基于,例如,PCI总线登记(registry)的分析。如虚线箭头所示,所述列表经由网络提交给服务器系统。服务器系统的定制单元108评估该列表,并从驱动器池104选择驱动器的子组。该驱动器的子组与核心程序逻辑106结合。所述结合的产物,定制程序逻辑110经由网络114由服务器系统配置到目标系统116。由于其尺寸小,配置的定制程序逻辑可很快经由网络传输并可用于引导目标系统116。
图2描述分布式计算机系统200,也包括服务器系统202和多目标系统206、208和210。图1描述的系统100和系统200之间的主要区别在于:在系统200的至少一个目标系统中,定制的程序逻辑不是在服务器端产生的,而是由包含在一个或多个报告单元122中的定制单元产生。因此,根据图2描述的系统,服务器系统仍旧能够按照已经从一个目标单元的报告单元212接收的设备标识符112的列表,从驱动器池104选择驱动器的子组204,需要驱动器池104用来控制已提交列表112的目标系统206的硬件设备。区别是服务器系统将核心程序逻辑106和确定的驱动器子组204作为一条或多条消息中的单条数据发送给目标系统206。驱动器子组与核心程序逻辑的结合由目标系统执行来创建定制程序逻辑。
图3是更详细描述服务器系统和目标系统的一些组件的框图。分布式计算机系统300可包括经由网络320相互连接的至少服务器系统302和至少目标系统314及322。目标系统314包括主存储器316。加载到所述存储器中的引导加载器318包括一些功能,使所述引导加载器能够标识所有硬件设备Devil、Dev2和Dev5,如图形处理器、非易失性存储介质或网络卡,并发送所述列表到服务器系统302的定制单元108。
服务器系统包括处理器304和主存储器306。此外,非易失性存储介质308操作地与服务器系统302连接。存储介质包括驱动器的池104,其中所述池包括比控制系统300的任一目标系统实际所需多得多的驱动器。另外,核心程序逻辑106,比如,不包括任一目标系统的任何硬件设备驱动器的核心配置引擎106存储在存储介质上。在其它实施变型(未示出)中,方框106可以不代表配置引擎,而是完全OS。定制单元108可操作以从报告单元318接收硬件设备标识符的列表112,报告单元318在此是每个目标系统314的带有设备标识能力的小引导加载器。定制单元评估接收到的列表,标识由所述列表标识的驱动器的子组310,将所述标识的驱动器子组310注入核心配置引擎中。由此,创建了定制程序逻辑,这种情况下为定制的配置引擎,例如定制的WinPE。配置模块312可操作以配置配置引擎110到目标系统314,从目标系统接收到列表112。定制配置引擎被加载到目标系统的存储器316中,并使用其注入的驱动器DR01、DR02和DR05以从服务器下载相应的完全OS。所述驱动器使下载的完全OS能控制各个设备Devl、Dev2和Dev5以引导,和可选地操作目标系统314。OS-下载步骤可包括从服务器系统302下载完全操作系统及存储下载的完全OS到非易失性存储介质。
图4描述使用硬件管理模块404作为报告单元的目标系统402。该目标系统402可以是如例如图1-图3中描述的分布式网络引导环境100、200、300的要素。目标系统包括主存储器410,其包含标准引导加载器406。标准引导加载器(即网络引导程序)通过作用(leverage)PXE服务请求从服务器系统对配置系统的配置。服务器系统可接收该请求并向硬件管理模块404的接口发送命令以触发硬件管理模块标识所有硬件设备Devl、Dev2和Dev5,这些硬件设备与目标系统402操作地连接。硬件管理模块404产生包括硬件设备Devl、Dev2和Dev5的标识符的列表,并将此列表发送至服务器系统。这使得服务器系统的定制单元108能提取可操作以控制目标系统402的驱动器的驱动器的子列表以及产生仅包括所述子组的驱动器的轻量的、定制的配置引擎408。定制的配置引擎408由服务器系统的配置单元配置到目标系统402的主存储器410。在此,定制的配置引擎可被执行,例如,用于对一些盘分区或与服务器系统交互操作以便经由网络下载相应的完全操作系统,以及用于在定制的配置引擎相应的一个驱动器的帮助下将下载的操作系统存储到非易失性存储介质。
在再成像系统中,不一定需要定制配置引擎和相应的完全OS的连续下载。实际上,核心图像,如果跟必需的驱动器结合,则已包括OS和其它运行时间环境指令,其应最终配置到目标单元并由终端用户使用。
图5描述了一种方法的流程图,该方法包括步骤:在步骤502,确定一个或多个硬件设备,该硬件设备操作地连接到分布的网络引导系统的至少一个目标系统,例如裸金属配置系统或再成像系统。该步骤由驻留在一个目标系统的报告单元完成。在步骤504,报告单元将确定的硬件设备的设备标识符列表112发送到服务器系统。在步骤506,服务器系统接收设备标识符列表,以及在步骤508,从驱动器的较大组选择驱动器的子组。例如,所述驱动器的子组可通过评估包括设备标识符和相关联的驱动器或驱动器标识符的映射来标识。由此,对于每个设备标识符,服务器系统从驱动器池选择至少一个驱动器。该至少一个所选的驱动器可以是一组候选驱动器。在步骤510,服务器系统的定制单元(或在已发出列表的目标系统中报告单元的功能性对应的子模块)以所述所选的驱动器子组补充核心程序逻辑。从而产生了定制程序逻辑。
图6示出经由网络从服务器系统302下载定制的配置引擎和相应的操作系统用于引导目标系统314的过程。目标系统314一开始可以是不包括任何操作系统的“裸金属”目标系统602。裸金属目标系统602可自动地或在用户与所述系统交互下发送命令604以初始化目标系统的引导。该命令可以通过使用由PXE引导系统蓝图提供的固件和/或软件设施发出。当收到命令604时,在步骤606,服务器系统经由网络发送引导加载器(当做NBP)到裸金属目标系统。引导加载器318被加载到目标系统的存储器中并在步骤608开始。引导加载器在步骤610自动确定一组硬件设备,该组硬件设备操作地连接到目标系统。在步骤612,引导加载器318将设备标识符的列表发送到服务器系统,从而使得服务器系统能在步骤614确定可操作以控制目标系统的硬件设备的可用驱动器的子组。服务器系统在步骤616产生包括确定的驱动器子组的定制的配置引擎,并在步骤618将定制的配置引擎发送到目标系统。定制的配置引擎包括所有引导目标系统所需的驱动器,仅此而已。在目标系统中,定制的配置引擎加载到主存储器中。在步骤622,定制的配置引擎与服务器系统交互操作以使用定制的配置引擎的一个驱动器,下载与定制的配置引擎对应的完全操作系统,并且将完全操作系统存储在非易失性存储介质(Dev2)中。然后,配置引擎下载相应的OS并将其存储到硬盘。下载的OS可用于直接控制引导的目标系统。经由网络引导裸金属目标系统可包括配置引擎例如通过将经由网络接收的OS文档和驱动器拷贝到硬盘来启动OS的安装。为了完成安装,重新引导目标系统一次或多次。一旦OS文档的拷贝及定制化已经完成,目标系统再次引导,并且部分安装的OS进行控制以完成安装过程。

Claims (24)

1.一种产生定制的程序逻辑(110,408)的计算机实现的方法,所述定制的程序逻辑可操作以控制至少一个目标系统(116-120,206-210,314,402)的硬件设备(Dev1-Dev7),该方法包括:
--由至少一个目标系统的报告单元(122,318,404)确定(502)与至少一个目标系统操作地连接的一个或多个硬件设备;
--由所述报告单元发送(504)已确定的硬件设备的标识符的第一列表(112)到服务器系统(102,202,302);
--由所述服务器系统接收(506)设备标识符的第一列表;
--由所述服务器系统对于在接收到的第一列表中的每个设备标识符,从一组驱动器(DR01-DR08)自动选择(508)可操作以控制所述标识的设备的至少一个驱动器,由此产生所述驱动器组的子组(204,310);
--以所述驱动器子组自动补充(510)核心程序逻辑(106),由此产生所述定制的程序逻辑,
其中,所述补充由服务器系统执行,所述服务器系统操作地连接已经存储所述驱动器组和所述核心程序逻辑的存储介质,该方法进一步包括:
--发送定制程序逻辑(110)到至少一个目标系统。
2.根据权利要求1所述的方法,
--其中,所述报告单元是所述核心程序逻辑的引导加载器(318),所述引导加载器已配置到至少一个目标系统(314)的存储器(316),所述核心程序逻辑是配置引擎(110)或操作系统;或
--其中,所述报告单元是已配置到至少一个目标系统的存储器的另外的程序逻辑;或
--其中,所述报告单元是至少一个目标系统(402)的硬件管理模块(404)。
3.根据权利要求1所述的方法,
--其中,所述核心程序逻辑是没有驱动器组的任何一个驱动器的配置引擎(106),且可操作以与服务器交互地配置操作系统;或
--其中,所述核心程序逻辑是没有驱动器组的任何一个驱动器的操作系统;或
--其中,所述核心程序逻辑是运行时间环境的图像,所述图像没有驱动器组的任何一个驱动器,并且其中所述定制的程序逻辑是所述图像和驱动器子组的结合,所述定制的程序逻辑可操作以在已经被安装在至少一个目标系统上之后控制所述至少一个目标系统的设备。
4.根据权利要求1所述的方法,其中,发送定制的程序逻辑到至少一个目标系统包括发送定制的程序逻辑到多个目标系统,所述目标系统的每个包括与已经将设备标识符的第一列表发送给服务器系统的目标系统包括的相同设备类型的设备。
5.根据权利要求1所述的方法,其中,所述补充由至少一个目标系统的报告单元(122,318,404)执行,其中,所述服务器系统操作地连接已经存储所述驱动器组和所述核心程序逻辑(106)的存储介质(308),在补充核心程序逻辑之前,该方法进一步包括:
--由服务器系统发送所述核心程序逻辑与所述驱动器子组到至少一个目标系统;和
--由所述至少一个目标系统接收所述核心程序逻辑和所述驱动器子组。
6.根据权利要求5所述的方法,
其中,发送所述核心程序逻辑到至少一个目标系统包括发送核心程序逻辑到分别包括相同设备类型或不同设备类型的设备的多个目标系统;以及
其中,发送驱动器子组到至少一个目标系统包括选择性地发送驱动器子组到一个或多个目标系统,所述一个或多个目标系统分别包括与已发送第一列表到服务器系统的目标系统包括的相同设备类型的设备。
7.根据在前权利要求5-6的任何一个所述的方法,进一步包括:
--通过由至少一个目标系统的报告单元提交给服务器系统的驱动器-下载-命令,触发将驱动器子组从服务器系统发送到至少一个目标系统。
8.根据在前权利要求1-6的任何一个所述的方法,进一步包括:
--为确定预定义的程序逻辑中包含的设备驱动器,由所述服务器系统分析所述预定义的程序逻辑;
--将没有由接收的第一列表中包含的任何一个设备标识符标识的所有确定的设备驱动器从所述预定义的程序逻辑中移除,由此产生定制的程序逻辑,或通过从所述预定义的程序逻辑中移除所有确定的设备驱动器产生核心程序逻辑。
9.根据权利要求1所述的方法,进一步包括:
--由至少一个目标系统的报告单元经由网络(114)从服务器系统接收引导命令;
其中,所述引导命令的接收触发设备标识符的第一列表的产生和发送。
10.根据权利要求1所述的方法,其中,对于一个或多个目标系统的第一个产生所述定制的程序逻辑,该方法还包括:
--从目标系统中的第二个接收设备标识符的第二列表,所述第二列表与第一列表中的设备标识符共享多个的设备标识符,所述第二列表包括未包含在所述第一列表中的至少一个设备标识符;
--通过以至少一个驱动器补充对于第一目标系统产生的定制的程序逻辑而产生用于第二目标系统的另外的定制的程序逻辑,所述至少一个驱动器可操作以控制由没有包含在设备标识符的第一列表中的第二列表的至少一个设备标识符标识的至少一个设备;
--将所述另外的定制的程序逻辑发送到所述第二目标系统。
11.根据权利要求1所述的方法,其中,对于目标系统的至少一个硬件设备,所述驱动器子组包括用于控制目标系统的硬件设备之一的多个候选驱动器,该方法进一步包括:
--通过包含在定制的程序逻辑中的驱动器的方式来引导目标系统;
--a)在引导目标系统的同时,由定制的程序逻辑选择第一候选驱动器以控制所述硬件设备;
--b1)在所述第一候选驱动器被确定为可操作以控制所述硬件设备的情况下,在存储介质中存储所述候选驱动器能够控制所述硬件设备的指示,并继续目标系统的引导而不使用所述硬件设备的其它候选驱动器用于控制所述硬件设备;
--b2)在所述第一候选驱动器被确定为不可操作以控制所述硬件设备的情况下,在存储介质中存储所述候选驱动器不能控制所述硬件设备的指示,并重新引导目标系统,其中,当重新引导时,通过选择没有在之前的重新引导循环中选择的另一个候选驱动器来重复步骤a)和b),直到至少一个候选驱动器被标识为可操作以控制所述硬件设备为止。
12.一种用于产生定制的程序逻辑(110,408)的计算机实现的系统,该定制的程序逻辑可操作以控制至少一个目标系统(116-120,206-210,314,402)的硬件设备(Dev1-Dev7),该系统包括:
--用于由至少一个目标系统的报告单元(122,318,404)确定(502)与至少一个目标系统操作地连接的一个或多个硬件设备的装置;
--用于由所述报告单元发送(504)已确定的硬件设备的标识符的第一列表(112)到服务器系统(102,202,302)的装置;
--用于由所述服务器系统接收(506)设备标识符的第一列表的装置;
--用于由所述服务器系统对于在接收到的第一列表中的每个设备标识符,从一组驱动器(DR01-DR08)自动选择(508)可操作以控制标识的设备的至少一个驱动器,由此产生所述驱动器组的子组(204,310)的装置;
--用于以所述驱动器子组补充(510)核心程序逻辑(106),由此产生所述定制的程序逻辑的装置,
其中,所述补充由服务器系统执行,所述服务器系统操作地连接已经存储驱动器组和核心程序逻辑的存储介质,该系统进一步包括:
--用于发送定制程序逻辑(110)到至少一个目标系统的装置。
13.根据权利要求12所述的系统,
--其中,所述报告单元是核心程序逻辑的引导加载器(318),所述引导加载器已配置到至少一个目标系统(314)的存储器(316),所述核心程序逻辑是配置引擎(110)或操作系统;或
--其中,所述报告单元是已配置到至少一个目标系统的存储器的另外的程序逻辑;或
--其中,所述报告单元是至少一个目标系统(402)的硬件管理模块(404)。
14.根据权利要求12所述的系统,
--其中,所述核心程序逻辑是没有驱动器组的任何一个驱动器的配置引擎(106),且其可操作以与服务器交互地配置操作系统;或
--其中,所述核心程序逻辑是没有驱动器组的任何一个驱动器的操作系统;或
--其中,所述核心程序逻辑是运行时间环境的图像,所述图像没有驱动器组的任何一个驱动器,并且其中定制的程序逻辑是所述图像和驱动器子组的结合,所述定制的程序逻辑可操作以在已经被安装在至少一个目标系统上之后控制所述至少一个目标系统的设备。
15.根据权利要求12所述的系统,其中,发送定制的程序逻辑到至少一个目标系统包括发送定制的程序逻辑到多个目标系统,所述目标系统的每个包括与已经将设备标识符的第一列表发送给服务器系统的目标系统包括的相同设备类型的设备。
16.根据权利要求12所述的系统,其中,所述补充由至少一个目标系统的报告单元(122,318,404)执行,其中,服务器系统操作地连接已经存储驱动器组和核心程序逻辑(106)的存储介质(308),在补充核心程序逻辑之前,该系统进一步包括:
--用于由服务器系统发送核心程序逻辑与驱动器子组到至少一个目标系统的装置;和
--用于由所述至少一个目标系统接收核心程序逻辑和驱动器子组的装置。
17.根据权利要求16所述的系统,
其中,发送该核心程序逻辑到至少一个目标系统包括发送核心程序逻辑到分别包括相同设备类型或不同设备类型的设备的多个目标系统;以及
其中,发送驱动器子组到至少一个目标系统包括选择性地发送驱动器子组到一个或多个目标系统,所述一个或多个目标系统分别包括与已发送第一列表到服务器系统的目标系统包括的相同设备类型的设备。
18.根据在前权利要求16-17的任何一个所述的计算机实现的系统,进一步包括:
--用于通过由至少一个目标系统的报告单元提交给服务器系统的驱动器-下载-命令,触发将驱动器子组从服务器系统发送到至少一个目标系统的装置。
19.根据权利要求12所述的系统,进一步包括:
--用于为确定预定义的程序逻辑中包含的设备驱动器,由服务器系统分析所述预定义的程序逻辑的装置;
--用于将没有由接收的第一列表中包含的任何一个设备标识符标识的所有确定的设备驱动器从所述预定义的程序逻辑中移除,由此产生定制的程序逻辑,或通过从所述预定义的程序逻辑中移除所有确定的设备驱动器产生核心程序逻辑的装置。
20.根据权利要求12所述的系统,进一步包括:
--用于由至少一个目标系统的报告单元经由网络(114)从服务器系统接收引导命令的装置;
其中,所述引导命令的接收触发设备标识符的第一列表的产生和发送。
21.根据权利要求12所述的系统,其中,对于一个或多个目标系统的第一个产生所述定制的程序逻辑,该系统进一步包括:
--用于从目标系统的第二个中接收设备标识符的第二列表的装置,所述第二列表与第一列表中的设备标识符共享多个的设备标识符,所述第二列表包括未包含在第一列表中的至少一个设备标识符;
--用于通过以至少一个驱动器补充对于第一目标系统产生的定制的程序逻辑而产生用于第二目标系统的另外的定制的程序逻辑的装置,所述至少一个驱动器可操作以控制由没有包含在设备标识符的第一列表中的第二列表的至少一个设备标识符标识的至少一个设备;
--用于将另外的定制的程序逻辑发送到第二目标系统的装置。
22.根据权利要求12所述的系统,其中,对于目标系统的至少一个硬件设备,驱动器子组包括用于控制目标系统的硬件设备之一的多个候选驱动器,该系统进一步包括:
--用于通过包含在定制的程序逻辑中的驱动器的方式来引导目标系统的装置;
--a)引导目标系统的同时,由定制的程序逻辑选择第一候选驱动器以控制所述硬件设备;
--b1)在所述第一候选驱动器被确定为可操作以控制所述硬件设备的情况下,在存储介质中存储所述候选驱动器能够控制所述硬件设备的指示,并继续引导目标系统而不使用所述硬件设备的其它候选驱动器用于控制所述硬件设备;
--b2)在所述第一候选驱动器被确定为不可操作以控制所述硬件设备的情况下,在存储介质中存储所述候选驱动器不能控制所述硬件设备的指示,并重新引导目标系统,其中,当重新引导时,通过选择没有在之前重新引导循环中选择的另一个候选驱动器来重复步骤a)和b),直到至少一个候选驱动器被标识为可操作以控制所述硬件设备为止。
23.一种经由网络(114)连接到一个或多个目标系统(116-120,206-210,314,402)的服务器系统(102,202,302),所述服务器系统适于:
--从目标系统之一接收设备标识符的第一列表(112);
--对于接收的第一列表中的每个设备标识符从一组驱动器自动选择(506)可操作以控制标识的设备(Devl-Dev7)的至少一个驱动器(DR01-DR08),由此产生所述驱动器组的子组(204,310);
--将核心程序逻辑(106)提供给目标系统;以及
--将驱动器的子组提供给目标系统,其中,驱动器的子组和核心程序逻辑的结合构成可操作以控制所述目标系统的设备的定制的程序逻辑(110,408)。
24.一种经由网络(114)连接到服务器系统(102,202,302)的目标系统(116-120,206-210,314,402),所述目标系统包括硬件设备,所述目标系统包括报告单元(122,318,404),其适于:
--确定与所述目标系统操作地连接的硬件设备(Devil-Dev7);
--将确定的硬件设备的标识符的第一列表(112)发送到服务器系统;
--响应于发送所述第一列表,从服务器系统接收驱动器的子组(204,310),对于每个确定的硬件设备,所述驱动器的子组包括可操作以控制所述硬件设备的各个驱动器;
--响应于发送所述第一列表,从服务器系统接收核心程序逻辑;
其中,驱动器子组和核心程序逻辑的结合构成可操作以控制所述目标系统的设备的定制的程序逻辑。
CN201310450563.6A 2012-09-25 2013-09-25 用于引导系统的定制程序逻辑 Active CN103677807B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1217032.0A GB2506181A (en) 2012-09-25 2012-09-25 Generating customised program logic for hardware devices
GB1217032.0 2012-09-25

Publications (2)

Publication Number Publication Date
CN103677807A CN103677807A (zh) 2014-03-26
CN103677807B true CN103677807B (zh) 2017-05-10

Family

ID=47190513

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310450563.6A Active CN103677807B (zh) 2012-09-25 2013-09-25 用于引导系统的定制程序逻辑

Country Status (3)

Country Link
US (4) US9928081B2 (zh)
CN (1) CN103677807B (zh)
GB (1) GB2506181A (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2506181A (en) 2012-09-25 2014-03-26 Ibm Generating customised program logic for hardware devices
US20150350340A1 (en) * 2014-05-30 2015-12-03 Microsoft Corporation Management of headless hardware in data center
US20160011882A1 (en) * 2014-07-12 2016-01-14 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Resource advisor for automated bare-metal operating system installation
GB2529838B (en) 2014-09-03 2021-06-30 Advanced Risc Mach Ltd Bootstrap Mechanism For Endpoint Devices
US9361126B1 (en) 2014-11-24 2016-06-07 International Business Machines Corporation Device driver aggregation in operating system deployment
GB2540989B (en) 2015-08-03 2018-05-30 Advanced Risc Mach Ltd Server initiated remote device registration
GB2540987B (en) 2015-08-03 2020-05-13 Advanced Risc Mach Ltd Bootstrapping without transferring private key
GB201702933D0 (en) 2017-02-23 2017-04-12 Ge Healthcare Bio Sciences Ab A method and a system for installation of an instrument
CN112087493B (zh) * 2017-09-05 2022-02-22 华为技术有限公司 对请求处理的方法、片上系统和公有云管理组件
US10838736B2 (en) 2018-07-26 2020-11-17 Vmware, Inc. Bare metal device management
CN109669725B (zh) * 2018-11-27 2022-05-24 瑞芯微电子股份有限公司 一种主从机系统的控制方法及硬件架构,及主从机系统
GB2579571B (en) 2018-12-03 2021-05-12 Advanced Risc Mach Ltd Device bootstrapping
GB2582735B (en) 2019-02-01 2022-11-30 Arm Ip Ltd Template-based registration
US11475134B2 (en) 2019-04-10 2022-10-18 Arm Limited Bootstrapping a device
US11360753B1 (en) * 2020-11-23 2022-06-14 Microsoft Technology Licensing, Llc Link-time driver polymorphism for embedded systems
CN113741856A (zh) * 2021-07-27 2021-12-03 深圳市广通远驰科技有限公司 驱动绑定方法、装置、电子设备及存储介质
CN113900721A (zh) * 2021-10-15 2022-01-07 北京字节跳动网络技术有限公司 操作系统启动方法、装置和电子设备
CN116155721A (zh) * 2022-12-30 2023-05-23 珠海奔图电子有限公司 端口配置方法、装置、存储介质和计算机设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8136186B1 (en) * 2010-10-06 2012-03-20 Leach Jamie S Pillow assembly

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802365A (en) 1995-05-05 1998-09-01 Apple Computer, Inc. Dynamic device matching using driver candidate lists
US6988193B2 (en) * 2001-06-28 2006-01-17 International Business Machines Corporation System and method for creating a definition for a target device based on an architecture configuration of the target device at a boot server
US20040260678A1 (en) 2003-06-18 2004-12-23 Microsoft Corporation State based configuration failure detection using checkpoint comparison
US7448034B2 (en) * 2003-07-30 2008-11-04 International Business Machines Corporation Build time determination and installation of drivers on cloned systems
US8176503B2 (en) 2004-01-27 2012-05-08 Hewlett-Packard Development Company, L.P. Device driver selection
US7412545B2 (en) * 2004-07-22 2008-08-12 International Business Machines Corporation Apparatus and method for updating I/O capability of a logically-partitioned computer system
CN100454249C (zh) 2005-09-15 2009-01-21 英业达股份有限公司 附加有驱动程序的操作系统安装方法及结构
US20070070894A1 (en) * 2005-09-26 2007-03-29 Fan Wang Method to determine a scheduling priority value for a user data connection based on a quality of service requirement
US20070101342A1 (en) * 2005-10-31 2007-05-03 Microsoft Corporation Automated device driver management
US20070143379A1 (en) 2005-12-09 2007-06-21 Microsoft Corporation Metadata driven deployment of applications
US20070169116A1 (en) * 2006-01-18 2007-07-19 Dell Products L.P. Method and system for automated installation of system specific drivers
US7743242B2 (en) * 2006-10-16 2010-06-22 Scalent Systems Inc. Method and system for automatic generation of operating system boot images
US8225309B2 (en) * 2006-10-16 2012-07-17 Dell Products L.P. Method and process for using common preinstallation environment for heterogeneous operating systems
US7644264B1 (en) * 2006-10-17 2010-01-05 Symantec Corporation Method and system for creating and deploying disk images
US20080172555A1 (en) 2007-01-17 2008-07-17 Erink Technologies, Llc Bootable thin client personal initialization device
US8132186B1 (en) * 2007-03-23 2012-03-06 Symantec Corporation Automatic detection of hardware and device drivers during restore operations
US9454384B2 (en) * 2007-07-05 2016-09-27 Microsoft Technology Licensing, Llc Custom operating system via a web-service
CN101382894B (zh) 2007-09-05 2013-09-04 北京软通科技有限责任公司 下载计算机硬件设备驱动程序的方法、装置及系统
WO2009122526A1 (ja) * 2008-03-31 2009-10-08 富士通株式会社 シンクライアントの実現方法、そのためのクライアント端末およびサーバ
US8543799B2 (en) * 2008-05-02 2013-09-24 Microsoft Corporation Client authentication during network boot
US9355557B2 (en) * 2008-07-16 2016-05-31 Samsung Electronics Co., Ltd. Universal remote controller and remote control method thereof
US8041793B2 (en) 2008-09-24 2011-10-18 Dell Products L.P. Boot image discovery and delivery system
JP2010118752A (ja) * 2008-11-11 2010-05-27 Hitachi Ltd ネットワークシステム、dhcpサーバ装置、及びdhcpクライアント装置
US8046450B1 (en) * 2009-03-13 2011-10-25 Hewlett-Packard Development Company, L.P. Associating network ports of a computer system with network ports of a network device
US8978044B2 (en) 2010-01-09 2015-03-10 International Business Machines Corporation Storage-system-based driver distribution apparatus and method
US9037843B2 (en) * 2010-03-10 2015-05-19 Hewlett-Packard Development, L.P. Managing a target computing device
US8407662B2 (en) 2010-06-25 2013-03-26 Wyse Technology Inc. Apparatus and method for network driver injection into target image
US20120110567A1 (en) * 2010-10-28 2012-05-03 Peter Lyons Operating system installation using build plans
DE102011108964A1 (de) * 2011-07-29 2013-01-31 Robert Bosch Gmbh Verfahren zur automatischen Erzeugung von Anwenderprogrammcode für eine speicherprogrammierbare Steuerung zur Steuerung einer Maschine
CN102385523A (zh) 2011-10-12 2012-03-21 中山爱科数字科技有限公司 一种云操作系统的驱动安装和管理方法
US8606892B2 (en) * 2011-11-28 2013-12-10 Wyse Technology Inc. Deployment and updating of applications and drivers on a client device using an extensible markup language (XML) configuration file
US9317268B2 (en) * 2012-02-02 2016-04-19 Sungard Availability Services Lp Recovery automation in heterogeneous environments
GB2506181A (en) 2012-09-25 2014-03-26 Ibm Generating customised program logic for hardware devices
US9032200B2 (en) * 2013-03-14 2015-05-12 American Megatrends, Inc. Method of installing virtual service processor (VSP) to computing device and application of the same
US9418229B2 (en) * 2013-10-28 2016-08-16 Disney Enterprises, Inc. Firmware security
US9182998B2 (en) * 2013-12-19 2015-11-10 American Megatrends, Inc. Remote bios update in system having multiple computers

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8136186B1 (en) * 2010-10-06 2012-03-20 Leach Jamie S Pillow assembly

Also Published As

Publication number Publication date
US10338935B2 (en) 2019-07-02
US11474829B2 (en) 2022-10-18
US20140095858A1 (en) 2014-04-03
GB2506181A (en) 2014-03-26
CN103677807A (zh) 2014-03-26
US20190294448A1 (en) 2019-09-26
GB201217032D0 (en) 2012-11-07
US9928081B2 (en) 2018-03-27
US20140089652A1 (en) 2014-03-27
US9547500B2 (en) 2017-01-17
US20170115997A1 (en) 2017-04-27

Similar Documents

Publication Publication Date Title
CN103677807B (zh) 用于引导系统的定制程序逻辑
CN110495136A (zh) 裸金属服务器的硬件属性发现方法和系统
US7743242B2 (en) Method and system for automatic generation of operating system boot images
USRE44299E1 (en) System and method for enabling automated run-time input to network bootstrapping processes
CN105814541B (zh) 计算机设备及计算机设备内存启动的方法
JP2008090840A (ja) ソフトウェア製品の出荷用仮想化ソフトウェアの使用方法
CN107391193A (zh) 一种客户端、配置服务器的系统和方法
JP2010165128A (ja) 画像形成装置及び制御方法及びプログラム
JP2015503165A (ja) 仮想イメージをパッチするための方法およびシステム
US10747523B2 (en) Methods of updating firmware components, computer systems and memory apparatus
US7293168B2 (en) System and method for initially configuring and booting a device using a device identifier
CN102662884A (zh) 一种基于网络的设备驱动程序配置方法
US8316361B2 (en) Method of enabling a user to update one or more low-level resources of a computer system in a user-friendly manner
CN110489305B (zh) 一种服务器管理方法及装置
CN106325859B (zh) 安装驱动的方法和服务器
CN114072765B (zh) 用于基于容器的虚拟化系统的方法
US9501316B2 (en) Instantiating virtual appliances of a storage array
US8464273B2 (en) Information processing apparatus, information processing method, and computer-readable program
US7284120B2 (en) Method and system for allowing a system under test (SUT) to boot a plurality of operating systems without a need for local media
US11425203B2 (en) Commissioning a virtualized network function
CN115617444A (zh) 融合多桌面架构的系统启动方法、装置、设备及存储介质
CN107544781B (zh) 一种系统安装方法及装置
KR20120030573A (ko) 부팅 프로세스 중에 파일들을 로딩하기 위한 방법, 장치 및 컴퓨터 판독가능 저장 매체
CN117687639A (zh) 操作系统的安装方法、系统、设备、存储介质及程序产品
KR100987644B1 (ko) 위젯을 서비스하는 단말기 및 그 위젯 관리방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant