用于多操作系统环境的介质保护策略实施的制作方法

文档序号:10540877阅读:338来源:国知局
用于多操作系统环境的介质保护策略实施的制作方法
【专利摘要】用于介质保护策略实施的技术包括具有多个操作系统以及被分区成若干区域的数据存储设备的计算设备。在这些操作系统中的每个操作系统的执行过程中,策略实施模块可以拦截介质访问请求并基于平台介质访问策略判定是否允许这些介质访问请求。这些介质访问策略可以基于正在执行的操作系统的标识、所述数据存储设备的区域、或所请求的存储操作来允许请求。在加载选定的操作系统之前,固件策略实施模块可以确定磁盘存储设备的要进行保护免受所述选定的操作系统影响的区域。所述固件策略实施模块可以配置所述数据存储设备以防止对那个区域的访问。这些介质访问策略可以被存储在一个或多个固件变量中。对其他实施例进行了描述并要求保护。
【专利说明】用于多操作系统环境的介质保护策略实施
[0001] 相关美国专利申请的交叉引用
[0002] 本申请要求2014年2月6日提交的标题为"用于双操作系统环境的分区保护方案 (PARTITION PROTECTION SCHEME FOR A DUAL OS ENVIRONMENT)" 的美国临时专利申请S/ N. 61/936,614以及2014年6月6日提交的标题为"用于多操作系统环境的介质保护策略实 施"的美国实用专利申请S/N. 14/298,312的优先权。
【背景技术】
[0003] -些计算设备配备由制造商安装的多个操作系统。例如,计算设备可以包括如 微软?的胃;[11(10¥8 1¥( Microsoft?Windows?)等通用操作系统以及如安卓?"(Android?)等面 向移动的操作系统。在这种多操作系统环境中,配备这种配置的产品冒着使用户无意地删 除不为当前活动的操作系统所拥有的"非必要"分区或干扰性数据的风险。
[0004] 许多计算设备包括负责硬件初始化、较低层的硬件管理以及管理引导进程的固 件。具体地,在具有多个操作系统的设备中,在预引导期间,平台固件可以选择并加载对应 于所安装的操作系统之一的引导目标。可以根据统一可扩展固件接口( "UEFI")规范来实现 负责引导计算设备的主要平台固件,所述规范具有由统一 EFI论坛发布的数个版本。所述 UEFI规范规定了计算设备的固件与计算设备的所安装的操作系统之间的接口。
【附图说明】
[0005] 在附图中通过举例而非限制的方式展示了在此所描述的概念。为了展示的简单和 清楚,图中所展示的元件不一定按比例绘制。在认为适当的情况下,在附图之间对参考标记 加以重复以表示相应的或相似的元件。
[0006] 图1是用于介质保护策略实施的计算设备的至少一个实施例的简化框图;
[0007] 图2是图1的系统的计算设备的环境的至少一个实施例的简化框图;
[0008] 图3是图1和图2的计算设备的数据存储设备的示意性分区方案的示意图;
[0009] 图4是可以由图1和图2的计算设备执行的用于介质保护策略实施的方法的至少一 个实施例的简化流程图;
[0010] 图5是可以由图1和图2的计算设备所建立的存储驱动器栈的示意图;以及
[0011] 图6是可以由图1和图2的计算设备执行的用于介质保护策略实施的固件方法的至 少一个实施例的简化的流程图。
【具体实施方式】
[0012] 虽然本公开的概念易有多种不同修改和替代形式,但通过举例在附图中已经示出 其具体实施例并且在此将对其进行详细描述。然而,应当理解的是,并不旨在将本公开的概 念限制至所公开的具体形式,而是相反,意图是覆盖与本公开和所附权利要求书一致的所 有修改、等效物、和替代物。
[0013] 说明书中提到"一个实施例"、"实施例"、"示意性实施例"等表明所描述的实施例 可以包括具体特征、结构、或特性,但每个实施例可能或可能不一定包括这个具体特征、结 构、或特性。而且,这些短语不一定指同一实施例。另外,当结合一个实施例描述一个具体特 征、结构或特性时,应理解,无论是否明确描述,结合其他实施方案来实现这种特征、结构或 特性是在本领域的普通技术人员的知识范围内。另外,应当理解,采用"至少一个A、B、和C" 形式的列表内所包括的项可以指(A); (B); (C); (A和B); (B和C);或(A、B、和C)。类似地,"至 少一个A、B、和或C"形式的列表内所包括的项可以指(A); (B); (C); (A和B); (B和C);或(A、B、 和C)〇
[0014] 在某些情况下,可以采用硬件、固件、软件、或其任意组合来实现所公开的实施例。 所公开的实施例还可以实现为瞬态或非瞬态机器可读(例如,计算机可读)存储介质所携带 或其上所存储的指令,这些指令可以由一个或多个处理器读取和执行。机器可读存储介质 可以实施为任何存储设备、机制、或其他用于存储或传输采用机器可读形式的信息的物理 结构(例如,易失性或非易失性存储器、介质硬盘、或其他介质设备)。
[0015] 在附图中,某些结构性特征或方法特征可以以特定的排列和/或顺序示出。然而, 应当理解的是,可能不需要这种特定安排和/或顺序。反而,在某些实施例中,此类特征能够 以与示意图附图中所示的相比不同的方式和/或顺序安排。另外,在具体的图中包括结构性 特征或方法特征并不意味着暗示在所有的实施例中都需要这个特征,并且在某种实施例 中,可以不包括这个特征或者这个特征可以与其他特征组合。
[0016] 现在参照图1,在一个实施例中,计算设备100可以引导多个操作系统、在它们之间 切换(toggle)、或以其他方式执行这些操作系统。计算设备100还可以包括数据存储装置, 所述数据存储装置被分区或以其他方式被划分成可以被指定给这些操作系统中的每一个 的部分。计算设备1〇〇根据一个或多个平台介质访问策略来控制对数据存储分区的访问,所 述平台介质访问策略可以由平台制造商建立,或者在某些实施例中由最终用户配置。在某 些实施例中,在执行的过程中,计算设备100可以拦截介质访问请求并且基于介质访问策略 判定是允许还是否定这些请求。另外或可替代地,在某些实施例中,在引导操作系统之前, 计算设备100可以通过基于介质访问策略配置数据存储控制器来保护各个数据存储分区。 实施介质访问策略可以保护计算设备100免于不受当前运行的操作系统控制的、对数据分 区的用户修改所导致的意外(或恶意)损坏。相应的,实施介质访问策略可以改善用户体验 和/或减少制造商支持成本,同时允许制造商推出具有多个操作系统的设备。
[0017] 计算设备100可以实施为用于执行在此所描述的功能的任何类型的设备。例如,计 算设备100可以非限制性地实施为(但不限于)智能电话、平板计算机、膝上计算机、笔记本 计算机、移动计算设备、蜂窝电话、手机、消息传送设备、可穿戴计算设备、车载通信设备、台 式计算机、服务器计算机、工作站、分布式计算系统、多处理器系统、消费电子设备、和/或任 何其他被配置成执行在此所描述的功能的计算设备。如图1中所示,示意性计算设备100包 括处理器120、输入/输出子系统122、存储器124、和数据存储设备126。当然,在其他实施例 中,计算设备100可以包括其他或附加部件,如移动式和/或固定式计算机中一般都存在的 那些(例如,各种输入/输出设备)。另外,在某些实施例中,这些示意性部件中的一个或多个 可以结合在另一部件中,或另外形成其一部分。例如,在某些实施例中,存储器124、或其多 个部分可以结合在处理器120中。
[0018] 处理器120可以实施为能够执行在此所描述的功能的任何类型的处理器。例如,处 理器120可以实施为单个或多核处理器、数字信号处理器、微控制器、或其他处理器或处理/ 控制电路。类似地,存储器124可以实施为能够执行在此所述功能的任何类型的易失性或非 易失性存储器或数据储存器。在运行中,存储器124可以存储在计算设备100的运行过程中 所使用的各种数据和软件,如操作系统、应用、程序、函数库、和驱动器。存储器124通过I/O 子系统122通信连接至处理器120,该子系统可以实施为电路和/或部件以方便处理器120、 存储器124、和计算设备100的其他部件的输入/输出操作。例如,I/O子系统122可以实施为、 或另外包括存储器控制器集线器、输入/输出控制集线器、固件设备、通信链路(即,点到点 的链路、总线链路、导线、电缆、光导、印刷电路板迹线等)和/或其他部件及子系统,从而便 于输入/输出操作。在某些实施例中,I/O子系统122可以形成片上系统("SoC")的一部分并 且与处理器120、存储器124、以及计算设备100的其他部件一起被整合在单个集成电路芯片 上。
[0019] 数据存储设备126可以实施为被配置成用于短期或长期数据存储的任何类型的设 备,例如存储器设备和电路、存储卡、硬盘驱动、固态启动、或其他数据存储设备。数据存储 设备126可以在逻辑上被分成若干分区。例如,数据存储设备126可以包括存储用于计算设 备100的数据和固件代码的系统分区。数据存储设备126还可以包括存储用于计算设备100 的每个操作系统的数据文件和可执行文件的若干操作系统分区。另外,数据存储设备126包 括控制器128。控制器128可以实施为微控制器、微处理器、或能够控制或使能由计算设备 100的剩余部分访问数据存储设备126的任何其他控制逻辑。在某些实施例中,控制器128可 能能够拒绝对具体逻辑块地址、扇区、磁轨、或数据存储设备126内的其他地址范围的访问。 应当注意的是,虽然示意性计算设备100包括分成多个逻辑分区的单个数据存储设备126, 但本公开还适用于包括多个数据存储设备126的计算设备100。
[0020] 计算设备100进一步包括通信电路130,所述通信电路可以实施为任何通信电路、 设备、或其能够使能计算设备100与其他远端设备之间的通信的集合。通信电路130可以被 配置成使用任何一种或多种通信技术(例如,无线或有线通信)以及相关联的协议(例如,以 太网、蓝牙?、Wi-Fi?、WiMAX等)来实现这种通信。通信电路130可以实现为网络适配器, 包括无线网络适配器。
[0021] 计算设备100还包括非易失性("NV")存储装置132 AV存储装置132可以实施为被 配置成用于当计算设备100掉电或与电源断开连接时持续性存储数据的任何设备。在示意 性实施例中,NV存储装置132是快闪存储器芯片。在其他实施例中,NV存储装置132可以实施 为与备份电池耦联的少量互补金属氧化物半导体(CMOS)存储器或其他非易失性存储器。NV 存储装置132可以用于为计算设备100存储平台固件,以及固件配置变量,如配置设置、引导 目标、以及在重新引导之后应该留存的其他信息。NV存储装置132与数据存储设备126相比 通常具有相对小的存储容量,但在预引导固件执行环境的过程中是计算设备1〇〇在初始引 导时可用的。在某些实施例中,NV存储装置132可以被结合到计算设备100的一个或多个其 他部件中,例如I/O结合到子系统122中。
[0022] 在某些实施例中,计算设备100还可以包括安全处理器134。安全处理器134可以实 施为被配置成用于增强计算设备100的安全性和/或可信度的任何硬件或相关联的固件或 软件例如,安全处理器134可以实施为可信平台模块("TPM")。在某些实施例中,安全处理器 134可以形成I/O子系统122的一部分。安全处理器134可以用于对计算设备100的平台固件 变量或其他配置数据进行安全认证和/或验证。
[0023]现在参照图2,在某些实施例中,计算设备100在操作过程中建立环境200。示意性 环境200包括平台固件202和许多操作系统210。示意性环境200包括两个操作系统210a和 210b;然而,在其他实施例中,可以包括附加操作系统210。
[0024]平台固件202包括引导选项模块204、策略管理模块206、以及策略实施模块208。平 台固件202的各个模块可以实施为硬件、固件、软件、或上述各项的组合。引导选项模块204 被配置成用于在预引导固件环境中执行。引导选项模块204从所安装的这些操作系统210当 中选择操作系统210,并加载所选择的操作系统210。引导选项模块204可以按照UEFI规范所 规定的那样选择并加载引导目标。
[0025]策略管理模块206被配置成用于存储、管理、和控制对一个或多个介质访问策略 214的访问。介质访问策略214可以针对对数据存储设备126的分区的访问来定义平台特定 规则,包括是否启用介质访问保护、是否拒绝不拥有一个分区的操作系统210访问这个分 区、是否选择性地允许不拥有一个分区的操作系统210访问这个分区、是否允许访问共享分 区、以及其他访问规则。可以用计算设备100的任何非易失性储存器来实施介质访问策略 214。例如,在某些实施例中,介质访问策略214可以实施为NV存储装置132中所存储的一个 或多个固件变量。策略管理模块206可以被配置成允许当前执行的操作系统210访问介质访 问策略214,例如通过按照UEFI规范所规定的那样来建立固件变量接口。在某些实施例中, 策略管理模块206可以被配置成用于验证、认证、或以其他方式保卫对介质访问策略214的 访问。例如,策略管理模块206可以将介质访问策略214存储为一个或多个UEFI认证的变量 (如UEFI论坛所公布的UEFI规范所描述的),或如可信计算组织(Trusted Computing Group)所公布的TPM规范所描述的可信平台模块(TPM) NV数据。
[0026]平台固件202的策略实施模块208被配置成用于对数据存储设备126的将受到保护 免受所选择的操作系统210影响的一个或多个区域进行标识。例如,策略实施模块208可以 确定不同的操作系统210所拥有的将受到保护免受所选择的操作系统210的影响的分区。策 略实施模块208将配置数据存储设备126以防止在操作系统210被引导之前对受保护的一个 或多个区域的访问。例如,策略实施模块208可以编程、配置、或以其他方式引导数据存储设 备126的控制器128来防止对某些存储地址或存储地址范围的访问。
[0027]每一个操作系统210都包括策略实施模块212。每个策略实施模块212可以实施为 硬件、固件、软件、或上述各项的组合。每个策略实施模块212被配置成用于拦截在操作系统 210的执行过程中下发的介质访问请求、基于介质访问策略214判定是否允许所述介质访问 请求、并且然后视情况而定允许或拒绝所述介质访问请求。每个介质访问请求可以指定存 储操作(例如,读、写、创建、删除、统计等)和存储地址或地址范围。策略实施模块212可以基 于以下各项的任意组合来判定是允许还是拒绝介质访问请求:当前执行的操作系统210的 标识;数据存储设备126的受影响的区域的标识、格式、或归属;指定的存储操作;或由介质 访问策略214所指定的任何其他标准。在某些实施例中,策略实施模块212可以实施为嵌入 操作系统210的存储驱动器栈的过滤器驱动器,如下文结合图4和图5进一步描述的。
[0028]现在参照图3,示意图300展示了计算设备100可以采用的对数据存储设备126的分 区方案的一个实施例。当然,在许多实施例中,数据存储设备126可以包括不同数量或类型 的分区和/或不同的分区方案。在示意性示例中,数据存储设备126可以包括若干块,这些块 分别是通过逻辑块地址("LBA")可单独寻址的。每个LBA可以实施为在零至数据存储设备 126的最大块数范围内的简单整数。每个块可以包括预定量的数据,如512字节的数据或 4096字节的数据。示意性数据存储设备126被分成分区表302和三个数据分区314、316、318。 [0029]分区表302开始于数据存储设备126的第一块中,即具有为零的LBA的块中。示意性 分区表302包括保护性主引导记录(叩1?矿)304、分区表头306、和若干分区表项308。?1?1? 304可以出于兼容性目的而实施为数据存储设备126的第一块(即,LBA零)内所包括的遗留 主引导记录。在数据存储设备126的第二块(例如,LBA-)处开始的分区表头306可以定义分 区表302的尺寸、类型、和其他属性。每个分区表项308可以定义分区314、316、318的位置、尺 寸、类型、和其他属性。例如,每个分区表项308可以包括指针,所述指针包含对应于每一个 数据分区314、316、318的开始和结束的LBA。示意性指针310、312包括分别对应于分区314的 起始地址和结束地址的LBA值。分区表项308可以进一步包括对应于分区316、318的指针,为 了清晰起见从图300中省略了这些指针。作为另一个示例,每个分区表项308可以包括对应 于相关联的数据分区314、316、318的类型的全局唯一标识符。数据分区类型可以指示什么 操作系统210a、210b拥有数据分区314、316、318。
[0030]每个数据分区可以为具体的操作系统210所拥有或者由多个操作系统210共享。在 示意性示例中,分区314为操作系统210a所拥有,分区316为操作系统210b所拥有,并且分区 318由两个操作系统210a、210b共享。例如,认为操作系统210a是微软?Windows?并且操作 系统210b是安卓。在这个示例中,分区314可以实施为Windows数据分区,分区316可以实施 为安卓系统分区,并且分区318可以实施为由Windows?和安卓共享的数据分区。
[0031] 如下文进一步描述的,计算设备100可以基于介质访问策略214控制对分区表302 和/或分区314、316、318的访问。例如,介质访问策略214可以指示是否应该启用介质访问保 护。如果已启用,在某些实施例中,介质访问策略214可以规定操作系统210仅可以访问为操 作系统210所拥有的或者与操作系统210共享的分区。在示意性示例中,可以允许操作系统 210a访问分区314、318而不是分区316,并且可以允许操作系统210b访问分区316、318而不 是分区314。作为另一示例,可以拒绝两个操作系统210a、210b对分区表302的访问。另外或 可替代地,在某些实施例中,介质访问策略214可以允许操作系统210对不为此操作系统210 所拥有的分区的选择性或只读访问。在示意性示例中,可以允许操作系统210a对分区316进 行只读访问,并且可以允许操作系统210b对分区318进行只读访问。当然,这些介质访问策 略214仅仅是不意性的,并且在其他实施例中可以米取其他策略。
[0032] 现在参照图4,在使用中,计算设备100可以执行用于介质保护策略实施的方法 400。方法400开始于方框402,在所述方框中,计算设备100引导操作系统210。如下文结合图 6进一步描述的,计算设备100可以从预引导固件执行环境中选择有待引导的操作系统210。 可以例如通过调用UEFI函数ExitBootServicesO来终止所述固件执行环境。在引导所述操 作系统210之后,计算设备100受操作系统210的控制。在某些实施例中,在引导所述操作系 统210之后,平台固件202仍然可以提供有限的服务。例如,平台固件202可以提供对在NV存 储装置132中所保持的固件变量的只读访问。
[0033]在方框404中,计算设备100可以加载策略实施模块212。如上文所描述的,每个操 作系统210可以被配置成用于加载具体的策略实施模块212。计算设备100可以使用任何技 术来准备策略实施模块212用于监测和/或拦截介质访问请求,如加载内核驱动模块或加载 用户模式可执行文件。在某些实施例中,在方框406中,计算设备100可以在操作系统210的 存储驱动器栈中加载策略实施模块212作为过滤器驱动器。图5中示出了包括多个过滤器驱 动器的示意性存储驱动器栈500。
[0034]许多操作系统210通过分层的存储栈访问数据存储设备126,其中,每一层负责数 据存储设备126的具体抽象层。示意性存储驱动器栈500从最高层到最低层包括应用502、较 高层过滤器驱动器504、存储类驱动器506、较低层过滤器驱动器508、以及存储端口驱动器 510。应用502可以实施为用户层应用、内核进程、较高层驱动器、或其他可以访问数据存储 设备126上的数据的进程。应用502向存储栈的较低层成员下发介质访问请求。例如,应用 502可以使用文件存取API、块存取API、或由操作系统210所建立的任何其他存储接口来下 发请求。
[0035]存储类驱动器506可以接收源自应用502的介质访问请求并且将所述介质访问请 求转换成较低层请求,例如转换成在逻辑块地址方面指定存储地址的请求。操作系统210可 以为计算设备1〇〇可使用的每个类型的数据存储设备126建立存储类驱动器506,例如为每 个磁盘、可移动光盘、磁带驱动器、或其他设备类型建立存储类驱动器506。存储端口驱动器 510可以接收源自存储类驱动器506的较低层介质访问请求,并将所述介质访问请求转换成 可以经适当的互连总线被传输至数据存储设备126的较低层介质访问请求。例如,存储端口 驱动器510可以生成适用于由数据存储设备126所实现的具体总线协议的介质访问请求。操 作系统210可以为可将数据存储设备126附接至计算设备100的每个互连总线(例如,为ATA 总线、SCSI总线、或USB总线)建立存储端口驱动器510。
[0036]过滤器驱动器504、508可以拦截从存储驱动器栈的较高层成员下发的介质访问请 求。在拦截之后,过滤器驱动器504、508可以允许经拦截的介质访问请求通过而去往存储驱 动器栈的较低层成员、在将它们传递至存储栈的较低层成员之前对所述介质访问请求进行 修改、或者通过向存储驱动器栈的较高层成员返回错误来拒绝所述介质访问请求。通常,每 个过滤器驱动器504、508可以实现与存储驱动器栈的另一个其他成员相同的接口,从而允 许将功能透明地添加至存储驱动器栈。在示意性实施例中,策略实施模块212被实现为较低 层过滤器驱动器508。因而,策略实施模块212可以拦截包括每个请求的逻辑块地址的较低 层介质访问请求。另外或可替代地,在其他实施例中,策略实施模块212可以被实施在存储 驱动器栈的在应用502以下的任何一层中,即,实施为较高层过滤器驱动器504、存储类驱动 器506、较低层过滤器驱动器508、和/或存储端口驱动器510或其一部分。
[0037]返回参照图4,在加载策略实施模块212之后,在方框408中,计算设备100运行所选 择的操作系统210和任何相关联的应用502。在方框410中,计算设备100监测介质访问请求。 介质访问请求可以指定存储操作(例如,读、写、创建文件或块、删除文件或块、请求信息等) 以及与所述存储操作相关联的具体存储地址或存储地址范围(例如,一个或多个逻辑块地 址)。所述介质访问请求可以由任何应用、进程、线程、较高层驱动器、或在计算设备100上执 行的其他实体生成。所述介质访问请求可以例如由交互式应用响应于用户请求而生成,或 者可以在没有用户交互的情况下生产。如上文所描述的,当所述介质访问请求穿过存储驱 动器栈行进时,可以例如由过滤器驱动器504、508所拦截。在方框412中,计算设备100判定 是否已经接收到任何介质访问请求。如果没有,方法400环回至方框410,以继续监测介质访 问请求。如果已经接收到一个或多个介质访问请求,方法400前进至方框414。
[0038] 在方框414中,计算设备100判定介质访问请求是否被介质访问策略214所允许。在 某些实施例中,在方框416中,计算设备100可以使用平台固件202检索一个或多个所述介质 访问策略214。例如,可以使用NV存储装置132将介质访问策略214作为一个或多个固件变量 进行存储。计算设备100可以使用由平台固件202所提供的运行时间固件变量接口来访问那 些固件变量。在某些实施例中,介质访问策略214可以实施为加密的、带符号的、或另外安全 的固件变量。例如,可以将介质访问策略214实施为一个或多个如UEFI规范所规定的UEFI认 证变量。
[0039] 保护或以其他方式认证对介质访问策略214的访问可以允许在设备100被提供给 最终用户之后设备供应商保留对计算设备100的配置变化的控制。例如,考虑这样一个实施 例:其中,介质访问策略214被作为固件变量存储在NV存储装置132中。在这个示例中,可以 仅通过由平台固件202所提供的物理存在的本地用户界面如图形BIOS系统)来修改 介质访问策略214。因而,平台固件202可以提供对介质访问策略214的存在证明合格的配 置。在此类实施例中,平台固件202可以在执行不受信任的固件驱动器、固件应用、选项R0M、 或操作系统加载器之前锁定介质访问策略214。因而,在那些实施例中,在预引导固件执行 环境的不受信任的部分的过程中(例如,在UEFI驱动器执行环境("DXE")结束之后)以及在 不受信任的操作系统210运行时间过程中,介质访问策略214可以是只读的。
[0040] 作为另一示例,考虑这样一个实施了:其中,介质访问策略214被作为经认证的固 件变量存储在NV存储装置132中,例如作为带有经认证的写属性位的UEFI变量。在这个示例 中,可以在不受信任的操作系统210的执行过程中在运行时间对介质访问策略214进行访问 和更新。然而,只有经认证的用户或其他实体可以允许对介质访问策略214的更新。在这些 实施例中,可以使用公钥加密来认证、验证、或以其他方式保护介质访问策略214,例如通过 使用创建者的公钥/私钥对来对经认证的固件变量进行签名。
[0041] 作为第三示例,在某些实施例中,可以使用计算设备100的安全处理器134来保护 介质访问策略214。例如,可以将介质访问策略214存储在计算设备100的受TPM控制的安全 存储区域。
[0042]仍然参照图4,在方框418中,计算设备100可以判定是否已启用介质访问保护。如 果未启用介质访问保护,可以在不进行进一步分析的情况下允许介质访问请求。在某些实 施例中,一个或多个介质访问策略214可以规定是否已启用介质访问保护。在方框420中,计 算设备100可以确定当前执行的操作系统210的标识。判定是否允许介质访问请求可以取决 于当前执行的操作系统210的标识。在某些实施例中,当前执行的操作系统210的标识可以 是策略实施模块212隐含地已知的。例如,在许多实施例中,每个操作系统210可以包括专用 策略实施模块212,如具体的过滤器驱动器504、508。在这些实施例中,操作系统210的标识 在使用中可以是硬编码的、假设的、或者以其他方式对具体策略实施模块212是隐含的。 [0043]在方框422中,计算设备100可以确定与具体介质访问请求相关联的存储分区。例 如,计算设备100可以确定包含介质访问请求中所包括的存储地址的存储分区的标识。如上 文所描述的,每个存储分区可以为一个或多个操作系统210所拥有或被指定给所述一个或 多个操作系统。为了展示,返回参照图3,计算设备100可以判定介质访问请求引用操作系统 210a分区314、操作系统210b分区316、共享分区318、还是(在某些实施例中)分区表302。在 方框424中,计算设备100可以确定与介质访问请求相关联的存储操作。例如,计算设备100 可以判定存储请求是读请求、写请求、创建请求、删除请求、信息请求、还是其他请求。在某 些实施例中,判定是否允许介质访问请求可以取决于指定的存储操作。
[0044] 在方框426中,计算设备100基于介质访问策略214判定是否允许介质访问请求。判 定是否允许介质访问请求可以基于以下各项的任何组合:当前执行的操作系统210的标识、 与所述请求相关联的存储分区、与所述请求相关联的存储操作、和/或由介质访问策略214 所指定的其他标准。例如,计算设备100可以允许对为当前执行的操作系统210所拥有的存 储分区的所有访问。作为另一示例,计算设备100可以拒绝对不为当前执行的操作系统210 所拥有的存储分区的所有访问。作为第三示例,计算设备100可以允许对当前执行的操作系 统210与一个或多个其他操作系统210之间所共享的存储分区的所有访问。作为第四示例, 计算设备100可以允许对数据存储设备126的分区表的只读访问。在某些实施例中,判定是 否允许对不为当前执行的操作系统210所拥有的存储分区的访问可以取决于介质访问策略 214,所述介质访问策略可以由平台制造商、最终用户、或其他方来定义。例如,基于介质访 问策略214的内容,计算设备100可以允许对不为当前执行的操作系统210所拥有的存储分 区的读访问,但是拒绝对不为当前执行的操作系统210所拥有的存储分区的写访问。如果允 许介质访问请求,方法400分支到方框428。如果不允许介质访问请求,方法400分支到方框 432,如下文所描述的。
[0045] 在方框428中,计算设备100允许介质访问请求继续进行。在某些实施例中,在方框 430中,计算设备100可以使介质访问请求通过而去往存储驱动器栈的较低层成员。例如,如 果策略实施模块212被实施为较低层过滤器驱动器508,则介质访问请求可以被向下传递至 存储端口驱动器510,从而允许介质访问请求正常进行。在请求被允许之后,数据存储设备 126可以执行所请求的存储操作并且将数据或状态信息沿存储驱动器栈向上最终返回至应 用502。在允许介质访问请求之后,方法400环回至方框410以继续监测介质访问请求。
[0046] 返回参照方框426,如果不允许介质访问请求,方法400分支到方框432。在方框432 中,计算设备100拒绝介质访问请求。计算设备1 〇〇可以例如防止介质访问请求被向下传递 至存储驱动器栈的较低层成员。在某些实施例中,在方框434中,计算设备100可以将告知性 错误消息返回至存储驱动器栈的较高层成员,如应用502。例如,计算设备100可以返回"访 问被拒绝"、"写保护"、"无效操作"、或其他适当的错误消息。在某些实施例中,可以将错误 消息展示给用户,从而允许用户确定介质访问请求为什么失败。在拒绝介质访问请求之后, 方法400环回至方框410以继续监测介质访问请求。
[0047]现在参照图6,在使用中,计算设备100可以执行用于介质保护策略实施的方法 600。方法600开始于方框602,在所述方框中,计算设备100进行引导。响应于用户对计算设 备100进行上电或重新引导、响应于将计算设备100从低电量睡眠或休眠状态恢复、或者在 计算设备100被初始化的其他情况下,计算设备100可以进行引导。在某些实施例中,计算设 备100可以响应于用户引导计算设备100(例如通过选择软件或硬件切换(toggle))切换操 作系统210而启动或重新启动。
[0048]在方框604,计算设备100加载预操作系统固件执行环境。所述固件执行环境可以 实施为(例如)如UEFI规范所指定的驱动器执行环境。在固件执行环境中,平台固件202受到 计算设备100的完全控制。在固件执行环境内,计算设备100初始化平台硬件并另外准备计 算设备100以供使用。计算设备100可以为一个或多个固件驱动器或固件应用加载和启动固 件图像。固件驱动器和应用可以被实施为可以提供预引导初始化和其他服务的二进制图 像。另外,在某些实施例中,固件驱动器和应用可以安装固件协议接口或者在操作系统210 执行的过程中保持常驻并为计算设备100提供服务的其他服务。例如,可以安装固件协议接 口以允许访问NV存储装置132中所存储的一个或多个固件变量。
[0049] 在方框606中,计算设备100从安装在计算设备100上的那些操作系统210中选择要 加载的操作系统210。所选择的具体操作系统210可以取决于用户选择、默认引导顺序、或任 何其他用于选择的标准。在某些实施例中,计算设备100可以选择与所选择的操作系统210 相关联的引导目标。所述引导目标可以被实施为将由计算设备100加载和启动的固件应用, 如操作系统加载器,或诊断性应用、维护应用、或管理应用
[0050] 在方框608中,计算设备100基于介质访问策略214确定要保护免受所选择的操作 系统210影响的一个或多个介质地址范围。具体地,计算设备100可以确定操作系统210不可 以访问与不为所述操作系统210所拥有和/或与所述操作系统210共享的存储分区相关联的 一个或多个逻辑块地址范围。例如,计算设备100可以确定应当保护免受所选择的操作系统 210影响的与为不同操作系统210所拥有的存储分区相关联的逻辑块地址。当然,在某些实 施例中,计算设备100可以另外或可替代地确定操作系统210将可访问的介质地址范围。例 如,计算设备100可以确定为所述操作系统210所拥有的数据分区可以被操作系统210访问。 在某些实施例中,在方框610中,计算设备100可以从一个或多个固件变量中检索所述介质 访问策略214。如上文所描述的,所述固件变量可以存储在NV存储装置132中。所述固件变量 可以判定例如是否已启用介质访问保护、是否允许对不为所述所选择的操作系统210所拥 有的分区的访问、或任何其他访问策略。
[0051]作为展示,再次参照图3,假设计算设备100结合方框606如上文所述的那样选择操 作系统210a。计算设备100可以确定操作系统210a不可以访问为所述操作系统210b所拥有 的分区316内的数据地址。在某些实施例中,计算设备100可以确定的是,可以允许操作系统 210a访问分区314内的数据地址。
[0052]在方框612中,计算设备100基于如上面所描述的方框608中确定的受保护的介质 地址范围设定对数据存储设备126的数据访问控制。在某些实施例中,计算设备100可以编 程、命令、或另外指示数据存储设备126的控制器128拒绝在受保护的介质地址范围内的访 问。例如,计算设备100可以对控制器128的扇区范围保护特征进行编程以防止对受保护的 介质地址范围的访问。当然,在某些实施例中,计算设备100可以编程、命令、或另外指示数 据存储设备126的控制器128允许在指定的介质地址范围内的访问。计算设备100可以基于 控制器128的能力判定是否指定受保护的介质地址范围或是否指定允许的介质地址范围。 在设定数据访问控制之后,在计算设备100上执行的任何进程(包括任何操作系统210)可能 不能访问受保护的介质地址范围内的介质地址。当计算设备100被重新引导、重启、或另外 重置时,对数据存储设备126的数据访问控制可以被重置。
[0053]在方框614中,计算设备100引导所选择的操作系统210。如上文所描述的,固件执 行环境可以加载并执行与所选择的操作系统210相关联的引导目标。在执行的过程中,所选 择的操作系统210可能不能访问受保护的介质地址范围内的介质地址。因而,在使用中,操 作系统210可能完全没察觉到为其他操作系统210所拥有的存储分区。
[0054]在引导操作系统210之后,计算设备100可以使用与那个操作系统210相关联的策 略实施模块212来监测介质访问请求,例如通过执行上文结合图4描述的方法400。因而,方 法400、600是互补的。计算设备100可以独立地执行每种方法400、600,或可以联合执行两种 方法400、600。例如,具有支撑扇区范围保护的硬件控制器128的计算设备100可以在预引导 固件环境过程中执行方法600并且在引导操作系统210之后执行方法400。另外或可替代地, 这种具有支撑扇区范围保护的硬件控制器128的计算设备100可以只执行方法600并且不执 行方法400,例如当在没有策略实施模块212的情况下执行操作系统210时。另外或可替代 地,不具有支撑扇区范围保护的硬件控制器128的计算设备100可以在执行操作系统210的 过程中执行方法400,并且不执行方法600。
[0055]另外或可替代地,当在同一计算设备100上执行时,每一种方法400、600可以实施 不同的介质访问策略214。例如,方法600可以使用硬件控制器128来实施介质访问策略214 以完全拒绝对不为所选择的操作系统210所拥有的分区的访问。继续那个示例,方法400可 以实施允许对数据存储设备126的共享分区的选择性访问或只读访问的介质访问策略214。
[0056] 示例
[0057] 下面提供了在此所公开的技术的示意性示例。这些技术的实施例可以包括下文所 描述的示例中的任何一个或多个,以及其任何组合。
[0058] 示例1包括一种用于多操作系统环境中的介质保护策略实施的计算设备,所述计 算设备包括:包括多个区域的数据存储设备;以及策略实施模块,所述策略实施模块用于: 在所述计算设备的操作系统的执行过程中拦截介质访问请求,其中,所述介质访问请求指 定存储操作和存储地址;确定所述计算设备的所述操作系统的标识;对所述数据存储设备 的包括所述介质访问请求的所述存储地址的区域进行标识;并且根据(i)所述数据存储设 备的所述经标识的区域、(ii)所述操作系统的标识、以及(iii)所述介质访问请求的所述存 储操作,判定是否允许所述介质访问请求。
[0059] 示例2包括示例1的主题,并且其中,用于判定是否允许所述介质访问请求包括:用 于确定所述数据存储设备的所述区域是否为所述操作系统所拥有;并且响应于确定所述区 域为所述操作系统所拥有,确定允许所述介质访问请求。
[0060] 示例3包括示例1和2中任一项的主题,并且其中,用于判定是否允许所述介质访问 请求进一步包括:用于响应于确定所述区域不为所述操作系统所拥有,确定不允许所述介 质访问请求。
[0061] 示例4包括示例1-3中任一项的主题,并且其中,用于判定是否允许所述介质访问 请求进一步包括:用于响应于确定所述区域不为所述操作系统所拥有,根据所述计算设备 的介质访问策略判定是否允许所述介质访问请求。
[0062] 示例5包括示例1-4中任一项的主题,并且其中,用于根据所述介质访问策略判定 是否允许所述介质访问请求包括用于使用所述计算设备的固件环境从所述计算设备的非 易失性存储装置读取所述介质访问策略。
[0063] 示例6包括示例1-5中任一项的主题,并且其中,用于根据所述介质访问策略判定 是否允许所述介质访问请求包括:用于确定所述数据存储设备的所述区域是否是由所述操 作系统与第二操作系统共享的,其中,所述第二操作系统在所述确定的过程中将不执行;并 且响应于确定所述区域是共享的,确定允许所述介质访问请求。
[0064] 示例7包括示例1-6中任一项的主题,并且其中,用于根据所述介质访问策略判定 是否允许所述介质访问请求包括:用于根据所述介质访问请求的所述存储操作判定是否允 许所述介质访问请求。
[0065] 示例8包括示例1-7中任一项的主题,并且其中,用于根据所述介质访问请求的所 述存储操作判定是否允许所述介质访问请求包括:用于响应于所述介质访问请求包括读取 操作,确定允许所述介质访问请求;并且响应于所述介质访问请求包括写操作,确定不允许 所述介质访问请求。
[0066] 示例9包括示例1-8中任一项的主题,并且其中,用于判定是否允许所述介质访问 包括用于使用所述计算设备的固件环境从所述计算设备的非易失性存储装置读取介质访 问策略。
[0067] 示例10包括示例1-9中任一项的主题,并且其中,用于判定是否允许所述介质访问 包括用于根据所述介质访问策略判定是否已启用介质访问保护;并且响应于确定已启用所 述介质访问保护,判定是否允许所述介质访问。
[0068] 示例11包括示例1-10中任一项的主题,并且进一步包括:第二策略实施模块,所述 第二策略实施模块用于:在所述计算设备的第二操作系统的执行过程中拦截第二介质访问 请求,所述第二介质访问请求用于指定第二存储操作和第二存储地址;确定所述第二操作 系统的标识;对所述数据存储设备的包括所述第二介质访问请求的第二存储地址的第二区 域进行标识;并且根据所述数据存储设备的所述第二区域、所述第二操作系统的标识、以及 所述第二介质访问请求的所述第二存储操作来判定是否允许所述第二介质访问请求。
[0069] 示例12包括示例1-11中任一项的主题,并且其中,所述策略实施模块包括所述计 算设备的过滤器驱动器。
[0070] 示例13包括示例1-12中任一项的主题,并且其中,所述策略实施模块进一步用于: 响应于确定允许所述介质访问请求,使所述介质访问请求通过而去往所述计算设备的较低 层驱动器。
[0071] 示例14包括示例1-13中任一项的主题,并且其中,所述策略实施模块进一步用于: 响应于确定不允许所述介质访问请求,拒绝所述介质访问请求。
[0072] 示例15包括示例1-14中任一项的主题,并且其中,所述数据存储设备的所述区域 包括所述数据存储设备的分区。
[0073] 示例16包括示例1-15中任一项的主题,并且其中,所述数据存储设备的所述区域 包括所述数据存储设备的分区表。
[0074] 示例17包括示例1-16中任一项的主题,并且进一步包括:所述计算设备的固件环 境所建立的引导选项模块,所述引导选项模块用于从安装在所述计算设备上的多个操作系 统中选择所述操作系统;以及由所述固件环境所建立的第二策略实施模块,所述第二策略 实施模块用于(i)基于所述所选择的操作系统确定所述数据存储设备的有待保护的第二区 域,并且(ii)将所述数据存储设备配置成防止对所述数据存储设备的所述第二区域的访 问;其中,所述引导选项模块进一步用于响应于对所述数据存储设备的配置来加载所述所 选择的操作系统。
[0075] 示例18包括一种用于多操作系统环境中的介质保护策略实施的计算设备,所述计 算设备包括:包括多个区域的数据存储设备;由所述计算设备的固件环境所建立的引导选 项模块,所述引导选项模块用于从安装在所述计算设备上的多个操作系统中选择操作系 统;以及由所述固件环境所建立的策略实施模块,所述策略实施模块用于(i)基于所述所选 择的操作系统确定数据存储设备的有待保护的区域并且(ii)配置所述数据存储设备以防 止对所述数据存储设备的所述区域的访问;其中,所述引导选项模块进一步用于响应于对 所述数据存储设备的配置来加载所述所选择的操作系统。
[0076]示例19包括示例18的主题,并且其中,所述数据存储设备的所述区域包括所述数 据存储设备的分区。
[0077]示例20包括示例18和19中任一项的主题,并且其中,所述数据存储设备的所述区 域包括所述数据存储设备的分区表。
[0078] 示例21包括示例18-20中任一项的主题,并且其中,用于确定所述数据存储设备的 所述区域包括用于对所述数据存储设备的不为所述所选择的操作系统所拥有的区域进行 标识。
[0079] 示例22包括示例18-21中任一项的主题,并且其中,用于确定所述数据存储设备的 所述区域包括用于根据所述计算设备的介质访问策略确定所述区域。
[0080]示例23包括示例18-22中任一项的主题,并且其中,用于根据所述介质访问策略确 定所述区域包括用于从所述计算设备的非易失性存储装置读取所述介质访问策略。
[0081 ]示例24包括示例18-23中任一项的主题,并且进一步包括:第二策略实施模块,所 述第二策略实施模块用于:在所述所选择的操作系统执行的过程中拦截介质访问请求,所 述介质访问请求用于指定存储操作和存储地址;确定所述所选择的操作系统的标识;对所 述数据存储设备的包括所述介质访问请求的所述存储地址的第二区域进行标识;并且根据 所述数据存储设备的所述第二区域、所述所选择的操作系统的标识、以及所述介质访问请 求的所述存储操作判定是否允许所述介质访问请求。
[0082]示例25包括一种用于多操作系统环境中的介质保护策略实施的方法,所述方法包 括:由计算设备在所述计算设备的操作系统的执行过程中拦截介质访问请求,所述介质访 问请求指定存储操作和存储地址;由所述计算设备确定所述计算设备的所述操作系统的标 识;由所述计算设备对所述计算设备的数据存储设备的包括所述介质访问请求的所述存储 地址的区域进行标识;并且由所述计算设备根据(i)所述数据存储设备的所述经标识的区 域、(ii)所述操作系统的标识、以及(iii)所述介质访问请求的所述存储操作来判定是否允 许所述介质访问请求。
[0083]示例26包括示例25的主题,并且其中,判定是否允许所述介质访问请求包括:判定 所述数据存储设备的所述区域是否为所述操作系统所拥有;并且响应于确定所述区域为所 述操作系统所拥有,确定允许所述介质访问请求。
[0084]示例27包括示例25和26中任一项的主题,并且其中,判定是否允许所述介质访问 请求进一步包括:响应于确定所述区域不为所述操作系统所拥有,确定不允许所述介质访 问请求。
[0085]示例28包括示例25-27中任一项的主题,并且其中,判定是否允许所述介质访问请 求进一步包括:响应于确定所述区域不为所述操作系统所拥有,根据所述计算设备的介质 访问策略判定是否允许所述介质访问请求。
[0086]示例29包括示例25-28中任一项的主题,并且其中,根据所述介质访问策略判定是 否允许所述介质访问请求包括使用所述计算设备的固件环境从所述计算设备的非易失性 存储装置读取所述介质访问策略。
[0087]示例30包括示例25-29中任一项的主题,并且其中,根据所述介质访问策略判定是 否允许所述介质访问请求包括:判定所述数据存储设备的所述区域是否是由所述操作系统 与第二操作系统共享的,其中,所述第二操作系统当前不执行;并且响应于确定所述区域是 共享的,确定允许所述介质访问请求。
[0088]示例31包括示例25-30中任一项的主题,并且其中,根据所述介质访问策略判定是 否允许所述介质访问请求包括:根据所述介质访问请求的所述存储操作判定是否允许所述 介质访问请求。
[0089] 示例32包括示例25-31中任一项的主题,并且其中,根据所述介质访问请求的所述 存储操作判定是否允许所述介质访问请求包括:响应于所述介质访问请求包括读取操作, 确定允许所述介质访问请求;并且响应于所述介质访问请求包括写操作,确定不允许所述 介质访问请求。
[0090] 示例33包括示例25-32中任一项的主题,并且其中,判定是否允许所述介质访问包 括使用所述计算设备的固件环境从所述计算设备的非易失性存储装置读取介质访问策略。
[0091] 示例34包括示例25-33中任一项的主题,并且其中,判定是否允许所述介质访问包 括:根据所述介质访问策略判定是否已启用介质访问保护;并且响应于确定已启用所述介 质访问保护,判定是否允许所述介质访问。
[0092] 示例35包括示例25-34中任一项的主题,并且进一步包括:由所述计算设备在所述 计算设备的第二操作系统的执行过程中拦截第二介质访问请求,所述第二介质访问请求指 定第二存储操作和第二存储地址;由所述计算设备确定所述第二操作系统的标识;由所述 计算设备对所述数据存储设备的包括所述第二介质访问请求的第二存储地址的所述第二 区域进行标识;并且由所述计算设备根据所述数据存储设备的所述第二区域、所述第二操 作系统的标识、以及所述第二介质访问请求的所述第二存储操作判定是否允许所述第二介 质访问请求。
[0093]示例36包括示例25-35中任一项的主题,并且其中,拦截所述介质访问请求包括使 用所述计算设备的过滤器驱动器拦截所述介质访问请求。
[0094] 示例37包括示例25-36中任一项的主题,并且进一步包括:由所述计算设备响应于 确定允许所述介质访问请求而使所述介质访问请求通过而去往所述计算设备的较低层的 驱动器。
[0095] 示例38包括示例25-37中任一项的主题,并且进一步包括:由所述计算设备响应于 确定不允许所述介质访问请求而拒绝所述介质访问请求。
[0096]示例39包括示例25-38中任一项的主题,并且其中,标识所述数据存储设备的所述 区域包括标识所述数据存储设备的分区。
[0097]示例40包括示例25-39中任一项的主题,并且其中,标识所述数据存储设备的所述 区域包括标识所述数据存储设备的分区表。
[0098] 示例41包括示例25-40中任一项的主题,并且进一步包括:在执行所述计算设备的 所述操作系统之前由所述计算设备加载固件执行环境;由具有所述固件执行环境的所述计 算设备从安装在所述计算设备上的多个操作系统中选择所述操作系统;由具有所述固件执 行环境的所述计算设备基于所述所选择的操作系统来确定所述数据存储设备的有待保护 的第二区域;由具有所述固件执行环境的所述计算设备对所述数据存储设备件配置从而防 止对所述数据存储设备的所述第二区域的访问;并且由具有所述固件执行环境的所述计算 设备响应于配置所述数据存储设备而加载所述所选择的操作系统。
[0099] 示例42包括一种用于多操作系统环境中的介质保护策略实施的方法,所述方法包 括:由计算设备加载预操作系统固件执行环境;由具有所述固件执行环境的所述计算设备 从安装在所述计算设备上的多个操作系统中选择操作系统;由具有所述固件执行环境的所 述计算设备基于所述所选择的操作系统来确定数据存储设备的有待保护的区域;由具有所 述固件执行环境的所述计算设备配置所述数据存储设备以防止对所述数据存储设备的所 述区域的访问;并且由具有所述固件执行环境的所述计算设备响应于配置所述数据存储设 备而加载所述所选择的操作系统。
[0100] 示例43包括示例42的主题,并且其中,确定所述数据存储设备的所述区域包括确 定所述数据存储设备的分区。
[0101] 示例44包括示例42和43中任一项的主题,并且其中,确定所述数据存储设备的所 述区域包括确定所述数据存储设备的分区表。
[0102] 示例45包括示例42-44中任一项的主题,并且其中,确定所述数据存储设备的所述 区域包括对所述数据存储设备的不为所述所选择的操作系统所拥有的区域进行标识。 [0103]示例46包括示例42-45中任一项的主题,并且其中,确定所述数据存储设备的所述 区域包括根据所述计算设备的介质访问策略确定所述区域。
[0104]示例47包括示例42-46中任一项的主题,并且其中,根据所述介质访问策略确定所 述区域包括从所述计算设备的非易失性存储装置读取所述介质访问策略。
[0105] 示例48包括示例42-47中任一项的主题,并且进一步包括:由所述计算设备在所述 所选择的操作系统执行的过程中拦截介质访问请求,所述介质访问请求指定存储操作和存 储地址;由所述计算设备确定所述所选择的操作系统的标识;由所述计算设备对所述数据 存储设备的包括所述介质访问请求的所述存储地址的所述第二区域进行标识;以及由所述 计算设备根据所述数据存储设备的所述第二区域、所述所选择的操作系统的标识、以及所 述介质访问请求的所述存储操作判定是否允许所述介质访问请求。
[0106]示例49包括一种计算设备,所述计算设备包括:处理器;以及存储器,所述存储器 具有存储于其中的多条指令,这些指令当被所述处理器执行时致使所述计算设备执行示例 25-48中任一项所述的方法。
[0107] 示例50包括一个或多个机器可读存储介质,所述一个或多个机器可读存储介质包 括存储于其上的多条指令,这些指令响应于被执行而导致计算设备执行示例25-48中任一 项所述的方法。
[0108] 示例51包括一种计算设备,所述计算设备包括用于执行示例25-48中任一项所述 的方法的装置。
[0109] 示例52包括一种用于多操作系统环境中的介质保护策略实施的计算设备,所述计 算设备包括:用于在所述计算设备的操作系统的执行过程中拦截介质访问请求的装置,所 述介质访问请求指定存储操作和存储地址;用于确定所述计算设备的所述操作系统的标识 的装置;用于对所述计算设备的数据存储设备的包括所述介质访问请求的所述存储地址的 区域进行标识的装置;以及用于根据(i)所述数据存储设备的所述经标识的区域、(ii)所述 操作系统的标识、以及(iii)所述介质访问请求的所述存储操作来判定是否允许所述介质 访问请求的装置。
[0110]示例53包括示例52的主题,并且其中,用于判定是否允许所述介质访问请求的所 述装置包括用于判定所述数据存储设备的所述区域是否为所述操作系统所拥有的装置;并 且用于响应于确定所述区域为所述操作系统所拥有而确定允许所述介质访问请求的装置。 示例54包括示例52和53中任一项的主题,并且其中,用于判定是否允许所述介质 访问请求的所述装置进一步包括:用于响应于确定所述区域不为所述操作系统所拥有而确 定不允许所述介质访问请求的装置。
[0112] 示例55包括示例52-54中任一项的主题,并且其中,用于判定是否允许所述介质访 问请求的所述装置进一步包括:用于响应于确定所述区域不为所述操作系统所拥有而根据 所述计算设备的介质访问策略判定是否允许所述介质访问请求的装置。
[0113] 示例56包括示例52-55中任一项的主题,并且其中,用于根据所述介质访问策略判 定是否允许所述介质访问请求的所述装置包括用于使用所述计算设备的固件环境从所述 计算设备的非易失性存储装置读取所述介质访问策略的装置。
[0114] 示例57包括示例52-56中任一项的主题,并且其中,用于根据所述介质访问策略判 定是否允许所述介质访问请求的所述装置包括:用于判定所述数据存储设备的所述区域是 否由所述操作系统与第二操作系统共享的装置,其中,所述第二操作系统当前不执行;以及 用于响应于确定所述区域是共享的而确定允许所述介质访问请求的装置。
[0115] 示例58包括示例52-57中任一项的主题,并且其中,用于根据所述介质访问策略判 定是否允许所述介质访问请求的所述装置包括:用于根据所述介质访问请求的所述存储操 作判定是否允许所述介质访问请求的装置。
[0116] 示例59包括示例52-58中任一项的主题,并且其中,用于根据所述介质访问请求的 所述存储操作判定是否允许所述介质访问请求的所述装置包括:用于响应于所述介质访问 请求包括读取操作而确定允许所述介质访问请求的装置;以及用于响应于所述介质访问请 求包括写操作而确定不允许所述介质访问请求的装置。
[0117] 示例60包括示例52-59中任一项的主题,并且其中,用于判定是否允许所述介质访 问的所述装置包括使用所述计算设备的固件环境从所述计算设备的非易失性存储装置读 取介质访问策略的装置。
[0118] 示例61包括示例52-60中任一项的主题,并且其中,用于判定是否允许所述介质访 问的所述装置包括:用于根据所述介质访问策略判定是否已启用介质访问保护的装置;以 及用于响应于确定已启用所述介质访问保护而判定是否允许所述介质访问的装置。
[0119] 示例62包括示例52-61中任一项的主题,并且进一步包括:用于在所述计算设备的 第二操作系统的执行过程中拦截第二介质访问请求的装置,所述第二介质访问请求指定第 二存储操作和第二存储地址;用于确定所述第二操作系统的标识的装置;用于对所述数据 存储设备的包括所述第二介质访问请求的所述第二存储地址的第二区域进行标识的装置; 以及用于根据所述数据存储设备的所述第二区域、所述第二操作系统的标识、以及所述第 二介质访问请求的所述第二存储操作来判定是否允许所述第二介质访问请求的装置。
[0120] 示例63包括示例52-62中任一项的主题,并且其中,用于拦截所述介质访问请求的 所述装置包括用于使用所述计算设备的过滤器驱动器拦截所述介质访问请求的装置。
[0121] 示例64包括示例52-63中任一项的主题,并且进一步包括:用于响应于确定允许所 述介质访问请求而使所述介质访问请求通过而去往所述计算设备的较低层驱动器的装置。
[0122] 示例65包括示例52-64中任一项的主题,并且进一步包括:用于响应于确定不允许 所述介质访问请求而拒绝所述介质访问请求的装置。
[0123] 示例66包括示例52-65中任一项的主题,并且其中,用于标识所述数据存储设备的 所述区域的所述装置包括用于标识所述数据存储设备的分区的装置。
[0124] 示例67包括示例52-66中任一项的主题,并且其中,用于标识所述数据存储设备的 所述区域的所述装置包括用于标识所述数据存储设备的分区表的装置。
[0125] 示例68包括示例52-67中任一项的主题,并且进一步包括:用于在执行所述计算设 备的所述操作系统之前加载固件执行环境的装置;用于使用所述固件执行环境从安装在所 述计算设备上的多个操作系统中选择所述操作系统的装置;用于使用所述固件执行环境基 于所述所选择的操作系统来确定所述数据存储设备的有待保护的第二区域的装置;用于使 用所述固件执行环境配置所述数据存储设备以防止对所述数据存储设备的所述第二区域 进行访问的装置;以及用于使用所述固件执行环境响应于配置所述数据存储设备来加载所 述所选择的操作系统的装置。
[0126] 示例69包括一种用于多操作系统环境中的介质保护策略实施的计算设备,所述计 算设备包括:用于加载预操作系统固件执行环境的装置;用于使用所述固件执行环境从安 装在所述计算设备上的多个操作系统中选择操作系统的装置;用于使用所述固件执行环境 基于所述所选择的操作系统确定数据存储设备的有待保护的区域的装置;用于使用所述固 件执行环境配置所述数据存储设备以防止对所述数据存储设备的所述区域进行访问的装 置;以及用于使用所述固件执行环境响应于配置所述数据存储设备来加载所述所选择的操 作系统的装置。
[0127] 示例70包括示例69的主题,并且其中,用于确定所述数据存储设备的所述区域的 所述装置包括用于确定所述数据存储设备的分区的装置。
[0128] 示例71包括示例69和70中任一项的主题,并且其中,用于确定所述数据存储设备 的所述区域的所述装置包括用于确定所述数据存储设备的分区表的装置。
[0129] 示例72包括示例69-71中任一项的主题,并且其中,用于确定所述数据存储设备的 所述区域的所述装置包括用于对所述数据存储设备的不为所述所选择的操作系统所拥有 的区域进行标识的装置。
[0130]示例73包括示例69-72中任一项的主题,并且其中,用于确定所述数据存储设备的 所述区域的所述装置包括用于根据所述计算设备的介质访问策略确定所述区域的装置。
[0131] 示例74包括示例69-73中任一项的主题,并且其中,用于根据所述介质访问策略确 定所述区域的所述装置包括用于从所述计算设备的非易失性存储装置读取所述介质访问 策略的装置。
[0132] 示例75包括示例69-74中任一项的主题,并且进一步包括:用于在所述所选择的操 作系统的执行过程中拦截介质访问请求的所述装置,所述介质访问请求指定存储操作和存 储地址;用于确定所述选定的操作系统的标识的装置;用于对所述数据存储设备的包括所 述介质访问请求的所述存储地址的第二区域进行标识的装置;以及用于根据所述数据存储 设备的所述第二区域、所述选定的操作系统的标识、以及所述介质访问请求的所述存储操 作来判定是否允许所述介质访问请求的装置。
【主权项】
1. 一种用于多操作系统环境中的介质保护策略实施的计算设备,所述计算设备包括: 包括多个区域的数据存储设备;以及 策略实施模块,所述策略实施模块用于: 在所述计算设备的操作系统的执行过程中拦截介质访问请求,其中,所述介质访问请 求指定存储操作和存储地址; 确定所述计算设备的所述操作系统的标识; 标识所述数据存储设备的包括所述介质访问请求的所述存储地址的区域;以及 根据(i)所述数据存储设备的所述经标识的区域、(ii)所述操作系统的标识、以及 (i i i)所述介质访问请求的所述存储操作来判定是否允许所述介质访问请求。2. 如权利要求1所述的计算设备,其中,用于判定是否允许所述介质访问请求包括用 于: 判定所述数据存储设备的所述区域是否为所述操作系统所拥有;以及 响应于确定了所述区域为所述操作系统所拥有,确定允许所述介质访问请求。3. 如权利要求2所述的计算设备,其中,用于判定是否允许所述介质访问请求进一步包 括用于:响应于确定了所述区域不为所述操作系统所拥有,根据所述计算设备的介质访问 策略来判定是否允许所述介质访问请求。4. 如权利要求3所述的计算设备,其中,用于根据所述介质访问策略来判定是否允许所 述介质访问请求包括用于: 判定所述数据存储设备的所述区域是否由所述操作系统与第二操作系统共享,其中, 所述第二操作系统在所述确定的过程中将不执行;以及 响应于确定了所述区域被共享,确定允许所述介质访问请求。5. 如权利要求3所述的计算设备,其中,用于根据所述介质访问策略来判定是否允许所 述介质访问请求包括用于:根据所述介质访问请求的所述存储操作来判定是否允许所述介 质访问请求。6. 如权利要求1至5中任一项所述的计算设备,其中,用于判定是否允许所述介质访问 包括用于:使用所述计算设备的固件环境从所述计算设备的非易失性存储装置读取介质访 问策略。7. 如权利要求6所述的计算设备,其中,用于判定是否允许所述介质访问包括用于: 根据所述介质访问策略来判定是否已启用介质访问保护;以及 响应于确定了已启用所述介质访问保护,判定是否允许所述介质访问。8. 如权利要求1至5中任一项所述的计算设备,其中,所述策略实施模块包括所述计算 设备的过滤器驱动器,并且其中,所述策略实施模块进一步用于: 响应于确定了允许所述介质访问请求,使所述介质访问请求通过而去往所述计算设备 的较低层驱动器;并且 响应于确定了不允许所述介质访问请求,拒绝所述介质访问请求。9. 如权利要求1至5中任一项所述的计算设备,其中,所述数据存储设备的所述区域包 括所述数据存储设备的分区或所述数据存储设备的分区表。10. -种用于多操作系统环境中的介质保护策略实施的计算设备,所述计算设备包括: 包括多个区域的数据存储设备; 由所述计算设备的固件环境所建立的引导选项模块,所述引导选项模块用于从安装在 所述计算设备上的多个操作系统中选择操作系统;以及 由所述固件环境所建立的策略实施模块,所述策略实施模块用于(i)基于所述所选择 的操作系统来确定数据存储设备的有待保护的区域;以及(ii)配置所述数据存储设备以防 止对所述数据存储设备的所述区域的访问; 其中,所述引导选项模块进一步用于:响应于对所述数据存储设备的配置来加载所述 所选择的操作系统。11. 如权利要求10所述的计算设备,其中,所述数据存储设备的所述区域包括所述数据 存储设备的分区或所述数据存储设备的分区表。12. 如权利要求10所述的计算设备,其中,用于确定所述数据存储设备的所述区域包括 用于标识所述数据存储设备的不为所述所选择的操作系统所拥有的区域。13. 如权利要求10至12中任一项所述的计算设备,其中,用于确定所述数据存储设备的 所述区域包括用于根据所述计算设备的介质访问策略来确定所述区域。14. 一种用于多操作系统环境中的介质保护策略实施的方法,所述方法包括: 由计算设备在所述计算设备的操作系统的执行过程中拦截介质访问请求,所述介质访 问请求指定存储操作和存储地址; 由所述计算设备确定所述计算设备的所述操作系统的标识; 由所述计算设备对所述计算设备的数据存储设备的包括所述介质访问请求的所述存 储地址的区域进行标识;并且 由所述计算设备根据(i)所述数据存储设备的所述经标识的区域、(ii)所述操作系统 的标识、以及(i i i)所述介质访问请求的所述存储操作来判定是否允许所述介质访问请求。15. 如权利要求14所述的方法,其中,判定是否允许所述介质访问请求包括: 判定所述数据存储设备的所述区域是否为所述操作系统所拥有;以及 响应于确定了所述区域为所述操作系统所拥有,确定允许所述介质访问请求。16. 如权利要求15所述的方法,其中,判定是否允许所述介质访问请求进一步包括:响 应于确定了所述区域不为所述操作系统所拥有,根据所述计算设备的介质访问策略来判定 是否允许所述介质访问请求。17. 如权利要求16所述的方法,其中,根据所述介质访问策略来判定是否允许所述介质 访问请求包括: 判定所述数据存储设备的所述区域是否由所述操作系统与第二操作系统共享,其中, 所述第二操作系统当前不执行;并且 响应于确定了所述区域是被共享,确定允许所述介质访问请求。18. 如权利要求16所述的方法,其中,根据所述介质访问策略来判定是否允许所述介质 访问请求包括:根据所述介质访问请求的所述存储操作来判定是否允许所述介质访问请 求。19. 如权利要求14所述的方法,其中,判定是否允许所述介质访问包括:使用所述计算 设备的固件环境从所述计算设备的非易失性存储装置读取介质访问策略。20. -种用于多操作系统环境中的介质保护策略实施的方法,所述方法包括: 由计算设备加载预操作系统固件执行环境; 由具有所述固件执行环境的所述计算设备从安装在所述计算设备上的多个操作系统 中选择操作系统; 由具有所述固件执行环境的所述计算设备基于所述所选择的操作系统来确定数据存 储设备的有待保护的区域; 由具有所述固件执行环境的所述计算设备配置所述数据存储设备以防止对所述数据 存储设备的所述区域的访问;以及 由具有所述固件执行环境的所述计算设备响应于配置所述数据存储设备来加载所述 所选择的操作系统。21. 如权利要求20所述的方法,其中,确定所述数据存储设备的所述区域包括:标识所 述数据存储设备的不为所述所选择的操作系统所拥有的区域。22. 如权利要求20所述的方法,其中,确定所述数据存储设备的所述区域包括:根据所 述计算设备的介质访问策略来确定所述区域。23. -种计算设备,包括 处理器;以及 存储器,所述存储器具有存储于其中的多条指令,这些指令当被所述处理器执行时致 使所述计算设备执行如权利要求14-22中任一项所述的方法。24. -种或多种机器可读存储介质,包括存储于其上的多条指令,响应于执行所述多条 指令,所述多条指令导致计算设备执行如权利要求14至22中任一项所述的方法。25. -种计算设备,包括用于执行如权利要求14至22中任一项所述的方法的装置。
【文档编号】G06F21/62GK105900105SQ201580003846
【公开日】2016年8月24日
【申请日】2015年1月30日
【发明人】M·A·罗斯曼, V·J·齐默, M·S·多兰
【申请人】英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1