一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

验证软件图像的制作方法

2023-02-06 16:37:47 来源:中国专利 TAG:

验证软件图像
1.交叉参考
2.本专利申请要求保护杜瓦尔(duval)等人在2020年6月18日申请的题为“验证软件图像(authenticating software images)”的第16/905,046号美国专利申请的权益,所述申请让与给本受让人且以引用的方式明确并入本文中。
技术领域
3.技术领域涉及验证软件图像。


背景技术:

4.下文大体上涉及一或多个存储器系统,且更具体地说,涉及验证软件图像。
5.存储器装置广泛地用于在例如计算机、无线通信装置、摄影机、数字显示器及类似者的各种电子装置中存储信息。信息通过使存储器装置内的存储器单元编程为各种状态来存储。举例来说,二元存储器单元可经编程为常常通过逻辑1或逻辑0指明的两个经支持状态中的一者。在一些实例中,单一存储器单元可支持两个以上状态,所述状态中的任一者可得以存储。为了存取所存储信息,组件可读取或感测存储器装置中的至少一种所存储状态。为了存储信息,组件可对存储器装置中的状态进行写入或编程。
6.存在各种类型的存储器装置及存储器单元,包含磁性硬盘、随机存取存储器(ram)、只读存储器(rom)、动态ram(dram)、同步动态ram(sdram)、铁电ram(feram)、磁性ram(mram)、电阻式ram(rram)、快闪存储器、相变存储器(pcm)、自选择存储器、硫族化物存储器技术及其它。存储器单元可为易失性或非易失性的。即使在不存在外部电源的情况下,例如feram的非易失性存储器也可维持其所存储逻辑状态持续扩展的时间周期。易失性存储器装置,例如dram,在与外部电源断开连接时可能丢失其所存储状态。
附图说明
7.图1示出根据如本文所公开的实例的支持验证软件图像的系统的实例。
8.图2示出根据如本文所公开的实例的支持验证软件图像的计算系统的实例。
9.图3示出根据如本文所公开的实例的支持验证软件图像的过程流程图的实例。
10.图4示出根据如本文所公开的实例的支持验证软件图像的框图的实例。
11.图5示出根据如本文所公开的实例的支持验证软件图像的树型图的实例。
12.图6示出根据如本文所公开的实例的支持验证软件图像的过程流程图的实例。
13.图7展示根据如本文所公开的实例的支持验证软件图像的存储器装置的框图。
14.图8展示根据如本文所公开的实例的说明支持验证软件图像的一或多种方法的流程图。
具体实施方式
15.一些计算系统可包含一或多个虚拟机。虚拟机可为提供物理计算机的功能性的计
算机系统的仿真。在一些实例中,虚拟机可通过主机计算装置运行。虚拟机原始代码可存储于软件图像中。类似物理计算装置,虚拟机可通过来访用户(例如,使用访客配置文件的个人)存取,且可使用软件更新周期性地进行更新。在一些情况下,恶意行动者(例如,黑客)可通过更改虚拟机的代码的一或多个方面来修改虚拟机的行为,包含修改预期用于软件更新的代码。因此,验证软件图像以防止恶意行动者更改或获得虚拟机的一或多个方面的控制可为有益的。
16.本文中描述用于验证虚拟机的软件图像的技术。在主机计算装置上运行的每一虚拟机可通过不同用户存取,且其操作系统及软件程序可在不同版本上运行。为验证不同虚拟机的软件图像,可将与不同用户相关联的数据的指示及软件图像的版本存储为经保存至安全存储装置的树型结构中的节点。另外,可针对每一节点产生散列,其基于数据的相关指示及树中的先前节点(例如,父节点)的散列。使用父节点的散列来产生散列可缩减产生散列所使用的时间,且可减小软件图像的数据的大小,因此减小安全存储装置中用以存储软件图像的空间。
17.在一些情况下,可在启动序列期间验证软件图像,其可指虚拟机何时接通或软件程序何时断开。在启动序列期间,虚拟机可计算表示正在验证的软件图像的当前状态的散列。可将所计算的散列与存储于安全存储装置的树型结构中的相关散列进行比较。举例来说,如果正在验证在第二版本(例如,版本2.0)上运行的软件程序,那么可将所计算的散列与存储于安全存储装置中的与软件图像的第二版本相关联的散列进行比较。
18.如果所比较散列匹配,那么软件图像可得以验证(例如,软件图像可能不被更改)。在这些情况下,软件图像可继续启动序列(例如,软件图像可启动)。然而,如果所比较散列不匹配,那么软件图像可已被更改。如果软件图像已被更改,那么启动序列可能不会完成,此可防止用户与虚拟机交互,且因此防止来自潜在黑客攻击的进一步伤害。
19.本公开的特征最初在如参看图1及2所描述的系统的上下文中加以描述。本公开的特征描述于过程流程图、框图及树型图的上下文中,如参看图3至6所描述。本公开的这些及其它特征通过关于如参看图7及8描述的验证软件图像的设备图及流程图进一步说明,且参考所述图进行描述。
20.图1示出根据如本文所公开的实例的支持验证软件图像的系统100的实例。系统100可包含终端装置105及管理服务器185。
21.终端装置105可包含超管理器117及存储装置112。存储装置可包含经配置以至少安全地存储装置侧密钥135、软件图像数据140及软件散列数据125的安全组件110。在一些情况下,安全组件110可存储管理密钥120。装置侧密钥135可为服务器根密钥(srk)或例如管理公共密钥及装置私用密钥的一组两个密钥的实例。服务器根密钥或管理公共密钥可允许拥有srk或管理私用密钥的副本的实体通过打开安全组件10的安全性特征来管理安全组件110。存储装置112可包含可操作以执行如本文所论述的一或多个验证程序的与存储器装置相关联的一或多个组件。终端装置105可为车辆的信息娱乐系统、个人计算机、便携式电子装置、服务器或任何其它类型的计算装置的实例。
22.存储装置112可集成于终端装置105中,所述终端装置可包含与存储装置112交互的超管理器117。超管理器117可实施于硬件或软件中,且至少部分用以负载来自存储装置112的软件图像,以供在终端装置105上运行一或多个虚拟机。在于终端装置105上运行虚拟
机之前,超管理器可运用存储装置112证实虚拟机的软件图像是否已被篡改,且选择并不运行其代码已由恶意行动者修改的虚拟机。
23.在一些实例中,存储装置112可包含一或多个软件图像。在软件图像可运行之前(例如,在启动软件图像之前),可验证图像以确保底层代码尚未被无意地更改。在验证图像的第一部分期间,管理服务器185或拥有主机侧密钥137的任何实体可向安全组件110发出安全命令,以基于软件图像数据140及装置侧密钥135而计算且存储散列115(例如,金色软件散列)。在验证图像的后续部分期间,存储装置112可基于正在验证的图像的软件图像数据140(例如,当前数据)而计算散列。存储装置112可将所述散列与散列115进行比较以验证软件图像。
24.系统100可包含与终端装置105通信的管理服务器150。管理服务器150可至少包含第一软件图像155、第二软件图像160及主机侧密钥137。主机侧密钥137可为srk或例如管理私用密钥及装置公共密钥的一组两个密钥的实例。当管理服务器185将软件图像数据下载至存储装置112中时,其还可向安全组件110发出安全命令以产生散列115。
25.在一些实例中,管理服务器185可选择产生表示第一软件图像155与第二软件图像160之间的差异的补丁文件。管理服务器185可接着选择将补丁文件下载至存储装置112的软件图像数据140组件中。
26.本文中描述用于验证存储装置112的软件图像的技术。在一些实例中,可产生与软件图像相关联的散列115(例如,金色软件散列115)且将其存储于树型结构中。可将软件图像的不同版本的散列存储为树型结构中的节点,且可使用父节点的散列产生对应散列。可接着将存储于树型结构中的散列115与由存储装置112产生的对应散列进行比较以验证软件图像。将树型结构用于验证软件图像可缓解更改存储装置112上的软件图像的底层代码的恶意尝试。此外,树型结构可减少用于证实对应软件图像的存储的量,同时改进终端装置105的启动时间。
27.图2示出根据如本文所公开的实例的支持验证软件图像的计算系统200的实例。计算系统200可包含一或多个主机计算装置215,其可运行一或多个软件图像205。主机计算装置215可经配置以与安全存储装置225通信。安全存储装置225的至少一部分可为一或多个主机计算装置215可存取的,且安全存储装置225的另一部分可为一或多个主机计算装置215不可存取的。在一些实例中,可使用本文所描述的方法验证软件图像205,其可缩减用以验证对应软件图像205的时间及存储空间。
28.计算系统200可包含可为软件图像205的实例的多个软件图像205。一或多个虚拟机可通过单个主机计算装置215运行。举例来说,主机计算装置215-a可运行与软件图像205-a、205-b及205-n相关联的虚拟机。另外地或替代性地,主机计算装置215-b可运行与软件图像205-c、205-d及205-z相关联的虚拟机。在一些实例中,n及z可为正整数,使得主机计算装置215-a及主机计算装置215-b可运行任何数量的虚拟机。主机计算装置215可为服务器或可包含服务器。
29.每一主机计算装置215可包含一或多个超管理器210。对应虚拟机可分别在与主机计算装置215-a及主机计算装置215-b相关联的超管理器210-a或超管理器210-b上运行。每一超管理器210可为或可包含经配置以运行每一虚拟机的操作系统的计算机软件、固件或硬件。超管理器210可向虚拟机呈现虚拟操作平台,且可管理由每一虚拟机运行的操作系统
的执行。在单个超管理器210上运行的每一虚拟机可包含在运行之前进行验证的软件图像。在一些实例中,不同虚拟机可运行软件图像的不同版本和/或可包含可在运行之前进行验证的访客配置文件。
30.每一主机计算装置215可包含本地随机存取存储器以执行本文中所描述的功能。一或多个主机计算装置215可存储关于安全存储装置225的信息。安全存储装置225的至少部分可为可通过对应超管理器210存取的(例如,独立于超管理器210),或可为对应超管理器210的硬件组件。安全存储装置225可经配置以存储由个别虚拟机运行的操作系统或软件。在一些实例中,安全存储装置225可存储待提供至一或多个虚拟机的软件更新。安全存储装置225可经配置以在软件图像205初始化或启动时验证所述软件图像,以验证软件图像是否安全。验证程序失效可指示与软件图像205相关联的代码已以一些方式被篡改或更改。举例来说,安全存储装置225可在虚拟机可启动之前验证虚拟机的代码。
31.主机计算装置215和/或虚拟机可与安全存储装置225通信。举例来说,主机计算装置215-a及主机计算装置215-b可各自与安全存储装置225通信。主机计算装置215可经配置以将数据提供至安全存储装置225,且安全存储装置225可将数据存储于主机计算装置215不可存取的内部树型结构中。安全存储装置225可经配置以针对与主机计算装置215相关联的任何软件图像205或虚拟机或通过软件图像205或虚拟机运行的程序执行一或多个安全性操作和/或一或多个验证操作。安全存储装置225可包含主机计算装置215不可存取的存储器的一部分、超管理器210、一或多个软件图像205或其一组合。树可包含初始软件图像(或至存储有初始软件图像之处的指标)及具有对应节点的一或多个分支。树型结构中的每一节点可表示与基础图像相关联的数据(例如,数据的地址或指标),及用于验证的对应散列。可基于树或基础图像的不同版本(例如,由于软件更新)中的先前散列(例如,基于父节点的散列)产生个别散列。
32.在一些情况下,虚拟机可对被黑客攻击敏感。举例来说,恶意行动者可通过修改代码的一或多个方面,尝试经由主机计算装置获得对虚拟机的存取。如本文所描述,安全存储装置225可经配置以在其用以确保软件图像205的代码尚未被篡改之前验证软件图像205。安全存储装置225可将树型结构用于验证软件图像可通过在对应虚拟机启动之前经由树型结构中的节点验证虚拟机,来缓解此黑客攻击后果。此外,树型结构可减少用于证实对应软件图像的存储的量,同时改进虚拟机的启动时间。
33.图3示出根据如本文所公开的实例的支持验证软件图像的实例过程流程图300。过程流程图300可说明如参考图2所描述的计算系统200的一或多个组件的操作。举例来说,过程流程图300可说明验证如参考图2所描述的软件图像205。过程流程图300可说明主机计算装置305及安全存储装置310的操作。在一些实例中,主机计算装置305可实施虚拟机的方面。
34.在一些实例中,可(例如,在启动序列期间)验证虚拟机的图像(例如,软件图像)。软件图像可为操作系统、软件程序、虚拟机或其类似者的实例。因为虚拟机可对黑客攻击敏感,其中软件图像的代码的一或多个方面得以更改,所以在虚拟机启动之前验证软件图像可为有益的。如果代码已被更改,且在代码已被更改时防止虚拟机启动,那么可在用户能够存取虚拟机之前检测或固定恶意动作。在一些实例中,为验证虚拟机,可将与软件图像相关联的不同版本和/或不同用户配置文件的散列存储至安全存储装置310。在一些实例中,散
列可存储有相关数据的指示符(例如,密钥)。
35.在315,主机计算装置305可识别与虚拟机相关联的软件图像(例如,基础图像)。主机计算装置305可将软件图像320存储于安全存储装置310上。主机计算装置305可产生与软件图像320相关联的保存命令325且将所述保存命令发送至安全存储装置310。软件图像320可为虚拟机、操作系统、软件程序、用于操作系统或程序的一组用户设定或其类似者的实例。主机计算装置305可将软件图像320及保存命令325传输至安全存储装置310。
36.安全存储装置310可从主机计算装置305接收命令325及软件图像320。命令325(例如,保存命令)可用于保存允许安全存储装置310在稍后初始化或启动时验证软件图像320的与软件图像相关联的数据。在一些实例中,命令325可用于虚拟机的基础版本。在一些实例中,命令325可用于虚拟机的经更新版本。在一些实例中,命令325可用于保存与虚拟机的特定用户(例如,访客用户)相关联的数据以供验证。另外地或替代性地,命令325可指示用以保存至安全存储装置310中的软件图像320的存储器地址(或地址范围)。因此,可在首先安装操作系统或软件程序时或在特定用户的初始启动序列或设定时接收初始保存命令325。在其它实例中,主机计算装置305可将与虚拟相关联的软件图像的快照周期性地保存至安全存储装置310。可基于正在保存的快照将命令325发送至安全存储装置310。
37.在330,安全存储装置310可基于接收保存命令325而产生软件图像320的散列(例如,密码散列、第一散列)。举例来说,软件图像320可为如本文所描述的基础图像,且可基于与基础图像相关联的数据或代码而产生散列。可例如使用安全散列算法(sha)产生散列。
38.安全存储装置310还可产生与软件图像320相关联的识别符和/或软件图像320的散列。安全存储装置310可识别与软件图像320相关联的数据,且产生减少存储于树型结构中的信息的量的指示。在一些实例中,安全存储装置310可识别底层数据的地址(例如,地址范围),且使用所述地址作为指示的部分。识别符可保存至安全存储装置310,且可用于验证虚拟机的软件图像。在一些实例中,可通过主机计算装置305产生所述指示或密钥的一些或所有,且将其发送至安全存储装置310。识别符可与操作系统或特定软件程序的第一版本(例如,版本1.0)相关联,或可与特定用户的初始数据结构相关联。此识别符可被称作“基础图像”,且可为存储至安全存储装置310的树型结构中的初始节点。存储至树型结构的任何额外节点可视基础图像而定。
39.在335,可将散列及识别符存储于主机计算装置305不可存取的安全存储装置310的一部分中。由安全存储装置310产生的散列可为用以在软件图像的初始化程序期间确认其它散列的散列的实例。因此,存储经产生为保存命令325的部分的散列用于未来验证程序,且不可通过主机计算装置存取。散列的不可存取性可防止黑客更改所存储散列,且因此使得验证程序更可靠。所述指示可包含至存储有相关软件图像的存储器的指标。所述指示可包含关于相关软件图像如何涉及相同程序或虚拟机的其它软件图像的信息。举例来说,识别符可指示软件图像为另一基础版本的经更新版本。参考图4及5描述关于软件版本之间的关系的额外细节。其中存储有识别符及散列的安全存储装置310的部分可包含非易失性存储器,且可为主机计算装置305不可存取的。由于识别符及散列不可由主机计算装置305存取,数据可对恶意行动者为不可见,同时在验证程序期间仍可由安全存储装置310存取。
40.在340,主机计算装置305可任选地接收软件图像的一或多个软件更新。举例来说,主机计算装置305可接收与虚拟机相关联的操作系统或软件程序的软件更新。当主机计算
装置305接收软件更新时,可安装所述更新。
41.在345,可视需要对虚拟机执行软件更新。在一些实例中,在软件更新期间,虚拟机可接收(例如,下载)包含软件图像的经更新版本的整个文件。在其它实例中,主机计算装置305可接收仅仅包含基础图像与经更新版本之间的差异的文件(例如,补丁文件)。在两者中任一例项中,可对虚拟机执行软件更新。
42.在一些实例中(图中未展示),可通过外部服务器将软件更新提供至主机计算装置305。如本文所论述,恶意行动者可试图经由主机计算装置305获得对虚拟机的存取。安全存储装置310可产生与软件更新相关联的软件图像的初始散列,且在初始化程序期间使用所述散列证实软件更新的内容(例如,验证文件)。
43.主机计算装置305可将与软件更新相关联的软件图像350及保存命令355传输至安全存储装置310。软件图像350可与软件图像320相关,且可包含适用于软件图像320的补丁以完成软件更新。
44.在360,安全存储装置310可基于接收保存命令355而产生软件图像350的散列(例如,密码散列、第一散列)。安全存储装置310还可产生与软件图像350相关联的识别符和/或软件图像350的散列。当产生软件图像350的散列为基础图像(例如,软件图像320)的经更新版本时,安全存储装置310可使用第一散列及软件图像350的至少部分产生新散列,而非使用软件图像320及软件图像350产生新散列。
45.安全存储装置310可识别与软件图像350相关联的数据,且产生减少存储于树型结构中的信息的量的指示。在一些实例中,安全存储装置310可识别底层数据的地址(例如,地址范围),且使用所述地址作为指示的部分。识别符可保存至安全存储装置310,且可用于验证虚拟机的软件图像。在一些实例中,可通过主机计算装置305产生识别符的一些或所有,且将其发送至安全存储装置310。因为此为软件更新,所以识别符可与操作系统或特定软件程序的第二或后续版本(例如,版本2.0)相关联。此识别符可为存储至安全存储装置310的树型结构中的次级节点。如参考图5所描述,次级节点的指示可包含将次级节点与树型结构中的其它节点连结的信息。
46.在370,可将散列及识别符存储于主机计算装置305不可存取的安全存储装置310的一部分中。由安全存储装置310产生的散列可为用以在软件图像的初始化程序期间确认其它散列的散列的实例。因此,存储经产生为保存命令355的部分的散列用于未来验证程序,且不可通过主机计算装置存取。散列的不可存取性可防止黑客更改所存储散列,且因此使得验证程序更可靠。所述指示可包含至存储有相关软件图像的存储器的指标。所述指示可包含关于相关软件图像如何涉及相同程序或虚拟机的其它软件图像的信息。举例来说,识别符可指示软件图像为另一基础版本的经更新版本。参考图4及5描述关于软件版本之间的关系的额外细节。其中存储有识别符及散列的安全存储装置310的部分可包含非易失性存储器,且可为主机计算装置305不可存取的。由于识别符及散列不可由主机计算装置305存取,数据可对恶意行动者为不可见,同时在验证程序期间仍可由安全存储装置310存取。
47.在一些实例中,命令355可用于保存与虚拟机的所识别访客用户相关联的数据。在一些实例中,可在虚拟机上建立访客配置文件,且保存命令可用于与访客相关联的软件图像。在一些实例中,安全存储装置310可更新一或多个所存储识别符和/或散列。举例来说,软件图像可体验不与软件更新相关联的数据变化。在这些情况下,可将数据变化传达至安
全存储装置310,且安全存储装置310可更新与软件图像相关联的任何所存储识别符。在其它实例中,安全存储装置310可计算(例如,重新计算)与经更新数据相关联的一或多个散列。
48.尽管图3示出将单个虚拟机的项保存至安全存储装置310的树型结构,但可将多个虚拟机的项保存至安全存储装置310作为同一或不同树型结构的部分。举例来说,与软件图像相关联且在主机计算装置305上运行的一些或所有虚拟机可将项(例如,节点)存储于树型结构中。下文参考图4及5描述项及树型结构的实例。
49.图4示出根据如本文所公开的实例的支持验证软件图像的框图400的实例。框图400可说明产生存储至安全存储装置(例如,如参考图3所描述的安全存储装置310)的一或多个散列。举例来说,框图400可说明将散列算法应用于不同字符串405,且基于应用散列算法而应用于所得散列410。在一些实例中,可响应于如参考图3所描述的命令(例如,保存命令)而应用散列算法。
50.虚拟机的代码的一些更新可相较于基础图像的大小相对较小。如果每当验证虚拟机的版本时将计算基础图像的散列,那么其使用大量计算资源。为减少响应于保存命令(如参考图3所描述)或测量命令(如参考图6所描述)产生散列的计算资源的量,可使用更早版本的散列产生后续版本的散列。此可因为其可减小正在散列的信息的量而减少用于散列的计算资源的量。
51.在第一实例中,可将散列算法(例如,sha)应用于基础图像415。基础图像可指软件图像的第一版本(例如,版本1.0),或可与特定用户、操作系统或软件程序的初始数据结构相关联。当将散列算法应用于基础图像415时,所得散列可为基础图像散列420(例如,hash_b1)。在一些实例中,可将基础图像散列420存储至如本文中所描述的安全存储装置。
52.在第二实例中,可将散列算法(例如,sha)应用于字符串405,其包含基础图像散列420及软件图像的第二版本425、特定用户、操作系统或软件程序的数据结构。第二版本425可表示基础图像415的经修改版本。因此,在本文中所描述的树型结构中,第二版本425可取决于基础图像。为产生第二图像散列430(例如,hash_b1v2),可使用基础图像的散列(例如,基础图像散列420)及第二版本425的代码。在一些实例中,可将第二图像散列430存储至如本文中所描述的安全存储装置。
53.在另一实例中,可将散列算法(例如,sha)应用于字符串405,其包含基础图像散列420及与访客图像435相关联的数据结构。访客图像435可表示基础图像415的经修改版本。因此,在本文中所描述的树型结构中,访客图像435可取决于基础图像。为产生访客散列440(例如,hash_b1g1),可使用基础图像的散列(例如,基础图像散列420)及访客435的代码。在一些实例中,可将访客散列440存储至如本文中所描述的安全存储装置。
54.可将散列算法(例如,sha)应用于字符串405,其包含访客散列440及第二版本散列430及与访客图像435相关联的数据结构。访客图像435可表示基础第二版本425的经修改版本。因此,在本文中所描述的树型结构中,访客图像435可取决于第二版本425。为产生第二版本访客散列445(例如,hash_b1v2g1),可使用服务器版本425的散列(例如,第二版本散列430)及访客435的代码。在一些实例中,可将访客版本访客散列445存储至如本文中所描述的安全存储装置。
55.另外地或替代性地,可将散列算法(例如,sha)应用于字符串,其包含访客散列440
及第二版本425。第二版本425可表示基础图像415的经修改版本。因此,在本文中所描述的树型结构中,第二版本可取决于基础图像415。为产生访客第二版本散列450(例如,hash_b1g1v2),可使用访客440的散列(例如,访客散列440)及第二版本425的代码。在一些实例中,可将访客第二版本散列450存储至如本文中所描述的安全存储装置。
56.图5示出根据如本文所公开的实例的支持验证软件图像的树型图500的实例。树型图500可说明一或多个散列(例如,如参考图4所描述的所得散列410)及保存至安全存储装置(例如如参考图3所描述的安全存储装置310)的相关识别符。在一些实例中,可响应于如参考图3所描述的虚拟机接收一或多个命令(例如,保存命令)而存储散列及识别符。
57.树型结构可存储与基础图像相关联的识别符505及散列510。如本文所论述,基础图像可指软件图像的第一版本(例如,版本1.0),或可与特定用户、操作系统或软件程序的初始数据结构相关联。当散列算法应用于基础图像(例如,应用于识别符505)时,所得散列可为散列510,其可为如参考图4所描述的基础图像散列420(例如,hash_b1)的实例。识别符505及散列510可存储为树型结构中的初始节点。
58.在一些实例中,可将基础图像的数据结构更新至第二版本(例如,版本2.0)。因此,树型结构可存储与经更新图像相关联的识别符515及散列520。如本文所论述,可通过将散列算法应用于基础图像散列(例如,散列510)及与第二版本相关联的代码来产生散列520。所得散列可为散列520,其可为如参考图4所描述的第二图像散列430(例如,hash_b1v2)的实例。因为第二版本可为基础图像的经修改版本,所以识别符515可指示节点为来自与基础图像相关联的基础节点的相关节点。
59.另外地或替代性地,可将基础图像的数据结构更新至第三版本(例如,版本3.0)。因此,树型结构可存储与经更新图像相关联的识别符525及散列530。如本文所论述,可通过将散列算法应用于基础图像散列(例如,散列510)及与第三版本相关联的代码来产生散列520。所得散列可为散列530,其可为第三图像散列530(例如,hash_b1v3)的实例。因为第三版本可为基础图像的经修改版本,所以识别符525可指示节点为来自与基础图像相关联的基础节点的相关节点。
60.基础图像的数据结构可经更新以包含访客配置文件。因此,树型结构可存储与经更新图像相关联的识别符535及散列540。可通过将散列算法应用于基础图像散列(例如,散列510)及与访客配置文件相关联的代码来产生散列540。因此,可将散列算法应用于散列510及识别符535。所得散列可为散列540,其可为如参考图4所描述的访客散列440(例如,hash_b1g1)的实例。因为访客配置文件可为基础图像的经修改版本,所以识别符535可指示节点为来自与基础图像相关联的基础节点的相关节点。
61.基础图像的第三版本的数据结构可经更新以包含访客配置文件。因此,树型结构可存储与经更新图像相关联的识别符545及散列550。可通过将散列算法应用于第三版本散列(例如,散列530)及与访客配置文件相关联的代码来产生散列550。因此,可将散列算法应用于散列530及识别符545。所得散列可为散列550,其可为第三版本访客散列(例如,hash_v3g1)的实例。因为第三版本访客配置文件可为第三版本及基础图像的经修改版本,所以密钥可指示节点为来自与第三版本相关联的节点的相关节点,其为来自与基础图像相关联的基础节点的相关节点。
62.基础图像的访客配置文件的数据结构可更新至第二版本。因此,树型结构可存储
与经更新图像相关联的识别符555及散列560。可通过将散列算法应用于访客散列(例如,散列540)及与第二版本相关联的代码来产生散列560。因此,可将散列算法应用于散列540及识别符555。所得散列可为散列560,其可为如参考图4所描述的访客第二版本散列450(例如,hash_g1v2)的实例。因为第二版本可为访客配置文件的经修改版本,所以密钥可指示节点为来自与访客配置文件相关联的节点的相关节点,其为来自与基础图像相关联的基础节点的相关节点。
63.可将参看图5所描述的识别符及散列中的每一者存储至安全存储装置,例如如参考图3所描述的安全存储装置310。在一些实例中,由于空间限制或由于过时的版本或用户配置文件,可能需要从树型图删除一或多个识别符。在一些实例中,可发出擦除命令以从树型图删除一或多个节点。
64.在第一实例中,可发出擦除命令以擦除与识别符515及散列520相关联的节点。因为节点并不包含任何额外相关节点(例如,节点仅仅取决于基础图像节点),所以擦除命令可从树型结构去除密钥及散列520。在额外实例中,可发出擦除命令以擦除与识别符525及散列530相关联的节点。因为节点可为中间节点(例如,与识别符545及散列550相关联的节点取决于与擦除命令相关联的节点),所以可忽略擦除命令。可忽略擦除命令,例如,直至从树型结构去除与识别符545及散列550相关联的节点为止。
65.在另一实例中,可发出擦除命令以擦除与识别符535及散列540相关联的节点。因为节点可为中间节点(例如,与识别符555及散列560相关联的节点取决于与擦除命令相关联的节点),所以擦除命令可经配置以起始在树型结构中重构节点。举例来说,可使用散列510再生(例如,重新计算)散列560,从而与识别符555及散列560相关联的节点取决于基础图像。一旦再生散列560,相关节点可取决于基础图像,且可删除中间节点(例如,与识别符535及散列540相关联的节点)。
66.图6示出根据如本文所公开的实例的支持验证软件图像的过程流程图600的实例。过程流程图600可说明如参考图2所描述的计算系统200的一或多个组件的操作。举例来说,过程流程图600可说明验证如参考图2所描述的软件图像205。过程流程图600可说明主机计算装置605及安全存储装置610的操作。
67.安全存储装置可经配置以验证主机计算装置的软件图像。为验证软件图像,安全存储装置可能能够执行保存命令、擦除命令、测量命令、其它命令或其组合。如参考图3所描述,可使用保存命令产生且安全地存储散列以待用于在启动序列期间比较。如参考图5所描述,可使用擦除命令删除已被存储的散列以供用于验证程序。如本文所描述,可通过产生软件图像的散列且将所述散列与所存储(例如,使用保存命令存储的)散列进行比较,使用测量命令在初始化程序(例如,启动序列)期间验证软件图像。
68.在一些实例中,主机计算装置605可包含待验证(例如,在启动序列期间)的软件图像。软件图像可为或可包含操作系统、软件程序或其类似者。因为虚拟机可对黑客攻击敏感,其中软件图像的代码的一或多个方面得以更改,所以在虚拟机启动之前验证软件图像可为有益的。如果代码已被更改,且在代码已被更改时防止虚拟机启动,那么可在用户能够存取虚拟机之前检测或固定恶意动作。在一些实例中,可防止与软件图像相关联的程序运行,从而不会出现通过黑客攻击造成额外损害。在一些实例中,可使用经产生且存储至如参看图3至5所描述的树型结构的散列来验证软件图像。在一些情况下,可基于验证程序而起
始(或不起始)启动序列。
69.在615,可任选地在主机计算装置605起始启动序列。可在主机计算装置605接通时或在与主机计算装置605相关联的虚拟机启动时,例如,在用户(或访客)尝试存取虚拟机时,或在软件程序起始(例如,开启)时起始启动序列。在一些实例中,可在起始启动序列时将指示传输至安全存储装置610。所述指示可针对正在起始的软件图像(例如,虚拟机)起始验证程序。
70.主机计算装置605可基于起始启动序列而传输测量命令620。命令620(例如,测量命令)可用于起始虚拟机的软件图像的验证程序。举例来说,命令620可用于验证与虚拟机相关联的操作系统。在其它实例中,测量命令620可用于验证虚拟机的用户配置文件(例如,访客配置文件)或验证安装于主机计算装置605上的特定软件程序。命令620可包含软件图像正被验证(例如,软件散列的版本正被验证)的指示。主机计算装置605还可将软件图像625(或软件图像625存储于何处的指示)传输至安全存储装置610,作为发送测量命令620的部分。参考630、635及640描述的特征可为由安全存储装置610执行的验证程序的实例。
71.在630,基于接收命令620,安全存储装置610可识别与命令620相关联的软件图像625。举例来说,安全存储装置610可确定所存储树型结构中的何节点或何存储散列与测量命令相关联。安全存储装置610可基于包含于测量命令620、软件图像625自身或其一组合中的信息而做出此确定。命令620可识别特定操作系统、特定软件程序、特定用户或其类似者。在一些实例中,主机计算装置605可识别底层软件图像的位置(例如,地址范围)以供验证。
72.在635,主机计算装置605可产生软件图像625的散列(例如,密码散列、第二散列)。响应于测量命令620而产生的散列可为尝试起始的与软件图像625相关联的代码的散列。因此,如果与软件图像625相关联的代码已从其预期状态更改(例如,从其正确状态,由于恶意动作),那么验证程序可失效。可使用用以响应于如参考图3所描述的保存命令而产生存储于安全存储装置310中的散列的同一算法产生在635产生的散列。举例来说,散列可使用sha产生。在一些实例中,散列可通过主机计算装置605产生,且可运用测量命令620传达至安全存储装置610。
73.在640,安全存储装置610可将所计算散列与所存储散列(例如,金色散列)进行比较。响应于保存命令(如参考图3所描述),安全存储装置可将散列存储于存储器中不可存取主机计算装置的一部分中。通过使得安全存储装置将第一散列存储于不可存取存储器中,且使得安全存储装置随后执行验证程序(例如,将所计算散列与预期散列进行比较),验证不大可能受到黑客的恶意攻击。安全存储装置610可将在635产生的散列(例如,第二散列)与存储于安全存储装置610中的对应散列(例如,金色散列)进行比较。
74.安全存储装置610可将比较散列的结果的指示645传输至主机计算装置。所述指示可包含第一散列与第二散列是否匹配。举例来说,如果散列匹配,那么安全存储装置610可将命令传输至主机计算装置605以继续(例如,执行或完成)启动序列。在其它实例中,如果散列不匹配,那么安全存储装置610可将命令传输至主机计算装置605以结束启动序列(例如,不启动软件图像)。在一些实例中,如果散列不匹配,那么安全存储装置610可避免将任何额外信息传输至主机计算装置605作为启动序列的部分。在这些实例中,避免响应于启动序列中的其它命令而传输信息可导致启动序列失效,且对于虚拟机或程序不发动。在一些实例中,当安全存储装置610不将启动命令传输至主机计算装置605时,可能不会验证软件
图像(例如,启动序列可能不会完成)。
75.在650,主机计算装置605可试图继续软件图像的启动序列。在一些实例中,主机计算装置605可基于第一与第二散列相匹配而启动软件图像。另外地或替代性地,当散列匹配时,主机计算装置605可从安全存储装置610接收继续启动序列的指示。在其它实例中,在655,主机计算装置605可基于第一与第二散列不匹配而避免启动软件图像。在一些实例中,主机计算装置605可试图继续启动序列,且可继续向安全存储装置610发出启动命令及对数据的请求。在这些情况下,如果验证失效,那么安全存储装置610可避免履行对数据的请求,由此使得启动序列失效。主机计算装置605可基于从安全存储装置610接收命令或基于不从安全存储装置610接收任何命令而避免启动软件图像。
76.图7展示根据如本文所公开的实例的支持验证软件图像的存储器装置705的框图700。存储器装置705可为如参考图1至6所描述的存储器装置的方面的实例。存储器装置705可包含接收组件710、产生组件715、存储组件720、验证组件725、选择组件730、识别组件735、擦除组件740、更新组件745、比较组件750及传输组件755。这些组件中的每一者可直接地或间接地彼此通信(例如,经由一或多个总线)。
77.接收组件710可接收第一软件图像及将第一软件图像存储于存储器装置中的第一命令。在一些实例中,接收组件710可接收基于第一软件图像的第二软件图像及将第二软件图像存储于存储器装置中的第二命令。在一些实例中,接收组件710可基于产生第二散列而接收用于存储第一散列、存储第二散列或两者的第一命令。在一些实例中,接收组件710可接收擦除所存储第二散列的擦除命令。
78.产生组件715可基于与第一软件图像相关联的第一数据及第一命令而产生第一软件图像的第一散列。在一些实例中,产生组件715可基于第一软件图像的第一散列及第二命令而产生与第二软件图像相关联的第二散列。在一些实例中,产生组件715可基于接收第一软件图像而产生第一软件图像的第一指示,其中存储第一散列及第一指示是基于产生第一指示。
79.在一些实例中,产生组件715可基于接收第二软件图像而产生第二软件图像与第一软件图像之间的关系的第一指示,其中存储第二散列及第一指示是基于产生第一指示。在一些实例中,产生组件715可基于接收第三命令而产生第三数据的第三散列。
80.存储组件720可基于产生第一散列而将第一散列存储于存储器装置的非易失性存储器组件中。在一些实例中,存储组件720可基于产生第二散列而将第二散列及第二软件图像与第一软件图像的关系的第一指示存储于存储器装置的非易失性存储器组件中。在一些实例中,存储组件720可基于产生第三散列而将第三数据的第三散列存储至存储器装置的易失性存储器组件。
81.验证组件725可通过将第二散列与第一散列及与第二软件图像相关联的第三数据的所计算散列进行比较来通过存储器装置验证第二软件图像。在一些实例中,验证第二软件图像包含基于将第三数据的第三散列与关联于第二软件图像的第二散列进行比较,确定第三数据的第三散列是否与关联于第二软件图像的第二散列相同。
82.在一些实例中,验证组件725可基于确定第三数据的第三散列不同于第二散列,通过产生通知来避免验证第二软件图像,其中所述通知包含第三数据不同于第二散列的指示。在一些实例中,验证组件725可基于确定第三数据的第三散列不同于与第二软件图像相
关联的第二散列,通过发出第四命令来避免验证第二软件图像,其中所述第四命令包含避免起始启动序列的指令。
83.选择组件730可基于第二软件图像与第一软件图像之间的关系而选择待用于产生第二散列的第一散列,其中产生第二散列是基于选择第一散列。
84.识别组件735可基于接收第一命令而识别第三数据,其中第三数据包含包含于与第二软件图像相关联的第二数据中但不包含于第一数据中的数据。在一些实例中,识别组件735可识别与第二软件图像相关联的第二数据相对于第一数据的变化。
85.擦除组件740可基于接收擦除命令而擦除存储于非易失性存储器组件中的第二散列及第二软件图像与第一软件图像的关系的第一指示。在一些实例中,擦除组件740可在擦除第二散列及第二软件图像与第一软件图像的关系的第一指示之前,擦除一或多个额外散列及额外散列与第二软件图像的对应关系的指示。
86.更新组件745可基于识别第二数据中的变化而更新第二软件图像与第一软件图像的关系的第一指示。
87.比较组件750可基于将第三数据的第三散列存储至易失性存储器组件而将第三数据的第三散列与关联于第二软件图像的第二散列进行比较。
88.传输组件755可将通知传输至主机系统。在一些实例中,传输组件755可基于确定第三数据的第三散列匹配与第二软件图像相关联的第二散列而发出第四命令,其中所述第四命令包含起始启动序列的指令。
89.图8展示根据如本文所公开的实例的说明支持验证软件图像的一或多种方法800的流程图。方法800的操作可通过存储器装置或其组件实施,如本文所描述。举例来说,方法800的操作可通过如参看图7所描述的存储器装置来执行。在一些实例中,存储器装置可执行指令集以控制存储器装置的功能元件来执行所描述功能。另外或替代地,存储器装置可使用专用硬件来执行所描述功能的方面。
90.在805,存储器装置可接收第一软件图像及将第一软件图像存储于存储器装置中的第一命令。805的操作可根据本文中所描述的方法来执行。在一些实例中,805的操作的方面可通过如参看图7所描述的接收组件来执行。
91.在810,存储器装置可基于与第一软件图像相关联的第一数据及第一命令而产生第一软件图像的第一散列。810的操作可根据本文中所描述的方法来执行。在一些实例中,810的操作的方面可通过如参看图7所描述的产生组件来执行。
92.在815,存储器装置可基于产生第一散列而将第一散列存储于存储器装置的非易失性存储器组件中。815的操作可根据本文所描述的方法来执行。在一些实例中,815的操作的方面可通过如参看图7所描述的存储组件来执行。
93.在820,存储器装置可接收基于第一软件图像的第二软件图像及将第二软件图像存储于存储器装置中的第二命令。820的操作可根据本文所描述的方法来执行。在一些实例中,820的操作的方面可通过如参看图7所描述的接收组件来执行。
94.在825,存储器装置可基于第一软件图像的第一散列及第二命令而产生与第二软件图像相关联的第二散列。825的操作可根据本文所描述的方法来执行。在一些实例中,825的操作的方面可通过如参看图7所描述的产生组件来执行。
95.在830,存储器装置可基于产生第二散列而将第二散列及第二软件图像与第一软
件图像的关系的第一指示存储于存储器装置的非易失性存储器组件中。830的操作可根据本文所描述的方法来执行。在一些实例中,830的操作的方面可通过如参看图7所描述的存储组件来执行。
96.在835,存储器装置可通过将第二散列与第一散列及与第二软件图像相关联的第三数据的所计算散列进行比较来验证第二软件图像。835的操作可根据本文所描述的方法来执行。在一些实例中,835的操作的方面可通过如参看图7所描述的验证组件来执行。
97.在一些实例中,如本文所描述的设备可执行一或多个方法,例如方法800。所述设备可包含用于进行以下操作的特征、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体):接收第一软件图像及将所述第一软件图像存储于存储器装置中的第一命令;基于与所述第一软件图像相关联的第一数据及所述第一命令而产生所述第一软件图像的第一散列;基于产生所述第一散列而将所述第一散列存储于所述存储器装置的非易失性存储器组件中;接收基于所述第一软件图像的第二软件图像及将所述第二软件图像存储于所述存储器装置中的第二命令;基于所述第一软件图像的所述第一散列及所述第二命令而产生与所述第二软件图像相关联的第二散列;基于产生所述第二散列而将所述第二散列及所述第二软件图像与所述第一软件图像的关系的第一指示存储于所述存储器装置的所述非易失性存储器组件中;及通过所述存储器装置,通过将所述第二散列与所述第一散列及与所述第二软件图像相关联的第三数据的所计算散列进行比较来验证所述第二软件图像。
98.方法800及本文中所描述的设备的一些实例可进一步包含用于基于接收第一软件图像而产生第一软件图像的第一指示的操作、特征、构件或指令,其中存储第一散列及第一指示可是基于产生第一指示。
99.方法800及本文中所描述的设备的一些实例可进一步包含用于基于接收第二软件图像而产生第二软件图像与第一软件图像之间的关系的第一指示的操作、特征、构件或指令,其中存储第二散列及第一指示可是基于产生第一指示。
100.方法800及本文中所描述的设备的一些实例可进一步包含用于基于第二软件图像与第一软件图像之间的关系而选择待用于产生第二散列的第一散列的操作、特征、构件或指令,其中产生第二散列可是基于选择第一散列。
101.方法800及本文中所描述的设备的一些实例可进一步包含用于基于产生第二散列而接收用于存储第一散列、存储第二散列或两者的第一命令,且基于接收第一命令而识别第三数据的操作、特征、构件或指令,其中第三数据包含可包含于与第二软件图像相关联的第二数据中但可不包含于第一数据中的数据。
102.方法800及本文中所描述的设备的一些实例可进一步包含用于接收擦除所存储第二散列的擦除命令,且基于接收擦除命令而擦除存储于非易失性存储器组件中的第二散列及第二软件图像与第一软件图像的关系的第一指示的操作、特征、构件或指令。
103.方法800及本文中所描述的设备的一些实例可进一步包含用于在擦除第二散列及第二软件图像与第一软件图像的关系的第一指示之前,擦除一或多个额外散列及额外散列与第二软件图像的对应关系的指示的操作、特征、构件或指令。
104.方法800及本文中所描述的设备的一些实例可进一步包含用于识别与第二软件图像相关联的第二数据相对于第一数据的变化,且基于识别第二数据中的变化而更新第二软
件图像与第一软件图像的关系的第一指示的操作、特征、构件或指令。
105.在方法800及本文中所描述的设备的一些实例中,存储于非易失性存储器组件中的一组软件图像的一组散列可为主机系统不可存取的。
106.方法800及本文中所描述的设备的一些实例可进一步包含用于在存储器装置接收用于确定与第二软件图像相关联的第二数据是否可已被修改的第三命令的操作、特征、构件或指令,其中第三命令包含第二软件图像与第一软件图像的关系的第一指示。
107.方法800及本文中所描述的设备的一些实例可进一步包含用于基于接收第三命令而产生第三数据的第三散列,且基于产生第三散列而将第三数据的第三散列存储至存储器装置的易失性存储器组件的操作、特征、构件或指令。
108.方法800及本文中所描述的设备的一些实例可进一步包含用于基于将第三数据的第三散列存储至易失性存储器组件而将第三数据的第三散列与关联于第二软件图像的第二散列进行比较的操作、特征、构件或指令,且其中验证第二软件图像包含基于将第三数据的第三散列与关联于第二软件图像的第二散列进行比较而确定第三数据的第三散列是否可与关联于第二软件图像的第二散列相同。
109.方法800及本文中所描述的设备的一些实例可进一步包含用于基于确定第三数据的第三散列可不同于第二散列,通过产生通知来避免验证第二软件图像,且将所述通知传输至主机系统的操作、特征、构件或指令,其中所述通知包含第三数据可不同于第二散列的指示。
110.在方法800及本文中所描述的设备的一些实例中,验证第二软件图像可包含用于基于确定第三数据的第三散列匹配与第二软件图像相关联的第二散列而发出第四命令的操作、特征、构件或指令,其中所述第四命令包含起始启动序列的指令。
111.方法800及本文中所描述的设备的一些实例可进一步包含用于基于确定第三数据的第三散列可不同于与第二软件图像相关联的第二散列,通过发出第四命令来避免验证第二软件图像的操作、特征、构件或指令,其中所述第四命令包含避免起始启动序列的指令。
112.在方法800及本文中所描述的设备的一些实例中,第二软件图像包含指示第一软件图像与第二软件图像之间的差异的数据。
113.在方法800及本文中所描述的设备的一些实例中,可将第一散列的所计算散列存储于存储器装置的易失性存储器组件中。
114.在方法800及本文中所描述的设备的一些实例中,可将第一散列及第一数据的位置存储于非易失性存储器组件中。
115.应注意,上文所描述的方法描述可能的实施方案,且操作及步骤可经重新布置或以其它方式修改,且其它实施方案是可能的。此外,可组合方法中的两者或更多者的部分。
116.可使用各种不同技术及技艺中的任何者来表示本文中所描述的信息及信号。举例来说,可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合表示遍及以上描述可能参考的数据、指令、命令、信息、信号、位、符号及码片。一些图示可将信号示出为单一信号;然而,所属领域的一般技术人员应理解,所述信号可表示信号的总线,其中所述总线可具有多种位宽度。
117.术语“电子通信”、“导电接触”、“连接”及“耦合”可指支持组件之间的信号流动的组件之间的关系。如果在组件之间存在可在任何时候支持组件之间的信号流动的任何导电
路径,那么组件被视为彼此电子通信(或导电接触或连接或耦合)。在任何给定时间,彼此电子通信(或导电接触或连接或耦合)的组件之间的导电路径可基于包含所连接组件的装置的操作而为开路或闭路。所连接组件之间的导电路径可为组件之间的直接导电路径,或所连接组件之间的导电路径可为可包含例如开关、晶体管或其它组件的中间组件的间接导电路径。在一些实例中,可例如使用例如开关或晶体管的一或多个中间组件将所连接组件之间的信号流动中断一段时间。
118.术语“耦合”是指从其中信号目前不能够经由导电路径在组件之间传达的组件之间的开路关系转至其中信号能够经由导电路径在组件之间传达的组件之间的闭路关系的条件。当例如控制器的组件将其它组件耦合在一起时,所述组件引发允许信号经由先前并不准许信号流动的导电路径而在其它组件之间流动的改变。
119.术语“隔离”是指其中信号当前不能够在组件之间流动的所述组件之间的关系。如果在组件之间存在开路,那么所述组件彼此隔离。举例来说,由定位于组件之间的开关分离的两个组件在开关断开时彼此隔离。在控制器隔离两个组件时,控制器影响防止信号使用先前准许信号流动的导电路径在组件之间流动的改变。
120.可在例如硅、锗、硅-锗合金、砷化镓、氮化镓等的半导体衬底上形成本文中所论述的包含存储器阵列的装置。在一些实例中,衬底为半导体晶片。在其它实例中,衬底可为例如玻璃层上硅(sog)或蓝宝石上硅(sop)的绝缘体上硅(soi)衬底或另一衬底上的半导体材料的外延层。可通过使用包含但不限于磷、硼或砷的各种化学物质掺杂而控制衬底或衬底的子区的导电性。可通过离子植入或通过任何其它掺杂方式在衬底的初始形成或生长期间执行掺杂。
121.本文中所论述的切换组件或晶体管可表示场效应晶体管(fet)且包括包含源极、漏极及栅极的三端装置。端子可通过导电材料(例如,金属)连接至其它电子元件。源极及漏极可为导电的,且可包括重掺杂(例如简并)的半导体区。源极与漏极可通过轻微掺杂的半导体区或通道分隔。如果通道为n型(即,大多数载波为电子),那么fet可被称为n型fet。如果通道为p型(即,大多数载波为孔),那么fet可被称为p型fet。通道可由绝缘栅氧化物覆盖。可通过将电压施加至栅极来控制通道导电性。举例来说,将正电压或负电压分别施加至n型fet或p型fet可使得通道变得导电。在将大于或等于晶体管的临限电压的电压施加至晶体管栅极时,晶体管可“接通”或“启动”。当将小于晶体管的临限电压的电压施加至晶体管栅极时,晶体管可“断开”或“去启动”。
122.本文结合附图所阐述的描述描述实例配置,且并不表示可实施或在权利要求书的范围内的所有实例。本文中所使用的术语“示范性”意味着“充当实例、例子或说明”,且并不意味着“优选”或“优于其它实例”。实施方式包含特定细节以提供对所描述技术的理解。然而,可在没有这些特定细节的情况下实践这些技术。在一些情况下,以框图形式展示熟知的结构及装置以便避免混淆所描述实例的概念。
123.在随附图式中,相似组件或特征可具有相同参考标记。另外,可通过在参考标记之后使用短划线及在类似组件当中进行区分的第二标记来区分相同类型的各种组件。如果在说明书中仅使用第一参考标记,那么描述适用于具有相同第一参考标记而与第二参考标记无关的类似组件中的任一者。
124.可使用各种不同技术及技艺中的任何者来表示本文中所描述的信息及信号。举例
来说,可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合表示遍及以上描述可能参考的数据、指令、命令、信息、信号、位、符号及码片。
125.结合本公开所描述的各种说明性块及组件可通过通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑装置、离散栅极或晶体管逻辑、离散硬件组件或其经设计以执行本文中所描述的功能的任何组合来实施或执行。通用处理器可为微处理器,但在替代方案中,处理器可为任何处理器、控制器、微控制器或状态机。处理器也可实施为计算装置的组合(例如,dsp与微处理器的组合、多个微处理器、一或多个微处理器结合dsp核心,或任何其它这些配置)。
126.本文中所描述的功能可在硬件、由处理器执行的软件、固件或其任何组合中实施。如果在由处理器执行的软件中实施,那么可将功能作为一或多个指令或代码存储于计算机可读媒体上或经由计算机可读媒体传输。其它实例及实施在本公开及随附权利要求书的范围内。举例来说,由于软件的本质,上文所描述的功能可使用由处理器、硬件、固件、硬连线或这些中的任一者的组合执行的软件实施。实施功能的特征也可在物理上位于各种位置处,包含经分布以使得功能的部分在不同物理位置处实施。另外,如本文中所使用(包含在权利要求书中),“或”在用于项目列表(例如,以例如“中的至少一者”或“中的一或多者”的短语作为结尾的项目列表)中时指示包含性列表,使得(例如)a、b或c中的至少一者的列表意味着a或b或c或ab或ac或bc或abc(即,a及b及c)。此外,如本文所用,短语“基于”不应被认作对封闭条件集合的参考。举例来说,在不脱离本公开的范围的情况下,被描述为“基于条件a”的示范性步骤可基于条件a及条件b两者。换句话说,如本文中所使用,应以与短语“至少部分地基于”相同的方式来解释短语“基于”。
127.计算机可读媒体包含非暂时性计算机存储媒体及通信媒体两者,通信媒体包含促进计算机程序从一处传送至另一处的任何媒体。非暂时性存储媒体可为可利用通用或专用计算机存取的任何可用媒体。借助于实例而非限制,非暂时性计算机可读媒体可包括ram、rom、电可擦除可编程只读存储器(eeprom)、光盘(cd)rom或其它光盘存储器、磁盘存储器或其它磁性存储装置、或可用于携载或存储呈指令或数据结构形式的所要程序代码构件且可由通用或专用计算机、或通用或专用处理器存取的任何其它非暂时性媒体。而且,任何连接被适当地称为计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆光纤缆线、双绞线、数字用户线(dsl)或例如红外线、无线电及微波的无线技术而从网站、服务器或其它远程源传输软件,那么同轴电缆、光纤电缆光纤缆线、双绞线、数字用户线(dsl)或例如红外线、无线电及微波的无线技术包含于媒体的定义中。如在本文中所使用,磁盘及光盘包含cd、激光光盘、光学光盘、数字多功能光盘(dvd)、软盘及蓝光光盘,其中磁盘通常以磁性方式再生数据,而光盘通过激光以光学方式再生数据。以上各者的组合还包含于计算机可读媒体的范围内。
128.提供本文中的描述以使所属领域的技术人员能够进行或使用本公开。对本公开的各种修改对于所属领域的技术人员而言将显而易见,且本文中所定义的一般原理可在不脱离本公开的范围的情况下应用于其它变体。因此,本公开并不限于本文中所描述的实例及设计,而是应符合与本文中所公开的原理及新颖特征相一致的最广范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献