CN105980981A - 选择性地启用平台特定的特征 - Google Patents

选择性地启用平台特定的特征 Download PDF

Info

Publication number
CN105980981A
CN105980981A CN201580009449.7A CN201580009449A CN105980981A CN 105980981 A CN105980981 A CN 105980981A CN 201580009449 A CN201580009449 A CN 201580009449A CN 105980981 A CN105980981 A CN 105980981A
Authority
CN
China
Prior art keywords
acpi
specific function
subsystem
specific
equipment
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.)
Pending
Application number
CN201580009449.7A
Other languages
English (en)
Inventor
G.P.穆杜苏鲁
K.K.加内桑
N.J.亚当斯
S.R.奈尔
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN105980981A publication Critical patent/CN105980981A/zh
Pending legal-status Critical Current

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

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

用于选择性地启用平台特定的特征的技术包括一种计算设备,所述计算设备初始化虚拟设备驱动器逻辑以与高级配置和功率接口(ACPI)子系统的虚拟设备对接。ACPI子系统包括与虚拟设备相关联的操作系统(OS)特定功能规范。OS特定功能规范包括基于所标识的OS要由ACPI子系统执行的OS特定功能。虚拟设备驱动器逻辑传输对ACPI子系统中的OS特定功能规范的调用。所述调用包括从其它操作系统中唯一地标识出OS的计算设备的OS的标识符。ACPI子系统分析OS特定功能规范以基于所述标识符确定与OS相关联的OS特定功能。ACPI子系统执行所确定的OS特定功能。

Description

选择性地启用平台特定的特征
对相关美国专利申请的交叉引用
本申请要求享有对2014年3月21日提交的题为“SELECTIVELY ENABLING PLATFORM-SPECIFIC FEATURES”的美国实用新型专利申请序列号14/221,983的优先权。
背景技术
计算设备一般包括操作系统,其管理计算设备的各种硬件和软件资源。在引导(boot)过程期间,现代操作系统通常依赖于硬件厂商所提供的固件来暴露可用于操作系统的计算设备的特征和/或硬件设备。通常,某些硬件设备和/或特征可能是系统特定的。也就是说,特定硬件设备和/或特征可以兼容于供一个操作系统而不是另一个使用。照此,在减少分布和维护成本的努力中,硬件厂商典型地发行支持多个操作系统的跨生产线的单件固件。因此重要的是固件知晓什么操作系统正被引导以确保仅向操作系统暴露兼容的硬件设备和/或特征。
随着针对便携式计算设备的市场升温,操作系统厂商之间的竞争日益增加。该竞争正在驱动操作系统厂商比以前更快地开发并向市场发行新特征。这些新特征中的许多不遵循工业标准,而是它们依赖于平台和/或操作特定的硬件设备和/或固件所提供的特征。这样的实践增加不兼容的硬件设备和/或特征在引导期间被暴露于操作系统的风险。这样的实践还威胁硬件厂商发行跨生产线的一件固件的能力。
附图说明
通过示例的方式而不是通过限制的方式在附图中图示本文所描述的概念。为了图示的简化和清楚性,在图中图示的元件不一定按照比例绘制。在被视为适当的情况下,已经在各图之间重复参考标记以指示对应或类似的元件。
图1是用于使用计算设备来选择性地启用平台特定的特征的系统的至少一个实施例的简化框图;
图2是图1的系统的计算设备的环境的至少一个实施例的简化框图;
图3是可以由图1和2的计算设备执行的用于选择性地启用平台特定的特征的方法的至少一个实施例的简化流程图;
图4是用于选择性地启用平台特定的特征的图3的方法的至少一个实施例的简化活动流程图;
图5是用于选择性地启用平台特定的特征的可以被图1和2的计算设备使用的操作系统(OS)特定的功能规范的说明性实施例;
图6是用于选择性地启用平台特定的特征的可以被图1和2的计算设备使用的功能规范的说明性实施例;
图7是响应于图3和9的方法的执行的图1和2的计算设备的所得到的配置的说明图;
图8是响应于图3和9的方法的执行的图1和2的计算设备的所得到的配置的另一说明图;
图9是可以由图1和2的计算设备执行的用于选择性地启用平台特定的特征的方法的至少一个其它实施例的简化流程图;以及
图10是用于选择性地启用平台特定的特征的图9的方法的至少一个实施例的简化活动流程图。
具体实施方式
虽然本公开的概念易受到各种修改和可替换形式,但已经通过示例的方式在附图中示出其具体实施例,并且将在本文中对其详细描述。然而,应当理解的是,没有意图将本公开的概念限制到所公开的特定形式,而是相反,意图在于覆盖与本公开和随附权利要求一致的所有修改、等同方案和可替换方案。
在说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用指示所描述的实施例可以包括特定特征、结构或特性,但是每一个实施例可以或可以不一定包括该特定特征、结构或特性。而且,这样的短语不一定都是指相同的实施例。另外,当结合实施例描述特定特征、结构或特性时,主张结合其它实施例实现这样的特征、结构或特性在本领域技术人员的知识范围内,无论是否明确描述。此外,应当领会的是,以“A,B和C中的至少一个”的形式包括在列表中的项目可以意指(A);(B);(C);(A和B);(A和C);(B和C);或(A,B和C)。类似地,以“A,B或C中的至少一个”的形式列举的项目可以意指(A);(B);(C);(A和B);(A和C);(B和C)或(A,B和C)。
所公开的实施例在一些情况下可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以实现为由一个或多个暂时性或非暂时性机器可读(例如计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。机器可读存储介质可以体现为任何存储设备、机构或用于以机器可读的形式存储或传输信息的其它物理结构(例如易失性或非易失性存储器、媒体盘或其它媒体设备)。
在附图中,一些结构或方法特征可能以具体布置和/或次序示出。然而,应当领会的是,可以不要求这样的具体布置和/或次序。而是,在一些实施例中,这样的特征可以以与说明图中所示的不同的方式和/或次序布置。此外,结构或方法特征在特定图中的包括不意味着暗示这样的特征在所有实施例中都被要求,并且在一些实施例中可以不被包括或者可以与其它特征组合。
现在参照图1,在说明性实施例中,用于选择性地启用平台特定的特征的系统100包括计算设备110。在使用中,计算设备110在OS 126的初始化期间执行一个或多个操作系统(OS)特定功能。为了这样做,计算设备110的基本输入/输出系统(BIOS)接口118提供高级配置和功率接口(ACPI)子系统120,计算设备110可以通过其与被初始化(例如引导、加载、执行等)的OS通信和/或交互。为了促进在OS 126的初始化期间执行(一个或多个)OS特定功能,ACPI子系统120包括虚拟ACPI设备(例如虚拟ACPI对象)和与虚拟ACPI设备相关联的OS特定功能规范(例如设备特定方法或“_DSM”)。在一些实施例中,与虚拟ACPI设备相关联的OS特定功能规范包括用于各种不同操作系统(OS)的一个或多个OS特定功能。在这样的实施例中,虚拟设备驱动器可以在引导/初始化过程期间由OS 126初始化以使得OS 126能够与虚拟ACPI设备交互。虚拟设备驱动器可以包括唯一标识符(例如全局唯一标识符或“GUID”、通用唯一标识符或“UUID”等),其唯一地标识虚拟设备驱动器被配置成与哪个OS 126交互。在一些实施例中,虚拟设备驱动器可以调用与ACPI子系统120中的虚拟ACPI设备相关联的OS特定功能规范。调用可以包括正被初始化的OS 126的唯一标识符。当接收到调用时,ACPI子系统120分析OS特定功能规范以基于唯一标识符确定应当针对正被初始化的特定OS 126执行的一个或多个OS特定功能。ACPI子系统120然后执行(一个或多个)所确定的OS特定功能,其可以包括例如向OS 126暴露一个或多个OS特定平台特征和/或OS特定平台对象,启用(例如向ACPI命名空间添加特征和/或对象、加载等)用于OS 126的一个或多个OS特定平台特征和/或OS特定平台对象,从OS 126隐藏(例如防止暴露)一个或多个OS特定平台特征和/或OS特定平台对象,和/或禁用(例如从ACPI命名空间移除特征和/或对象、卸载等)用于OS 126的一个或多个OS特定平台特征和/或OS特定平台对象。以此方式,计算设备110经由ACPI子系统120、虚拟ACPI设备和虚拟设备驱动器可以用于基于正被初始化的特定OS 126选择性地启用和/或禁用平台特征和对象。
计算设备110可以体现为或以其它方式包括能够执行本文所描述的功能的任何类型的计算设备,包括但不限于台式计算机、膝上型计算设备、服务器计算机、消费电子设备、移动计算设备、移动电话、智能电话、平板计算设备、个人数字助理、可穿戴计算设备、智能电视、智能电器和/或其它类型的计算设备。说明性计算设备110包括处理器112、存储器114、输入/输出(I/O)子系统116、基本输入/输出系统(BIOS)接口118、通信电路122和数据储存器124。当然,在其它实施例中,计算设备110可以包括其它或附加组件,诸如在计算机中常见的那些(例如各种输入/输出设备)。此外,在一些实施例中,一个或多个说明性组件可以被合并在另一组件中,或者以其它方式形成其部分。例如,在一些实施例中,存储器114或其部分可以被合并在处理器112中。
处理器112可以体现为能够执行本文所描述的功能的任何类型的处理器。例如,处理器112可以体现为(一个或多个)单核或多核处理器、数字信号处理器、微控制器或其它处理器或处理/控制电路。类似地,存储器114可以体现为能够执行本文所描述的功能的任何类型的易失性或非易失性存储器或数据储存器。在操作中,存储器114可以存储在计算设备110的操作期间使用的各种数据和软件,诸如操作系统、应用、程序、库和驱动器。存储器114经由I/O子系统116通信地耦合到处理器112,I/O子系统116可以体现为促进与计算设备110的处理器112、存储器114和其它组件的输入/输出操作的电路和/或组件。例如,I/O子系统116可以体现为或以其它方式包括存储器控制器中心、输入/输出控制中心、固件设备、通信链路(即点对点链路、总线链路、导线、线缆、光导、印刷电路板迹线等)和/或其它组件和子系统以促进输入/输出操作。在一些实施例中,I/O子系统116可以形成片上系统(SoC)的部分,并且连同计算设备110的处理器112、存储器114和其它组件一起被合并在单个集成电路芯片上。
BIOS 118可以体现为硬件组件、软件组件或其组合(例如系统固件、系统初始化数据等)以促进引导或以其它方式初始化计算设备110的平台和/或操作系统(OS)。例如,BIOS 118可以初始化和/或测试计算设备110的各种组件(例如输入/输出设备)。在一些实施例中,BIOS 118可以与正经由可以由BIOS 118提供的框架和/或高级配置和功率接口(ACPI)子系统120加载的OS 126通信和交互。此外,如以下讨论的,ACPI子系统120可以被配置成向正被加载的OS 126提供一个或多个OS特定特征。
计算设备110的通信电路122可以体现为任何类型的通信电路、设备或其集合,其能够实现计算设备110与一个或多个其它计算设备之间的通信。通信电路122可以被配置成使用任何一个或多个通信技术(例如无线或有线通信)和相关联的协议(例如以太网、Wi-Fi®、WiMAX等)以实现这样的通信。
数据储存器124可以体现为被配置用于数据的短期或长期存储的任何类型的一个或多个设备,诸如例如存储器设备和电路、存储器卡、硬盘驱动器、固态驱动器或其它数据存储设备。例如,数据储存器124可以被配置成存储要由计算设备110执行和/或初始化的一个或多个操作系统(例如图2中所示的操作系统126)。在一些实施例中,出于更快处理和/或任何其它原因,将(一个或多个)操作系统的部分可以在操作期间被拷贝到存储器114。
现在参照图2,在使用中,计算设备110在操作期间建立环境200。说明性环境200包括ACPI子系统模块120、操作系统(OS)126、默认ACPI驱动器逻辑202和虚拟设备驱动器逻辑204。环境200的模块、逻辑和其它组件中的每一个可以体现为硬件、软件、固件或其组合。应当领会的是,计算设备110可以包括在计算设备中常见的其它组件、子组件、模块和设备,其在图2中为了描述的清楚性而未被图示。
ACPI子系统模块120可以被配置成与在计算设备110上正被初始化(例如引导、加载、执行等)的操作系统126交互和/或通信。为了这样做,ACPI子系统模块120可以与默认ACPI驱动器逻辑202通信。如以下讨论的,在一些实施例中,默认ACPI驱动器逻辑202可以在其它驱动器(例如虚拟设备驱动器逻辑204、视频设备驱动器逻辑、输入/输出驱动器逻辑等)的初始化之前被OS 126初始化。在这样的实施例中,ACPI子系统模块120可以在计算设备110的一个或多个其它组件和/或特征的初始化之前与OS 126交互。
在一些实施例中,ACPI子系统模块120可以被配置成将对应于虚拟ACPI设备的设备数据和/或对象数据和相关联的OS特定功能规范加载到一个或多个ACPI表中。虚拟ACPI设备可以体现为虚拟ACPI对象或任何类型的ACPI组件,其可以在引导过程期间由OS 126枚举。与虚拟ACPI设备相关联的OS特定功能规范可以体现为设备特定方法或“_DSM”。然而,应当领会的是,OS特定功能规范可以体现为任何其它类型的ACPI控制方法(例如定制控制方法等)、对象或被配置成执行本文所描述的功能的任何其它类型的ACPI组件。在一些实施例中,虚拟ACPI设备和OS特定功能规范可以在ACPI命名空间中声明以促进稍后由OS 126对那些设备/对象的枚举。
在一些实施例中,ACPI子系统模块120还可以被配置成基于正被初始化(例如加载、引导、执行等)的具体OS 126来执行一个或多个功能。在这样的实施例中,OS特定功能规范(例如“_DSM”)可以包括要结合任何数目的不同操作系统执行的一个或多个OS特定功能(参见例如图5和6以及相关联的讨论)。例如,OS特定功能可以包括用于向特定OS 126暴露一个或多个OS特定平台特征和/或OS特定平台对象、启用(例如向ACPI命名空间添加特征和/或对象、加载等)用于特定OS 126的一个或多个OS特定平台特征和/或OS特定平台对象、从特定OS 126隐藏(例如防止暴露)一个或多个OS特定平台特征和/或OS特定平台对象,和/或禁用(例如从ACPI命名空间移除特征和/或对象、卸载等)用于特定OS 126的一个或多个OS特定平台特征和/或OS特定平台对象的功能。包括在OS特定功能规范(例如“_DSM”)中的每一个OS 126可以通过唯一标识符(例如全局唯一标识符或“GUID”、通用唯一标识符或“UUID”等)来标识。针对每一个OS 126的唯一标识符可以体现为从其它OS 126中唯一地标识出OS 126的一个或多个字母、数字、符号、字符串等。如以下更加详细讨论的,通过控制基于正被初始化的OS 126所执行的具体功能,硬件厂商和/或设备管理员可以选择性地启用和/或禁用可用于正被初始化的特定OS 126的OS特定特征和/或对象。
ACPI子系统模块120还可以被配置成确定要基于正被初始化的特定OS 126来执行哪些OS特定功能。为了这样做,ACPI子系统模块120被配置成从虚拟设备驱动器逻辑204接收调用。在一些实施例中,从虚拟设备驱动器逻辑204接收的调用包括正被初始化的OS 126的唯一标识符。照此,ACPI子系统模块120被配置成分析OS特定功能规范(例如“_DSM”)以确定所接收到的唯一标识符是否匹配与包括在OS特定功能规范内的OS特定功能相关联的唯一标识符中的任一个。如果ACPI子系统模块120确定所接收到的唯一标识符匹配OS特定功能规范内的唯一标识符中的一个,ACPI子系统模块120可以被配置成执行对应功能。
在其它实施例中,ACPI子系统模块120可以被配置成基于从虚拟设备驱动器逻辑204接收到的一个或多个功能标识符来执行一个或多个功能。在这样的实施例中,ACPI子系统模块120可以被配置成将对应于虚拟ACPI设备的设备数据和/或对象数据和与虚拟ACPI设备相关联的一般功能规范加载到一个或多个ACPI表中。与虚拟ACPI设备相关联的功能规范可以体现为设备特定方法或“_DSM”并且可以包括用于各种不同操作系统(OS)的一个或多个OS特定功能。在一些实施例中,每一个OS特定功能可以被编号或以其它方式包括功能标识符。针对每一个OS特定功能的功能标识符可以体现为从其它OS特定功能中唯一地标识出OS特定功能的一个或多个字母、数字、符号、字符串等。相应地,由ACPI子系统模块120接收到的调用可以包括对应于应当针对正被初始化的OS 126执行的一个或多个OS特定功能的一个或多个唯一功能标识符。ACPI子系统模块120被配置成分析功能规范(例如“_DSM”)以确定所接收到的功能标识符中的一个或多个是否匹配包括在功能规范内的功能标识符中的任一个。如果ACPI子系统模块120确定所接收到的功能标识符匹配功能规范内的功能标识符中的一个,ACPI子系统模块120可以被配置成执行对应功能。
操作系统(OS)126可以体现为用于执行功能和/或提供本文所描述的特征的任何类型的OS或其它类似的指令集。例如,在各种实施例中,OS 126可以体现为Windows®的版本,其从华盛顿州雷德蒙德的微软公司商业上可得到;Linux的版本(包括AndroidTM,其从加利福尼亚州山景城的谷歌公司商业上可得到);OS X®,其从加利福尼亚州库比蒂诺的苹果公司商业上可得到,UNIX®的版本;和/或任何其它类型的OS 126。在使用中,OS 126可以管理用于供计算设备110执行的一个或多个应用的硬件和软件资源。在一些实施例中,OS 126可以被配置成经由默认ACPI驱动器逻辑202和/或虚拟设备驱动器逻辑204与ACPI子系统模块120或ACPI子系统的一个或多个组件(例如虚拟ACPI设备、OS特定功能规范、功能规范等)通信和/或交互。例如,在通过计算设备110初始化OS 126期间,OS 126(经由相关联的OS加载器或其它组件)可以初始化和/或加载默认ACPI驱动器逻辑202,其可以被配置成使得OS 126能够与ACPI子系统模块120交互和/或通信。OS 126还可以初始化虚拟设备驱动器逻辑204,如以下更加详细讨论的,其可以被配置成使得OS 126能够与由ACPI子系统模块120加载的虚拟ACPI设备交互和/或通信。
默认ACPI驱动器逻辑202可以被配置成与ACPI子系统模块120或ACPI子系统模块120的一个或多个组件(例如虚拟ACPI设备、OS特定功能规范、功能规范等)通信和/或交互。在一些实施例中,默认ACPI驱动器逻辑202可以被配置成在OS 126引导过程的初始阶段期间被初始化。例如,默认ACPI驱动器逻辑202可以在其它驱动器逻辑(例如虚拟设备驱动器逻辑204、视频设备驱动器逻辑、输入/输出驱动器逻辑等)的初始化之前被OS 126初始化。在这样的实施例中,ACPI子系统模块120可以在计算设备110的一个或多个其它组件和/或特征的初始化之前与OS 126交互。应当领会的是,尽管默认ACPI驱动器逻辑202在说明性实施例中被描述为“默认”ACPI驱动器逻辑,但是默认ACPI驱动器逻辑202可以是任何类型的驱动器逻辑(例如OS厂商和/或硬件厂商提供的标准或通用ACPI驱动器逻辑、开源ACPI驱动器逻辑、私有驱动器逻辑等)。因此,如本文所使用的,术语“默认ACPI驱动器逻辑”意图覆盖被配置成在OS 126的初始化期间实现OS 126与ACPI子系统模块120之间的初始交互的任何驱动器逻辑。
虚拟设备驱动器逻辑204可以被配置成与由ACPI子系统模块120加载的虚拟ACPI设备交互和/或通信。在一些实施例中,虚拟设备驱动器逻辑204可以在默认ACPI驱动器逻辑202的初始化之后由OS 126初始化。虚拟设备驱动器逻辑204可以特定于正被加载(例如初始化、引导、执行等)的特定OS 126并且可以促进哪个或哪些OS特定功能应当由ACPI子系统模块120执行的确定(参见例如图5和6以及相关联的讨论)。例如,在一些实施例中,虚拟设备驱动器逻辑204可以包括唯一地标识虚拟设备驱动器被配置成与哪个OS 126交互的唯一标识符(例如GUID、UUID等)。在其它实施例中,虚拟设备驱动器逻辑204可以包括唯一地标识要针对正被初始化的OS 126执行的OS特定功能的一个或多个功能标识符。在这样的实施例中,如以下讨论的,虚拟设备驱动器逻辑204可以被配置成向ACPI子系统模块120传输调用,所述调用包括正被初始化的OS 126的唯一标识符和/或与要执行的特定功能相关联的(一个或多个)功能标识符。ACPI子系统模块120可以比较(一个或多个)所接收到的标识符以确定应当针对OS 126执行的OS特定功能。
现在参照图3,计算设备110可以执行用于选择性地启用平台特定的特征的方法300。方法300以块302开始,其中计算设备110的ACPI子系统120将设备数据和/或指示虚拟ACPI设备的对象数据(例如虚拟ACPI对象等)和相关联的OS特定功能规范(例如_DSM、控制方法等)加载到一个或多个ACPI表中(例如在图4中说明性地示出的数据流402)。(一个或多个)ACPI表可以体现为存储在计算设备110上的任何类型的数据结构,其中与ACPI子系统120或其任何组件相关联的数据可以被存储以供正被加载的OS 126和/或ACPI子系统稍后使用。例如,在一些实施例中,ACPI表可以包括可以在初始化期间和/或在稍后的执行阶段期间(例如运行时)由OS 126枚举和/或与其交互的一个或多个ACPI设备、特征、对象、设备特定方法等。在一些实施例中,加载到(一个或多个)ACPI表中的设备数据可以从计算设备110的ACPI基本输入/输出系统(BIOS)固件加载。然而,应当领会的是,加载到(一个或多个)ACPI表中的设备数据可以从计算设备110的任何其它组件(例如存储器114、数据储存器124等)加载。在一些实施例中,在块304和306中,ACPI虚拟设备和OS特定功能规范可以在ACPI命名空间中声明以促进稍后在引导过程(例如OS 126的初始化)期间和/或在正常执行期间(例如运行时)由OS 126枚举和/或与OS 126交互。
如所讨论的,在一些实施例中,与虚拟ACPI设备相关联的OS特定功能规范(例如“_DSM”)可以包括用于各种不同操作系统(OS)的一个或多个OS特定功能。包括在OS特定功能规范中的每一个OS 126可以通过唯一标识符(例如全局唯一标识符或“GUID”、通用唯一标识符或“UUID”等)来标识。此外,在一些实施例中,(一个或多个)OS特定功能可以基于它们与其相关联的特定OS 126来分组。在这样的实施例中,针对特定OS 126的唯一标识符可以用于将用于该OS 126的(一个或多个)OS特定功能从用于其它OS 126的(一个或多个)OS特定功能分组(例如划分、分离、布置等)。例如,如图5中说明性地示出的,OS特定功能规范(例如“_DSM”500)可以包括用于其中列出的每一个OS 126的一个或多个OS特定功能512、522、532。OS特定功能512、522、532可以根据它们与其相关联的特定OS 126来进行分组或其它方式进行布置。为了促进对OS特定功能512、522、532分组,OS特定功能规范(例如“_DSM”500)的每一个OS 126还可以与不同的唯一标识符(例如GUID 510、520、530)相关联。在一些实施例中,唯一标识符(例如GUID 510、520、530)还可以用于促进基于正被初始化(例如加载、引导、执行等)的特定OS 126的身份而对OS特定功能512、522、532中的一个或多个的稍后执行。
参照回图3,在块308中,ACPI子系统120将来自(一个或多个)ACPI表的设备数据传输到正被引导的OS 126所初始化的默认ACPI驱动器202(例如图4中说明性地示出的数据流404和406)。在一些实施例中,默认ACPI驱动器202可以在其它驱动器(例如虚拟设备驱动器204、视频设备驱动器、输入/输出驱动器等)的初始化之前由OS 126初始化。在这样的实施例中,默认ACPI驱动器202被配置成使得OS 126能够在计算设备110的一个或多个其它组件和/或特征的初始化之前与ACPI子系统120通信、交互或以其它方式对接。此外,在一些实施例中,传输到默认ACPI驱动器202的设备数据可以由OS 126用于枚举虚拟ACPI设备(例如图4中说明性地示出的数据流408)和/或ACPI子系统120的任何其它ACPI设备、特征、组件、对象、控制方法等。应当领会的是,尽管默认ACPI驱动器202在说明性实施例中被描述为“默认”ACPI驱动器,但是默认ACPI驱动器202可以是任何类型的驱动器(例如由OS厂商和/或硬件厂商提供的标准或通用ACPI驱动器、开源ACPI驱动器、私有驱动器等)。因此,如本文所使用的,术语“默认ACPI驱动器”意图覆盖被配置成在OS 126的初始化期间实现OS 126与ACPI子系统120之间的初始交互的任何驱动器。
在块310中,计算设备110传输对ACPI子系统120中的OS特定功能规范的调用(例如图4中说明性地示出的数据流412)。在一些实施例中,对OS特定功能规范的调用通过可以由正被引导的OS 126初始化的虚拟设备驱动器204传输(例如图4中说明性地示出的数据流410)。此外,在一些实施例中,虚拟设备驱动器204可以在默认ACPI驱动器202的初始化之后由OS 126初始化并且被配置成与ACPI子系统120的虚拟ACPI设备对接(例如交互、通信等)。如所讨论的,虚拟设备驱动器204可以特定于正被加载的特定OS 126并且可以包括从其它OS 126中唯一地标识出OS 126的唯一标识符(例如GUID、UUID等)。照此,对ACPI子系统120中的OS特定功能规范(例如“_DSM”)的调用可以包括基于从虚拟设备驱动器204获得的唯一标识符而被加载的OS 126的唯一标识符(例如GUID)。此外,在一些实施例中,在块312中,虚拟设备驱动器204可以经由调用向ACPI子系统120中的OS特定功能规范(例如“_DSM”)传递作为变元的唯一标识符(例如GUID)。应当领会的是,用于传输或以其它方式递送唯一标识符(例如GUID)的任何其它技术也可以被计算设备110和/或虚拟设备驱动器204使用。
在块314中,计算设备110的ACPI子系统120接收包括正从虚拟设备驱动器204加载的OS 126的唯一标识符(例如GUID)的调用。随后,在块316中,计算设备110的ACPI子系统120分析OS特定功能规范(例如“_DSM”)以基于从虚拟设备驱动器204与调用一起接收到的唯一标识符(例如GUID)来确定要针对正被初始化的OS 126执行的一个或多个OS特定功能。为了这样做,ACPI子系统120可以将从正被初始化的OS的虚拟设备驱动器204接收的唯一标识符与包括在OS特定功能规范(例如“_DSM”)中的唯一标识符相比较。响应于确定所接收到的唯一标识符匹配包括在OS特定功能规范中的唯一标识符中的一个,ACPI子系统120可以确定应当执行针对与匹配的标识符相关联的OS 126的(一个或多个)OS特定功能。
在块318中,计算设备110的ACPI子系统120执行针对基于所接收到的唯一标识符确定的OS 126的(一个或多个)OS特定功能。例如,在一些实施例中,在块320中,ACPI子系统120向正被初始化的OS 126暴露OS特定特征和/或OS特定对象(例如图4中说明性地示出的数据流414)。此外或可替换地,在块322中,ACPI子系统120从正被初始化的OS 126隐藏OS特定特征和/或OS特定对象。
应当领会的是,通过控制响应于首次标识正被初始化的OS 126而执行的具体功能和/或要针对OS 126执行的具体功能,ACPI子系统120可以选择性地启用和/或禁用用于被初始化的OS 126的OS特定特征。例如,如图7中说明性地示出的,计算设备110可以包括固件(例如BIOS 118),其提供用于由各种不同OS 126(例如OS_1 704、OS_2 705、OS_3 706、OS_4 707)使用的特征和/或对象710的池700。在一些实施例中,由固件提供的特征和/或对象710中的一个或多个可以是OS特定的。例如,固件可以包括特定于OS_l 704的特征和/或对象组740(例如Al 742、A2 744、A3 746、A4 748);特定于OS_2 705的特征和/或对象组750(例如Bl 752);特定于OS_3 706的特征和/或对象组760(例如CI 762, C2 764, C3 766);以及特定于OS_4 707的特征和/或对象组770(例如Dl 772、D2 774)。在一些实施例中,虚拟ACPI对象730(例如虚拟ACPI设备)和ACPI子系统120的其它组件可以被配置成与正被初始化的OS 126(例如OS_l 704)交互。响应于标识出正被初始化的特定OS 126(例如OS_704),ACPI子系统120可以执行被配置成禁用或隐藏720与未被初始化的其它OS 126(例如OS_2 705、OS_3 706、OS_4 707)相关联的特征和/或对象(例如B1 752、C1 762、C2 764、C3 766、D1 772、D2 774)的特定于OS_l 704的一个或多个功能。此外,ACPI子系统120可以执行被配置成启用或暴露与OS_l 704相关联的特征和/或对象中的一个或多个(例如Al 742、A2 744)的特定于OS_l 704的一个或多个功能。此外或可替换地,ACPI子系统120可以执行被配置成禁用或隐藏与OS_l 704相关联的特征和/或对象中的一个或多个(例如A3 746、A4 748)的特定于OS_l 704的一个或多个功能。
现在参照图8,示出选择性地启用和禁用用于正被初始化的不同OS 126(例如OS_3 706)的特征的另一说明性示例。如所示,响应于标识出OS_3 706正被初始化,ACPI子系统120可以执行被配置成禁用或隐藏720与未被初始化的其它OS 126(例如OS_l 704、OS_2 705、OS_4 707)相关联的特征和/或对象(例如Al 742、A2 744、A3 746、A4 748、B1 752、Dl 772、D2 774)的特定于OS_3 706的一个或多个功能。此外,ACPI子系统120可以执行被配置成启用或暴露与OS_3 706相关联的特征和/或对象中的一个或多个(例如C1 762、C2 764)的特定于OS_3 706的一个或多个功能。此外或可替换地,ACPI子系统120可以执行被配置成禁用或隐藏与OS_3 706相关联的特征和/或对象中的一个或多个(例如C3 766)的特定于OS_3 706的一个或多个功能。
现在参照图9,在一些实施例中,计算设备110可以执行用于选择性地启用平台特定的特征的方法900。方法900以块902开始,其中计算设备110的ACPI子系统120将指示虚拟ACPI设备的设备数据和/或对象数据(例如虚拟ACPI对象等)和相关联的功能规范(例如_DSM、控制方法等)加载到一个或多个ACPI表中(例如图10中说明性地示出的数据流1002)。(一个或多个)ACPI表可以体现为存储在计算设备110上的任何类型的数据结构,其中与ACPI子系统120或其任何组件相关联的数据可以被存储以供正被加载的OS 126和/或ACPI子系统120稍后使用。在一些实施例中,被加载到(一个或多个)ACPI表中的设备数据可以从计算设备110的ACPI基本输入/输出系统(BIOS)固件加载。然而,应当领会的是,被加载到(一个或多个)ACPI表中的设备数据可以从计算设备110的任何其它组件(例如存储器114、数据储存器124等)加载。在一些实施例中,在块904和906中,ACPI虚拟设备和功能规范(例如“_DSM”)可以在ACPI命名空间中声明以促进在引导过程(例如OS 126的初始化)期间通过OS 126的稍后枚举。
如所讨论的,在一些实施例中,与虚拟ACPI设备相关联的功能规范(例如“_DSM”)可以包括用于各种不同操作系统(OS)的一个或多个OS特定功能。在这样的实施例中,功能规范可以包括供包括在其中的所有(一个或多个)OS特定功能和OS 126使用的标识符(例如GUID、UUID等)。然而,每一个OS特定功能可以被编号或者以其它方式包括功能标识符以促进稍后由ACPI子系统120标识。用于每一个OS特定功能的功能标识符可以体现为从其它OS特定功能中唯一地标识出OS特定功能的一个或多个字母、数字、符号、字符串等。如以下更加详细讨论的,OS特定功能及其相关联的功能标识符可以对应于包括在虚拟设备驱动器204内的一个或多个OS特定功能和功能标识符。在一些实施例中,OS特定功能可以基于它们关联到的特定OS 126而被分组或布置在功能规范内。此外,在这样的实施例中,OS特定功能可以被连续编号以促进稍后由ACPI子系统120标识。例如,如图6中说明性地示出的,功能规范(例如“_DSM”600)可以包括用于一个或多个OS 126的一个或多个OS特定功能612。OS特定功能612可以根据它们与其相关联的特定OS 126而被分组或以其它方式布置。此外,说明性功能规范(例如“_DSM”600)包括供包括在其中的所有OS特定功能612使用的单个标识符(例如GUID 610)。
参照回图9,在块908中,ACPI子系统120将来自(一个或多个)ACPI表的设备数据传输到正被引导的OS 126所初始化的默认ACPI驱动器202(例如图10中说明性地示出的数据流1004和1006)。在一些实施例中,默认ACPI驱动器202可以在其它驱动器(例如虚拟设备驱动器204、视频设备驱动器、输入/输出驱动器等)的初始化之前被OS 126初始化。在这样的实施例中,默认ACPI驱动器202被配置成使得OS 126能够在计算设备110的一个或多个其它组件和/或特征的初始化之前与ACPI子系统120通信、交互或以其它方式对接。在一些实施例中,传输到默认ACPI驱动器202的设备数据可以由OS 126用于枚举虚拟ACPI设备(例如图10中说明性地示出的数据流1008)。
在块910中,计算设备110传输对ACPI子系统120中的功能规范的调用(例如图10中说明性地示出的数据流1012)。在一些实施例中,对ACPI子系统120中的功能规范的调用由可以由正被引导的OS 126初始化的虚拟设备驱动器204传输(例如图10中说明性地示出的数据流1010)。此外,在一些实施例中,虚拟设备驱动器204可以在默认ACPI驱动器202的初始化之后由OS 126初始化并且被配置成与ACPI子系统120的虚拟ACPI设备对接(例如交互、通信等)。虚拟设备驱动器204可以特定于正被加载的特定OS 126并且可以包括一个或多个OS特定功能的列表。在一些实施例中,所列出的每一个OS特定功能可以对应于包括在功能规范(例如“_DSM”)中的不同OS特定功能。同样地,所列出的每一个OS特定功能可以包括与包括在功能规范中的对应OS特定功能的功能标识符一致的功能标识符。照此,对ACPI子系统120中的功能规范(例如“_DSM”)的调用可以包括与要执行的一个或多个OS特定功能相关联的一个或多个功能标识符。此外,在一些实施例中,在块912中,虚拟设备驱动器204可以经由调用向ACPI子系统120中的功能规范(例如“_DSM”)传递作为变元的(一个或多个)功能标识符。应当领会的是,用于传输或以其它方式递送(一个或多个)功能标识符的任何其它技术也可以被计算设备110和/或虚拟设备驱动器204使用。
在块914中,计算设备110的ACPI子系统120从虚拟设备驱动器204接收包括(一个或多个)功能标识符的调用。随后,在块916中,计算设备110的ACPI子系统120分析功能规范(例如“_DSM”)以基于从虚拟设备驱动器204与调用一起接收的(一个或多个)功能标识符确定要针对正被初始化的OS 126执行的一个或多个OS特定功能。为了这样做,ACPI子系统120可以将从正被初始化的OS的虚拟设备驱动器204接收的(一个或多个)功能标识符与包括在功能规范(例如“_DSM”)中的(一个或多个)对应功能标识符相比较。响应于确定所接收到的功能标识符匹配包括在功能规范中的(一个或多个)对应功能标识符中的一个,ACPI子系统120可以确定应当执行与匹配的功能标识符相关联的OS特定功能。
在块918中,计算设备110的ACPI子系统120执行基于(一个或多个)所接收到的功能标识符确定的针对OS 126的(一个或多个)OS特定功能。例如,在一些实施例中,在块920中,ACPI子系统120向正被初始化的OS 126暴露OS特定特征和/或OS特定对象(例如图10中说明性地示出的数据流1014)。此外或可替换地,在块922中,ACPI子系统120从正被初始化的OS 126隐藏OS特定特征和/或OS特定对象。
应当领会的是,通过使用本文所公开的技术,硬件厂商和/或计算设备管理员可以基于正被初始化(例如引导、加载、执行等)的特定操作系统126而选择性地启用和禁用OS特定特征和/或对象。为了这样做,硬件厂商和/或计算设备管理员可以发行被配置成支持相同或类似硬件设备和/或平台上的各种不同OS 126的固件(例如BIOS 118、ACPI子系统120等)。固件可以提供包括虚拟ACPI设备(例如虚拟ACPI对象)和与其相关联的OS特定功能规范(或功能规范)的ACPI子系统120和/或框架。还可以提供针对所支持的每一个OS的单独的OS特定虚拟设备驱动器。每一个虚拟设备驱动器204在由正被引导的OS 126初始化时使得正被引导的特定OS 126的身份和/或一个或多个OS特定功能的身份能够被ACPI子系统120查明。作为响应,ACPI子系统120可以执行特定于正被初始化的OS 126的(一个或多个)功能。照此,通过控制要基于正被引导的特定OS 126的身份和/或要针对正被引导的特定OS 126执行的具体功能的身份而被执行的具体功能,硬件厂商可以使用ACPI子系统120来选择性地启用和禁用针对该OS 126的OS特定特征和/或对象。
示例
以下提供本文所公开的技术的说明性示例。技术的实施例可以包括以下描述的示例中的任何一个或多个及其任何组合。
示例1包括一种选择性地启用平台特定的特征的计算设备,所述计算设备包括高级配置和功率接口(ACPI)子系统,其包括与ACPI子系统的虚拟设备相关联的操作系统(OS)特定功能规范,OS特定功能规范包括多个OS特定功能;以及由计算设备的OS初始化的虚拟设备驱动器逻辑,虚拟设备驱动器逻辑(i)与ACPI子系统的虚拟设备对接,以及(ii)传输对ACPI子系统中的OS特定功能规范的调用,所述调用包括从其它操作系统中唯一地标识出OS的OS的标识符,其中ACPI子系统(i)分析OS特定功能规范以基于唯一地标识OS的来自调用的标识符而确定针对OS的多个OS特定功能中的一个或多个OS特定功能,以及(ii)执行基于标识符针对OS确定的一个或多个OS特定功能。
示例2包括示例1的主题,并且其中与虚拟设备相关联的OS特定功能规范包括与虚拟设备相关联的ACPI设备特定方法(DSM)或与虚拟设备相关联的定制ACPI控制方法。
示例3包括示例1和2中任一个的主题,并且其中多个OS特定功能中的至少一个包括被配置成进行以下中的至少一个的OS特定功能:(i)向OS暴露OS特定特征或(ii)向OS暴露OS特定对象。
示例4包括示例1-3中任一个的主题,并且其中多个OS特定功能中的至少一个包括被配置成进行以下中的至少一个的OS特定功能:(i)从OS隐藏OS特定特征或(ii)从OS隐藏OS特定对象。
示例5包括示例1-4中任一个的主题,并且其中传输对ACPI子系统中的OS特定功能规范的调用包括传输对ACPI子系统中的OS特定功能规范的调用并且传递作为变元的OS的标识符。
示例6包括示例1-5中任一个的主题,并且其中与虚拟设备相关联的OS特定功能规范包括与多个不同操作系统中的每一个相关联的至少一个OS特定功能,多个操作系统中的每一个OS具有从其它操作系统中唯一地标识出OS的不同标识符。
示例7包括示例1-6中任一个的主题,并且其中OS包括第一OS并且所述标识符包括从其它操作系统中唯一地标识出第一OS的第一标识符;其中OS特定功能规范的多个OS特定功能包括针对第一OS的第一OS特定功能组以及针对不同于第一OS的计算设备的第二OS的第二OS特定功能组;并且其中第一OS特定功能组在OS特定功能规范中由第一标识符标识,并且第二OS特定功能组在OS特定功能规范中由不同于第一标识符的第二标识符标识。
示例8包括示例1-7中任一个的主题,并且还包括由计算设备的OS初始化的ACPI驱动器逻辑,ACPI驱动器逻辑在虚拟设备驱动器逻辑的初始化之前与ACPI子系统对接,其中ACPI驱动器逻辑不同于虚拟设备驱动器逻辑;其中ACPI子系统还(i)将设备数据加载到与ACPI子系统相关联的ACPI表中,其中设备数据指示ACPI子系统的虚拟设备和与虚拟设备相关联的OS特定功能规范,以及(ii)将来自ACPI表的设备数据传输到ACPI驱动器逻辑;并且其中响应于由ACPI驱动器逻辑接收到来自ACPI表的设备数据,OS枚举虚拟设备。
示例9包括示例1-8中任一个的主题,并且其中将设备数据加载到ACPI表中包括将设备数据从计算设备的ACPI基本输入/输出系统(BIOS)固件加载到ACPI表中。
示例10包括一种用于选择性地启用计算设备上的平台特定的特征的方法,所述方法包括由计算设备的操作系统(OS)初始化虚拟设备驱动器以与计算设备的高级配置和功率接口(ACPI)子系统的虚拟设备对接,ACPI子系统包括与虚拟设备相关联的OS特定功能规范,并且其中OS特定功能规范包括多个OS特定功能;由虚拟设备驱动器传输对ACPI子系统中的OS特定功能规范的调用,所述调用包括从其它操作系统中唯一地标识出OS的OS的标识符;由ACPI子系统分析OS特定功能规范以基于唯一地标识OS的来自调用的标识符而确定针对OS的多个OS特定功能中的一个或多个OS特定功能;以及由ACPI子系统执行基于标识符针对OS确定的一个或多个OS特定功能。
示例11包括示例10的主题,并且其中与虚拟设备相关联的OS特定功能规范包括与虚拟设备相关联的ACPI设备特定方法(DSM)或与虚拟设备相关联的定制ACPI控制方法。
示例12包括示例10和11中任一个的主题,并且其中多个OS特定功能中的至少一个包括被配置成进行以下中的至少一个的OS特定功能:(i)向OS暴露OS特定特征或(ii)向OS暴露OS特定对象。
示例13包括示例10-12中任一个的主题,并且其中多个OS特定功能中的至少一个包括被配置成进行以下中的至少一个的OS特定功能:(i)从OS隐藏OS特定特征或(ii)从OS隐藏OS特定对象。
示例14包括示例10-13中任一个的主题,并且其中传输对ACPI子系统中的OS特定功能规范的调用包括传输对ACPI子系统中的OS特定功能规范的调用并且传递作为变元的OS的标识符。
示例15包括示例10-14中任一个的主题,并且其中与虚拟设备相关联的OS特定功能规范包括与多个不同操作系统中的每一个相关联的至少一个OS特定功能,多个操作系统中的每一个OS具有从其它操作系统中唯一地标识出OS的不同标识符。
示例16包括示例10-15中任一个的主题,并且其中OS包括第一OS并且标识符包括从其它操作系统中唯一地标识出第一OS的第一标识符;其中OS特定功能规范的多个OS特定功能包括针对第一OS的第一OS特定功能组以及针对不同于第一OS的计算设备的第二OS的第二OS特定功能组;并且其中第一OS特定功能组在OS特定功能规范中由第一标识符标识,并且第二OS特定功能组在OS特定功能规范中由不同于第一标识符的第二标识符标识。
示例17包括示例10-16中任一个的主题,并且还包括:由计算设备的ACPI子系统将设备数据加载到与ACPI子系统相关联的ACPI表中,其中设备数据指示ACPI子系统的虚拟设备和与虚拟设备相关联的OS特定功能规范;由计算设备的OS在虚拟设备驱动器的初始化之前初始化ACPI驱动器以与ACPI子系统对接,其中ACPI驱动器不同于虚拟设备驱动器;由ACPI子系统将来自ACPI表的设备数据传输到ACPI驱动器;以及由计算设备的OS响应于由ACPI驱动器接收到来自ACPI表的设备数据而枚举虚拟设备。
示例18包括示例10-17中任一个的主题,并且其中将设备数据加载到ACPI表中包括将设备数据从计算设备的ACPI基本输入/输出系统(BIOS)固件加载到ACPI表中。
示例19包括一种选择性地启用平台特定的特征的计算设备,所述计算设备包括处理器;以及其中存储有多个指令的存储器,所述多个指令在由处理器运行时使计算设备执行示例10-18中任一个的方法。
示例20包括包含存储在其上的多个指令的一个或多个机器可读介质,所述多个指令响应于被运行而导致计算设备执行示例10-18中任一个的方法。
示例21包括一种选择性地启用平台特定的特征的计算设备,所述计算设备包括用于由计算设备的操作系统(OS)初始化虚拟设备驱动器以与计算设备的高级配置和功率接口(ACPI)子系统的虚拟设备对接的构件,ACPI子系统包括与虚拟设备相关联的OS特定功能规范,并且其中OS特定功能规范包括多个OS特定功能;用于由虚拟设备驱动器传输对ACPI子系统中的OS特定功能规范的调用的构件,所述调用包括从其它操作系统中唯一地标识出OS的OS的标识符;用于由ACPI子系统分析OS特定功能规范以基于唯一地标识OS的来自调用的标识符而确定针对OS的多个OS特定功能中的一个或多个OS特定功能的构件;以及用于由ACPI子系统执行基于所述标识符针对OS确定的一个或多个OS特定功能的构件。
示例22包括示例21的主题,并且其中与虚拟设备相关联的OS特定功能规范包括与虚拟设备相关联的ACPI设备特定方法(DSM)或与虚拟设备相关联的定制ACPI控制方法。
示例23包括示例21和22中任一个的主题,并且其中多个OS特定功能中的至少一个包括被配置成进行以下中的至少一个的OS特定功能:(i)向OS暴露OS特定特征或(ii)向OS暴露OS特定对象。
示例24包括示例21-23中任一个的主题,并且其中多个OS特定功能中的至少一个包括被配置成进行以下中的至少一个的OS特定功能:(i)从OS隐藏OS特定特征或(ii)从OS隐藏OS特定对象。
示例25包括示例21-24中任一个的主题,并且其中用于传输对ACPI子系统中的OS特定功能规范的调用的构件包括用于传输对ACPI子系统中的OS特定功能规范的调用的构件以及用于传递作为变元的OS的标识符的构件。
示例26包括示例21-25中任一个的主题,并且其中与虚拟设备相关联的OS特定功能规范包括与多个不同操作系统中的每一个相关联的至少一个OS特定功能,多个操作系统中的每一个OS具有从其它操作系统中唯一地标识出OS的不同标识符。
示例27包括示例21-26中任一个的主题,并且其中OS包括第一OS并且标识符包括从其它操作系统中唯一地标识出第一OS的第一标识符;其中OS特定功能规范的多个OS特定功能包括针对第一OS的第一OS特定功能组以及针对不同于第一OS的计算设备的第二OS的第二OS特定功能组;并且其中第一OS特定功能组在OS特定功能规范中由第一标识符标识,并且第二OS特定功能组在OS特定功能规范中由不同于第一标识符的第二标识符标识。
示例28包括示例21-27中任一个的主题,并且还包括:用于由计算设备的ACPI子系统将设备数据加载到与ACPI子系统相关联的ACPI表中的构件,其中设备数据指示ACPI子系统的虚拟设备和与虚拟设备相关联的OS特定功能规范;用于由计算设备的OS在虚拟设备驱动器的初始化之前初始化ACPI驱动器以与ACPI子系统对接的构件,其中ACPI驱动器不同于虚拟设备驱动器;用于由ACPI子系统将来自ACPI表的设备数据传输到ACPI驱动器的构件;以及用于由计算设备的OS响应于ACPI驱动器接收到来自ACPI表的设备数据而枚举虚拟设备的构件。
示例29包括示例21-28中任一个的主题,并且其中用于将设备数据加载到ACPI表中的构件包括用于将设备数据从计算设备的ACPI基本输入/输出系统(BIOS)固件加载到ACPI表中的构件。
示例30包括一种选择性地启用平台特定的特征的计算设备,所述计算设备包括高级配置和功率接口(ACPI)子系统,其包括虚拟设备和与虚拟设备相关联的功能规范,所述功能规范包括要由ACPI子系统执行的多个操作系统(OS)特定功能,其中多个OS特定功能中的每一个OS特定功能与从其它OS特定功能中唯一地标识出OS特定功能的功能标识符相关联;以及由计算设备的OS初始化的虚拟设备驱动器逻辑,其中虚拟设备驱动器逻辑特定于OS并且被配置成(i)与ACPI子系统的虚拟设备对接,以及(ii)传输对ACPI子系统中的功能规范的调用,所述调用包括对应于OS的功能规范的OS特定功能的多个功能标识符中的一个或多个,其中ACPI子系统(i)分析功能规范以基于一个或多个功能标识符而确定多个OS特定功能中的一个或多个OS特定功能,以及(ii)执行基于一个或多个功能标识符确定的一个或多个OS特定功能。
示例31包括示例30的主题,并且其中与虚拟设备相关联的功能规范包括与虚拟设备相关联的ACPI设备特定方法(DSM)。
示例32包括示例30和31中任一个的主题,并且其中多个OS特定功能中的至少一个包括被配置成进行以下中的至少一个的OS特定功能:(i)向OS暴露OS特定特征或(ii)向OS暴露OS特定对象。
示例33包括示例30-32中任一个的主题,并且其中多个OS特定功能中的至少一个包括被配置成进行以下中的至少一个的OS特定功能:(i)从OS隐藏OS特定特征或(ii)从OS隐藏OS特定对象。
示例34包括示例30-33中任一个的主题,并且还包括由计算设备的OS初始化的ACPI驱动器逻辑,ACPI驱动器逻辑在虚拟设备驱动器逻辑的初始化之前与ACPI子系统对接,其中ACPI驱动器逻辑不同于虚拟设备驱动器逻辑;其中ACPI子系统还(i)将设备数据加载到与ACPI子系统相关联的ACPI表中,其中设备数据指示ACPI子系统的虚拟设备和与虚拟设备相关联的功能规范,以及(ii)将来自ACPI表的设备数据传输到ACPI驱动器逻辑;并且其中响应于由ACPI驱动器逻辑接收到来自ACPI表的设备数据,OS枚举虚拟设备。
示例35包括示例30-34中任一个的主题,并且其中将设备数据加载到ACPI表中包括将设备数据从计算设备的ACPI基本输入/输出系统(BIOS)固件加载到ACPI表中。
示例36包括一种用于选择性地启用计算设备上的平台特定的特征的方法,所述方法包括由计算设备的操作系统(OS)初始化特定于OS的虚拟设备驱动器;由虚拟设备驱动器与高级配置和功率接口(ACPI)子系统的虚拟设备对接,ACPI子系统包括与虚拟设备相关联的功能规范,所述功能规范包括要由ACPI子系统执行的多个OS特定功能,其中多个OS特定功能中的每一个OS特定功能与从其它OS特定功能中唯一地标识出OS特定功能的功能标识符相关联;由虚拟设备驱动器传输对ACPI子系统中的功能规范的调用,所述调用包括对应于OS的功能规范的OS特定功能的多个功能标识符中的一个或多个;由ACPI子系统分析功能规范以基于一个或多个功能标识符而确定多个OS特定功能中的一个或多个OS特定功能;以及由ACPI子系统执行基于一个或多个功能标识符确定的一个或多个OS特定功能。
示例37包括示例36的主题,并且其中与虚拟设备相关联的功能规范包括与虚拟设备相关联的ACPI设备特定方法(DSM)或与虚拟设备相关联的定制ACPI控制方法。
示例38包括示例36和37中任一个的主题,并且其中多个OS特定功能中的至少一个包括被配置成进行以下中的至少一个的OS特定功能:(i)向OS暴露OS特定特征或(ii)向OS暴露OS特定对象。
示例39包括示例36-38中任一个的主题,并且其中多个OS特定功能中的至少一个包括被配置成进行以下中的至少一个的OS特定功能:(i)从OS隐藏OS特定特征或(ii)从OS隐藏OS特定对象。
示例40包括示例36-39中任一个的主题,并且还包括由计算设备的OS在虚拟设备驱动器的初始化之前初始化ACPI驱动器以与ACPI子系统对接,其中ACPI驱动器不同于虚拟设备驱动器;由ACPI子系统将设备数据加载到与ACPI子系统相关联的ACPI表中,其中设备数据指示ACPI子系统的虚拟设备和与虚拟设备相关联的功能规范;由ACPI子系统将来自ACPI表的设备数据传输到ACPI驱动器;以及由计算设备的OS枚举由ACPI驱动器接收到的来自ACPI表的设备数据。
示例41包括示例36-40中任一个的主题,并且其中将设备数据加载到ACPI表中包括将设备数据从计算设备的ACPI基本输入/输出系统(BIOS)固件加载到ACPI表中。
示例42包括一种选择性地启用平台特定的特征的计算设备,所述计算设备包括处理器;以及具有存储在其中的多个指令的存储器,所述多个指令在由处理器运行时使计算设备执行示例36-41中任一个的方法。
示例43包括包含存储在其上的多个指令的一个或多个机器可读介质,所述多个指令响应于被运行而导致计算设备执行示例36-41中任一个的方法。
示例44包括一种选择性地启用平台特定的特征的计算设备,所述计算设备包括用于由计算设备的操作系统(OS)初始化特定于OS的虚拟设备驱动器的构件;用于由虚拟设备驱动器与高级配置和功率接口(ACPI)子系统的虚拟设备对接的构件,ACPI子系统包括与虚拟设备相关联的功能规范,所述功能规范包括要由ACPI子系统执行的多个OS特定功能,其中多个OS特定功能中的每一个OS特定功能与从其它OS特定功能中唯一地标识出OS特定功能的功能标识符相关联;用于由虚拟设备驱动器传输对ACPI子系统中的功能规范的调用的构件,所述调用包括对应于OS的功能规范的OS特定功能的多个功能标识符中的一个或多个;用于由ACPI子系统分析功能规范以基于一个或多个功能标识符而确定多个OS特定功能中的一个或多个OS特定功能的构件;以及用于由ACPI子系统执行基于一个或多个功能标识符确定的一个或多个OS特定功能的构件。
示例45包括示例44的主题,并且其中与虚拟设备相关联的功能规范包括与虚拟设备相关联的ACPI设备特定方法(DSM)或与虚拟设备相关联的定制ACPI控制方法。
示例46包括示例44和45中任一个的主题,并且其中多个OS特定功能中的至少一个包括被配置成进行以下中的至少一个的OS特定功能:(i)向OS暴露OS特定特征或(ii)向OS暴露OS特定对象。
示例47包括示例44-46中任一个的主题,并且其中多个OS特定功能中的至少一个包括被配置成进行以下中的至少一个的OS特定功能:(i)从OS隐藏OS特定特征或(ii)从OS隐藏OS特定对象。
示例48包括示例44-47中任一个的主题,并且还包括:用于由计算设备的OS在虚拟设备驱动器的初始化之前初始化ACPI驱动器以与ACPI子系统对接的构件,其中ACPI驱动器不同于虚拟设备驱动器;用于由ACPI子系统将设备数据加载到与ACPI子系统相关联的ACPI表中的构件,其中设备数据指示ACPI子系统的虚拟设备和与虚拟设备相关联的功能规范;用于由ACPI子系统将来自ACPI表的设备数据传输到ACPI驱动器的构件;以及用于由计算设备的OS枚举由ACPI驱动器接收到的来自ACPI表的设备数据的构件。
示例49包括示例44-48中任一个的主题,并且其中用于将设备数据加载到ACPI表中的构件包括用于将设备数据从计算设备的ACPI基本输入/输出系统(BIOS)固件加载到ACPI表中的构件。

Claims (25)

1.一种选择性地启用平台特定的特征的计算设备,所述计算设备包括:
高级配置和功率接口(ACPI)子系统,其包括与ACPI子系统的虚拟设备相关联的操作系统(OS)特定功能规范,OS特定功能规范包括多个OS特定功能;以及
由计算设备的OS初始化的虚拟设备驱动器逻辑,虚拟设备驱动器逻辑(i)与ACPI子系统的虚拟设备对接,以及(ii)传输对ACPI子系统中的OS特定功能规范的调用,所述调用包括从其它操作系统中唯一地标识出OS的OS的标识符,
其中ACPI子系统(i)分析OS特定功能规范以基于唯一地标识OS的来自所述调用的标识符而确定针对OS的多个OS特定功能中的一个或多个OS特定功能,以及(ii)执行基于所述标识符针对OS确定的一个或多个OS特定功能。
2.根据权利要求1所述的计算设备,其中与虚拟设备相关联的OS特定功能规范包括与虚拟设备相关联的ACPI设备特定方法(DSM)或与虚拟设备相关联的定制ACPI控制方法。
3.根据权利要求1所述的计算设备,其中多个OS特定功能中的至少一个包括被配置成进行以下中的至少一个的OS特定功能:(i)向OS暴露OS特定特征或(ii)向OS暴露OS特定对象。
4.根据权利要求1所述的计算设备,其中多个OS特定功能中的至少一个包括被配置成进行以下中的至少一个的OS特定功能:(i)从OS隐藏OS特定特征或(ii)从OS隐藏OS特定对象。
5.根据权利要求1所述的计算设备,其中传输对ACPI子系统中的OS特定功能规范的调用包括传输对ACPI子系统中的OS特定功能规范的调用并且传递作为变元的OS的标识符。
6.根据权利要求1-5中任一项所述的计算设备,其中与虚拟设备相关联的OS特定功能规范包括与多个不同操作系统中的每一个相关联的至少一个OS特定功能,多个操作系统中的每一个OS具有从其它操作系统中唯一地标识出OS的不同标识符。
7.根据权利要求1-5中任一项所述的计算设备,其中OS包括第一OS并且所述标识符包括从其它操作系统中唯一地标识出第一OS的第一标识符;
其中OS特定功能规范的多个OS特定功能包括针对第一OS的第一OS特定功能组以及针对不同于第一OS的计算设备的第二OS的第二OS特定功能组;并且
其中第一OS特定功能组在OS特定功能规范中由第一标识符标识,并且第二OS特定功能组在OS特定功能规范中由不同于第一标识符的第二标识符标识。
8.根据权利要求1-5中任一项所述的计算设备,还包括:
由计算设备的OS初始化的ACPI驱动器逻辑,ACPI驱动器逻辑在虚拟设备驱动器逻辑的初始化之前与ACPI子系统对接,其中ACPI驱动器逻辑不同于虚拟设备驱动器逻辑;
其中ACPI子系统还(i)将设备数据加载到与ACPI子系统相关联的ACPI表中,其中设备数据指示ACPI子系统的虚拟设备和与虚拟设备相关联的OS特定功能规范,以及(ii)将来自ACPI表的设备数据传输到ACPI驱动器逻辑;并且
其中响应于由ACPI驱动器逻辑接收到来自ACPI表的设备数据,OS枚举虚拟设备。
9.根据权利要求8所述的计算设备,其中将设备数据加载到ACPI表中包括将设备数据从计算设备的ACPI基本输入/输出系统(BIOS)固件加载到ACPI表中。
10.一种用于选择性地启用计算设备上的平台特定的特征的方法,所述方法包括:
由计算设备的操作系统(OS)初始化虚拟设备驱动器以与计算设备的高级配置和功率接口(ACPI)子系统的虚拟设备对接,ACPI子系统包括与虚拟设备相关联的OS特定功能规范,并且其中OS特定功能规范包括多个OS特定功能;
由虚拟设备驱动器传输对ACPI子系统中的OS特定功能规范的调用,所述调用包括从其它操作系统中唯一地标识出OS的OS的标识符;
由ACPI子系统分析OS特定功能规范以基于唯一地标识OS的来自所述调用的标识符而确定针对OS的多个OS特定功能中的一个或多个OS特定功能;以及
由ACPI子系统执行基于所述标识符针对OS确定的一个或多个OS特定功能。
11.根据权利要求10所述的方法,其中与虚拟设备相关联的OS特定功能规范包括与虚拟设备相关联的ACPI设备特定方法(DSM)或与虚拟设备相关联的定制ACPI控制方法。
12.根据权利要求10所述的方法,其中多个OS特定功能中的至少一个包括被配置成进行以下中的至少一个的OS特定功能:(i)向OS暴露OS特定特征或(ii)向OS暴露OS特定对象。
13.根据权利要求10所述的方法,其中多个OS特定功能中的至少一个包括被配置成进行以下中的至少一个的OS特定功能:(i)从OS隐藏OS特定特征或(ii)从OS隐藏OS特定对象。
14.根据权利要求10所述的方法,其中传输对ACPI子系统中的OS特定功能规范的调用包括传输对ACPI子系统中的OS特定功能规范的调用并且传递作为变元的OS的标识符。
15.根据权利要求10所述的方法,其中与虚拟设备相关联的OS特定功能规范包括与多个不同操作系统中的每一个相关联的至少一个OS特定功能,多个操作系统中的每一个OS具有从其它操作系统中唯一地标识出OS的不同标识符。
16.根据权利要求10所述的方法,其中OS包括第一OS并且所述标识符包括从其它操作系统中唯一地标识出第一OS的第一标识符;
其中OS特定功能规范的多个OS特定功能包括针对第一OS的第一OS特定功能组以及针对不同于第一OS的计算设备的第二OS的第二OS特定功能组;并且
其中第一OS特定功能组在OS特定功能规范中由第一标识符标识,并且第二OS特定功能组在OS特定功能规范中由不同于第一标识符的第二标识符标识。
17.根据权利要求10所述的方法,还包括:
由计算设备的ACPI子系统将设备数据加载到与ACPI子系统相关联的ACPI表中,其中设备数据指示ACPI子系统的虚拟设备和与虚拟设备相关联的OS特定功能规范;
由计算设备的OS在虚拟设备驱动器的初始化之前初始化ACPI驱动器以与ACPI子系统对接,其中ACPI驱动器不同于虚拟设备驱动器;
由ACPI子系统将来自ACPI表的设备数据传输到ACPI驱动器;以及
由计算设备的OS响应于ACPI驱动器接收到来自ACPI表的设备数据而枚举虚拟设备。
18.根据权利要求17所述的方法,其中将设备数据加载到ACPI表中包括将设备数据从计算设备的ACPI基本输入/输出系统(BIOS)固件加载到ACPI表中。
19.包括存储在其上的多个指令的一个或多个机器可读介质,所述多个指令响应于被运行而导致计算设备执行权利要求10-18中任一项的方法。
20.一种选择性地启用平台特定的特征的计算设备,所述计算设备包括:
高级配置和功率接口(ACPI)子系统,其包括虚拟设备和与虚拟设备相关联的功能规范,功能规范包括要由ACPI子系统执行的多个操作系统(OS)特定功能,其中多个OS特定功能中的每一个OS特定功能与从其它OS特定功能中唯一地标识出OS特定功能的功能标识符相关联;以及
由计算设备的OS初始化的虚拟设备驱动器逻辑,其中虚拟设备驱动器逻辑特定于OS并且被配置成(i)与ACPI子系统的虚拟设备对接,以及(ii)传输对ACPI子系统中的功能规范的调用,所述调用包括对应于OS的功能规范的OS特定功能的多个功能标识符中的一个或多个,
其中ACPI子系统(i)分析功能规范以基于一个或多个功能标识符而确定多个OS特定功能中的一个或多个OS特定功能,以及(ii)执行基于一个或多个功能标识符确定的一个或多个OS特定功能。
21.根据权利要求20所述的计算设备,其中与虚拟设备相关联的功能规范包括与虚拟设备相关联的ACPI设备特定方法(DSM)。
22.根据权利要求20所述的计算设备,其中多个OS特定功能中的至少一个包括被配置成进行以下中的至少一个的OS特定功能:(i)向OS暴露OS特定特征或(ii)向OS暴露OS特定对象。
23.根据权利要求20所述的计算设备,其中多个OS特定功能中的至少一个包括被配置成进行以下中的至少一个的OS特定功能:(i)从OS隐藏OS特定特征或(ii)从OS隐藏OS特定对象。
24.根据权利要求20-23中任一项所述的计算设备,还包括:
由计算设备的OS初始化的ACPI驱动器逻辑,ACPI驱动器逻辑在虚拟设备驱动器逻辑的初始化之前与ACPI子系统对接,其中ACPI驱动器逻辑不同于虚拟设备驱动器逻辑;
其中ACPI子系统还(i)将设备数据加载到与ACPI子系统相关联的ACPI表中,其中设备数据指示ACPI子系统的虚拟设备和与虚拟设备相关联的功能规范,以及(ii)将来自ACPI表的设备数据传输到ACPI驱动器逻辑;并且
其中响应于由ACPI驱动器逻辑接收到来自ACPI表的设备数据,OS枚举虚拟设备。
25.根据权利要求24所述的计算设备,其中将设备数据加载到ACPI表中包括将设备数据从计算设备的ACPI基本输入/输出系统(BIOS)固件加载到ACPI表中。
CN201580009449.7A 2014-03-21 2015-03-04 选择性地启用平台特定的特征 Pending CN105980981A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/221983 2014-03-21
US14/221,983 US20150268970A1 (en) 2014-03-21 2014-03-21 Selectively enabling platform-specific features
PCT/US2015/018769 WO2015142521A1 (en) 2014-03-21 2015-03-04 Selectively enabling platform-specific features

Publications (1)

Publication Number Publication Date
CN105980981A true CN105980981A (zh) 2016-09-28

Family

ID=54142195

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580009449.7A Pending CN105980981A (zh) 2014-03-21 2015-03-04 选择性地启用平台特定的特征

Country Status (6)

Country Link
US (1) US20150268970A1 (zh)
EP (1) EP3120241A4 (zh)
JP (1) JP6262870B2 (zh)
KR (1) KR101935290B1 (zh)
CN (1) CN105980981A (zh)
WO (1) WO2015142521A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10282538B2 (en) * 2014-12-27 2019-05-07 Intel Corporation Technologies for providing hardware subscription models using pre-boot update mechanism
US10498822B2 (en) * 2015-01-30 2019-12-03 Pure Storage, Inc. Adaptive scanning rates
US10063569B2 (en) * 2015-03-24 2018-08-28 Intel Corporation Custom protection against side channel attacks
US9842072B2 (en) 2015-03-27 2017-12-12 Toshiba Global Commerce Solutions Holdings Corporation Systems and methods for implementing a user mode virtual serial communications port emulator
CN107533441B (zh) * 2016-02-12 2020-12-25 慧与发展有限责任合伙企业 创建操作系统卷
US10620963B2 (en) * 2017-07-19 2020-04-14 Vmware, Inc. Providing fallback drivers for IO devices in a computing system
US11010224B2 (en) * 2018-07-06 2021-05-18 Dell Products L.P. System and method of utilizing a watchdog timer
US11281472B2 (en) * 2020-02-03 2022-03-22 Dell Products L.P. System and method for securing compromised information handling systems
JP7444728B2 (ja) * 2020-08-11 2024-03-06 シャープ株式会社 電子機器、制御方法、及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101203834A (zh) * 2005-06-30 2008-06-18 英特尔公司 用于在虚拟机监视器和符合acpi的客户操作系统之间进行双向通信的方法、装置及系统
CN101408792A (zh) * 2007-10-10 2009-04-15 英业达股份有限公司 电源管理装置与其管理方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5604904A (en) * 1994-09-26 1997-02-18 Intel Corporation Method and apparatus for accessing system management functions of a computer system
US20030225928A1 (en) * 2002-05-28 2003-12-04 Sun Microsystems, Inc. Method, system, and program for managing access to a device by device specific components and operating system specific components
US6986032B2 (en) * 2002-08-07 2006-01-10 Hewlett-Packard Development Company, L.P. System and method for using an operating system defined field in ACPI support multiple operating systems
US20040216140A1 (en) * 2002-10-31 2004-10-28 Hiltgen Daniel K. Method and system for accessing system operations through an interface layer
US8056084B2 (en) * 2007-01-25 2011-11-08 Hewlett-Packard Development Company, L.P. Method and system for dynamically reallocating a resource among operating systems without rebooting of the computer system
US8584229B2 (en) * 2007-12-21 2013-11-12 Intel Corporation Methods and apparatus supporting access to physical and virtual trusted platform modules
US8799691B2 (en) * 2009-01-07 2014-08-05 Hewlett-Packard Development Company, L.P. Hierarchical power management
US7853817B2 (en) * 2009-02-26 2010-12-14 Apple Inc. Power management independent of CPU hardware support

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101203834A (zh) * 2005-06-30 2008-06-18 英特尔公司 用于在虚拟机监视器和符合acpi的客户操作系统之间进行双向通信的方法、装置及系统
CN101408792A (zh) * 2007-10-10 2009-04-15 英业达股份有限公司 电源管理装置与其管理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WWW.ACPI.INFO: "《Advanced Configuration and Power》", 《HTTP://WWW.ACPI.INFO/SPEC50A.HTM》 *

Also Published As

Publication number Publication date
WO2015142521A1 (en) 2015-09-24
JP2017508205A (ja) 2017-03-23
EP3120241A4 (en) 2017-12-06
JP6262870B2 (ja) 2018-01-17
EP3120241A1 (en) 2017-01-25
US20150268970A1 (en) 2015-09-24
KR101935290B1 (ko) 2019-01-04
KR20160108499A (ko) 2016-09-19

Similar Documents

Publication Publication Date Title
CN105980981A (zh) 选择性地启用平台特定的特征
CN107423169B (zh) 用于测试高速外围设备互连设备的方法和系统
US10387362B2 (en) Secondary data channel communication system
US20170046151A1 (en) System and method for adding and storing groups of firmware default settings
US9563437B2 (en) Technologies for pre-memory phase initialization of a computing device
EP2810173B1 (en) Flexible port configuration based on interface coupling
US10572434B2 (en) Intelligent certificate discovery in physical and virtualized networks
US9806959B2 (en) Baseboard management controller (BMC) to host communication through device independent universal serial bus (USB) interface
US9372814B2 (en) System and method for transferring an active state between a powerful processor and a less powerful processor
US10430366B2 (en) Systems and methods for configuration of hot-inserted device prior to operating system control of device
US9779047B2 (en) Universal intelligent platform management interface (IPMI) host to baseboard management controller (BMC) communication for non-x86 and legacy free systems
US9519503B2 (en) Systems and methods for virtual machine attribution with fault resilient memory tag
CN109426527B (zh) 在uefi固件及作业系统间分享蓝牙数据的电脑系统及其方法
US9946552B2 (en) System and method for detecting redundant array of independent disks (RAID) controller state from baseboard management controller (BMC)
EP2255291B1 (en) Systems and methods of communicatively coupling a host computing device and a peripheral device
CN113253978A (zh) 嵌入式软件开发方法、模型、电子设备和介质
US9977730B2 (en) System and method for optimizing system memory and input/output operations memory
CN107818061B (zh) 关联外围设备的数据总线和管理总线
US11409683B2 (en) Systems and methods for single-wire multi-protocol discovery and assignment to protocol-aware purpose-built engines
US10430367B1 (en) Systems and methods for optimal placement of information handling resource
US10108575B2 (en) Concurrent maintenance of modular PCIe I/O expansion drawer
US11507157B2 (en) Hot-inserted devices
US11748288B2 (en) Discovery and safe enablement of high-speed management interface via PCIe card electro-mechanical connector
US20170153989A1 (en) Dynamic Allocation of Computer Bus Lanes
CN107169378B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20160928

RJ01 Rejection of invention patent application after publication