CN106255955A - 多操作系统装置的访问隔离 - Google Patents

多操作系统装置的访问隔离 Download PDF

Info

Publication number
CN106255955A
CN106255955A CN201480076013.5A CN201480076013A CN106255955A CN 106255955 A CN106255955 A CN 106255955A CN 201480076013 A CN201480076013 A CN 201480076013A CN 106255955 A CN106255955 A CN 106255955A
Authority
CN
China
Prior art keywords
operating system
equipment
access
foregrounding
memory
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.)
Granted
Application number
CN201480076013.5A
Other languages
English (en)
Other versions
CN106255955B (zh
Inventor
K·李
V·齐默
X·周
吴平
尤子健
M·罗斯曼
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
Intel IP 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 CN106255955A publication Critical patent/CN106255955A/zh
Application granted granted Critical
Publication of CN106255955B publication Critical patent/CN106255955B/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/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45541Bare-metal, i.e. hypervisor runs directly on hardware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • 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)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请涉及多操作系统装置的访问隔离。通常,可以使用固件将装置配置成用于容纳在所述装置上并发地进行操作的多于一个操作系统(OS)或者用于从一个OS转换至另一个。所述固件中的访问隔离模块(AIM)可以确定装置设备配置,并且可以对所述设备进行分割以供多个操作系统使用。所述AIM可以禁用基于OS的设备感测,并且可以使用自定义表格为每一个OS分配所述设备的至少一部分。当在操作系统之间转换时,所述AIM可以有助于确保来自一个OS的信息不可由其他操作系统访问。例如,所述AIM可以检测前台OS何时由后台OS替代,并且可以在所述后台OS变得活动之前保护(例如,锁定或加密)所述前台OS的文件。

Description

多操作系统装置的访问隔离
技术领域
本公开涉及电子装置,并且更具体地涉及一种用于对多个操作系统的并发操作和/或切换行为进行管理的装置。
背景技术
装置可以包括用于促进装置中的设备操作的操作系统(OS)。例如,OS可以包括设备的各种驱动程序;文件处置和处理工具;可以促进用户与装置进行交互的用户接口软件等。装置传统上仅已经包括一个OS,因为这是装置发挥作用所需的全部。然而,从各种各样的来源引入各种各样不同类型的操作系统已经产生了对多操作系统装置的兴趣。例如,移动计算装置用户可能期望当正在以静止方式(例如,用外接电源和有线网络)使用装置时采用更稳健的OS,并且可以在装置移动时切换至更精简、更节能等的OS。可替代地,对“云”计算解决方案(例如,能够提供诸如远程处理、远程存储等服务的至少一个装置)的兴趣的增加已经创建了能够将装置划分为更小的计算单元以用于可伸缩处理解决方案的需要。在任一种情况下,用于单独地或并发地运行多个操作系统的能力是所期望的能力。
虽然在装置中采用多于一个OS表面上可能是有益的,但是这种系统的实际实现方式目前是有问题的。现有的解决方案并不允许以便利方式从一个OS转换至另一个,或者不允许并发地运行多个操作系统。相反,装置一次只能运行一个OS、可能需要重启以便改变OS配置等。所产生的延迟和/或不期望的操作限制可能使得多于一个OS的使用变得累赘。一个操作系统的实例也可能在另一个OS内虚拟运行,从而允许多于一个OS在装置中并发活动。虽然这种解决方案可以提供同时运行多于一个OS或在不同的操作系统之间快速移动的灵活性,但是实现这种解决方案从而使得每一个OS采用可接受的方式进行所需的处理和/或能力资源使得对于某些实现方式并不合适,其中,例如,处理能力和/或电池寿命是一个关心的问题(例如,移动通信和/或计算装置),其中期望的是对装置中的设备再进行细分以便为多个并发运行地操作系统提供充足的资源、安全性和/或稳定性等。
附图说明
所要求保护的主题的各个实施例的特征和优点将随着以下具体实施方式进行并且通过参照附图变得明显,其中,相同的数字指代相同的部件,并且在附图中:
图1展示了根据本公开的至少一个实施例的被配置成用于多操作系统的访问隔离的示例装置;
图2展示了根据本公开的至少一个实施例可用的装置的示例配置;
图3展示了根据本公开的至少一个实施例的用于多操作系统装置的访问隔离的示例操作;
图4展示了根据本公开的至少一个实施例经由选择性设备上报进行设备隔离的示例;
图5展示了根据本公开的至少一个实施例经由选择性设备上报进行设备隔离的示例操作;
图6展示了根据本公开的至少一个实施例经由存储器锁定进行设备隔离的示例;
图7展示了根据本公开的至少一个实施例经由存储器锁定进行设备隔离的示例操作;
图8展示了根据本公开的至少一个实施例经由存储器加密进行设备隔离的示例;以及
图9展示了根据本公开的至少一个实施例经由存储器加密进行设备隔离的示例操作。
虽然以下具体实施方式将参考说明性实施例进行,但是许多替代方案、修改及其变化将对本领域的技术人员而言是明显的。
具体实施方式
本申请涉及多操作系统装置的访问隔离。通常,可以使用固件(例如,永久性存储器中的程序代码)将装置配置成用于对在所述装置上并发地进行操作的多于一个操作系统(OS)进行容置或者用于从一个OS转换至另一个。在一个实施例中,所述固件中的访问隔离模块(AIM)可以在装置激活之后确定装置设备配置,并且然后可以对所述设备进行分割以供多个操作系统使用。所述AIM则可以禁用设备感测服务,并且可以使用自定义表格为每一个OS分配所述设备的至少一部分。当在操作系统之间转换时,所述AIM可以有助于确保对应于一个OS的信息不可由其他操作系统访问。例如,所述AIM可以检测前台OS何时由后台OS替代,并且可以在所述后台OS变得活动之前保护所述前台OS的文件。保护的示例可以包括:锁定由后台OS使用的存储器从而使得所述存储器对于后台OS而言不可访问、在后台OS变得活动之前对由前台OS使用的存储器进行加密等。加密可以涉及将密钥存储在安全存储器中以便保护密钥不被OS中活动的有害程序(例如,恶意软件)访问。
在一个实施例中,多操作系统装置可以包括例如设备、至少两个操作系统以及固件。所述设备可以用于支持所述装置中的操作。所述至少两个操作系统可以用于与所述设备的至少一部分进行交互。所述固件可以至少包括AIM,所述AIM用于确定所述装置中所述设备的可由所述至少两个操作系统中的每一个操作系统访问的部分。
例如,所述AIM用于确定所述设备的部分可以包括:所述AIM用于在激活所述装置之后将所述设备分割成可由所述至少两个操作系统访问的多个部分。所述AIM用于确定所述设备的部分可以包括:所述AIM用于对所述固件中允许所述至少两个操作系统发现所述设备的功能进行解除激活。此外,所述AIM用于确定所述设备的所述部分可以包括:所述AIM用于生成对应于所述至少两个操作系统中的每一个操作系统的表格,所述表格至少包括在激活所述装置之后所述设备的可由所述至少两个操作系统中的每一个操作系统访问的一部分的标识。然后,所述至少两个操作系统可以用于加载至所述装置中并且利用所述设备的由所述表格标识的部分并发地进行操作。
在一个实施例中,所述设备可以至少包括存储器模块,所述存储器模块包括其中存储对应于所述至少两个操作系统的数据的存储器。所述至少两个操作系统可以包括前台操作系统和后台操作系统,所述访问隔离模块进一步用于检测用于从所述前台操作系统转换至所述后台操作系统的触发。所述AIM可以进一步用于在检测到所述触发时确定由所述前台操作系统利用的存储器部分,并且用于使得所确定的由所述前台操作系统利用的所述存储器部分对于所述后台操作系统而言不可访问。所述AIM用于使得所确定的由所述前台操作系统利用的所述存储器部分对于所述后台操作系统而言不可访问可以包括:所述AIM用于对存储器控制器寄存器设置进行调节或锁定中的至少一项以便防止对所述存储器部分的任何访问。所述AIM用于使得所确定的由所述前台操作系统利用的所述存储器部分对于所述后台操作系统而言不可访问可以包括:所述AIM用于生成加密密钥、使用所述密钥对由所述前台操作系统利用的所述存储器部分进行加密并且将所述密钥存储在所述设备中的安全存储器中。而且,所述AIM可以进一步用于从所述安全存储器中获得第二加密密钥、使用所述第二密钥对由所述后台操作系统利用的存储器部分进行解密并且使所述前台操作系统由所述后台操作系统替代。
与本公开一致的一种用于在装置上容纳多个操作系统的方法可以包括例如:检测在装置中需要固件干预的事件;确定存在于所述装置中的设备;确定存在于所述装置中的所述设备与至少两个操作系统之间的关系;以及至少隔离所述设备的一部分以供所述至少两个操作系统中的每一个操作系统使用。
检测所述事件可以包括例如以下各项中的至少一项:检测所述装置的激活或者用于从所述装置中的前台操作系统转换至后台操作系统的触发。确定所述装置中的所述设备可以包括将所述设备分割成可由所述至少两个操作系统访问的多个部分。在一个实施例中,确定所述设备与至少两个操作系统之间的关系可以包括:对所述固件中允许所述至少两个操作系统发现所述设备的功能进行解除激活;以及生成对应于所述至少两个操作系统中的每一个操作系统的表格,所述表格至少包括在激活所述装置之后所述设备的可由所述至少两个操作系统中的每一个操作系统访问的一部分的标识。至少隔离所述设备的一部分以供所述至少两个操作系统中的每一个操作系统使用可以包括允许所述至少两个操作系统加载至所述装置中,并且利用所述设备的由所述表格标识的多个部分并发地进行操作。在另一个实施例中,确定所述设备与至少两个操作系统之间的关系可以包括确定由至少所述前台操作系统利用的所述存储器的一部分。至少隔离所述设备的一部分以供所述至少两个操作系统中的每一个操作系统使用可以包括:在所述转换之前,通过对存储器控制器寄存器设置进行调节或锁定中的至少一项、或者通过对由所述前台操作系统利用的所述存储器部分进行加密使得由至少所述前台操作系统利用的所述存储器部分对于所述后台操作系统而言不可访问。在相同或不同的实施例中,至少一种机器可读存储介质在其上单独地或组合地存储有多个指令,当这些指令由一个或多个处理器来执行时引起用于在装置上容纳多个操作系统的以下操作,这些操作可以包括:检测在装置中需要固件干预的事件;确定存在于所述装置中的设备;确定存在于所述装置中的所述设备与至少两个操作系统之间的关系;以及至少隔离所述设备的一部分以供所述至少两个操作系统中的每一个操作系统使用。介质实施例可以进一步包括类似于方法实施例的示例特征。
图1展示了根据本公开的至少一个实施例的被配置成用于多操作系统的访问隔离的示例装置。设备100的示例可以包括但不限于:移动通信装置(诸如蜂窝手机或基于安卓OS、OS、Mac OS、泰泽(Tizen)OS、火狐(Firefox)OS、黑莓OS、掌上OS、塞班OS等的智能电话)、移动计算装置(诸如像(奢飞思)银河平板(Galaxy)、金读之光(Kindle)等的平板计算机)、超极本(包括由英特尔公司制造的低功率芯片组、上网本、笔记本计算机、膝上计算机、掌上计算机等)、典型的静止计算装置(诸如台式计算机、服务器、智能电视、像来自英特尔公司的超小型新一代电脑主机(NUC)平台的小形状因数计算解决方案(例如,针对空间有限的应用、TV机顶盒等)。装置100可以包括例如至少固件102、设备104以及多个操作系统(诸如OS 106A、OS 106B……OS 106n(统称“OS 106A……n”))。虽然在装置100中仅对三个(3)OS 106A……n进行了展示,但是与本公开一致的实施例并不仅限于三个操作系统,并且可以取决于例如装置100的能力包括更少或更多操作系统。
固件102可以包括例如存储在装置100中的非易失性(NV)存储器中的软件代码、程序、数据等。例如,当装置100被激活(例如,从未加电状态进行上电、从加电状态进行重启等)时,可以用加载至存储器中的信息对只读存储器(ROM)进行编码。加载至装置100的存储器中的信息可以包括例如:用于提供OS 106A……n与设备104之间的接口的至少一个内核、用于管理装置100内的至少一个虚拟机(VM)操作的管理程序(诸如虚拟机管理器(VMM)或“管理程序”)、驱动程序、工具、安全程序等。由固件102加载的程序可以经受安全验证,并且因此可以高于装置100(例如,OS 106A……n)中其他软件的特权级别进行操作。由固件102加载的至少一个程序可以是AIM 108。通常,AIM 108可以促进OS 106A……n的操作与交互。AIM 108可以例如控制设备104的部分可以如何由每一个OS 106A……n访问。关于图3至图9,将对可以由AIM 108执行的示例活动进行讨论。
设备104可以包括装置100内、或至少耦合至装置100的硬件,所述设备可以支持和/或促进各种操作。设备104可以包括更接近装置100(例如,处理器、存储器、总线接口、输入/输出(I/O)等)的操作的系统以及外围系统(诸如用户接口硬件、用于外部通信的有线和/或无线硬件等)。在一个实施例中,AIM 108可以隔离设备104的至少一部分,诸如例如,OS 106A可访问的设备104A、OS 106B可访问的设备104B……OS 106n可访问的设备104n(统称“设备104A……n”)。如在此所参考的,隔离表明可以建立允许仅由相应OS106A……n成功访问设备104A……n(例如,读取和/或写入数据、执行命令等)的可编程控制。由另一OS106A……n进行的接入尝试可能引起尝试中的至少一个尝试被阻止、错误产生或不兼容数据的回传(例如,由于数据加密)。
OS 106A……n可以包括可以被配置成用于对装置100中的设备104的操作进行管理的软件集合。OS 106A……n可以由公司制造以用于出售、可以由用户社区(例如,“开源”)编写的以供自由使用、或者可以是专用/公用模型的混合。OS 106A……n的示例可以包括但不限于:磁盘操作系统(DOS)、Windows、IOs、安卓(Android)、Unix、Linux(例如,包括各种各样公共和盈利两种分布)、Jolicloud等。OS 106A……n可以与至少一个内核相关联。内核可以包括可以充当OS 106A……n与设备104之间的接口的软件资源。例如,内核可以包括至少一个驱动程序,所述驱动程序可以被采用以便操作设备104。在操作过程中,OS 106A……n可以使系统调用访问设备104中的各种硬件资源。内核可以管理这些调用,并且将这些调用分配给设备104内的适当硬件。OS 106A……n可以在装置100中单独地(例如,一次一个)或并发地进行操作。关于图3至图9,将对两个操作场景的示例进行讨论。
图2展示了根据本公开的至少一个实施例的可用装置100’的示例配置。具体地,装置100’可以能够执行诸如在图1中所公开的示例功能。然而,装置100’仅意指作为在与本公开一致的实施例中可用的设备的示例,并且并不意在将这些各个实施例限制在任何特定方式的实现方式。
装置100’可以包括例如被配置成用于管理装置操作的系统模块200。系统模块200可以包括例如处理模块202、存储器模块204、电源模块206、用户接口模块208以及通信接口模块210。装置100’还可以包括通信模块212。虽然通信模块212已经被展示为与系统模块200分离,但是为了解释的目的,仅仅提供了图2中所示的示例实施方式。将与通信模块212相关联的功能的部分或全部并入系统模块200也是可能的。
在装置100’中,处理模块202可以包括位于分离部件中的一个或多个处理器、或者可替代地,在单个部件中(例如,在片上系统(SoC)配置中)具体化的一个或多个处理核以及任何与处理器相关的支持电路(例如,桥接接口等)。示例处理器可以包括但不限于:可从英特尔公司获得的各种基于x86的微处理器,包括在奔腾(Pentium)、至强(Xeon)、安腾(Itanium)、赛扬(Celeron)、阿童木(Atom)、核i系列产品家族、高级RISC(例如,精简指令集计算)机器或“ARM”处理器等中的那些。支持电路的示例可以包括被配置成用于提供接口的芯片组(例如,可从英特尔公司获得的北桥、南桥等),通过所述接口,处理模块202可以与装置100’中可以不同速度、不同总线等正在进行操作的其他系统部件进行交互。通常与支持电路相关联的功能的部分或全部还可以包括在与处理器一样的物理封装体中(例如,诸如在可从英特尔公司获得的处理器的沙桥(Sandy Bridge)族中)。
处理模块202可以被配置成用于执行装置100’中的各个指令。指令可以包括程序代码,所述程序代码被配置成用于使处理模块202执行与读数据、写数据、处理数据、制定数据、转换数据、变换数据等相关的活动。信息(例如,指令、数据等)可以存储在存储器模块204中。存储器模块204可以包括固定或可移除格式的随机存取存储器(RAM)或ROM。RAM可以包括被配置成用于在装置100’的操作过程中保持信息的易失性存储器,诸如例如静态RAM(SRAM)或动态RAM(DRAM)。ROM可以包括使用基本输入/输出系统(BIOS)、统一可扩展固件接口(UEFI)等来配置的NV存储器模块,以便在装置100’被激活时提供指令、可编程存储器(诸如,电子可编程ROM(EPROMS))、闪存等。其他固定/可移除存储器可以包括但不限于:磁存储器(诸如例如,软盘、硬盘驱动器等)、电子存储器(诸如固态闪存(例如,嵌入式多媒体卡(eMMC))等)、可移除存储卡或可移除存储棒(例如,微型存储卡(uSD)、USB等)、光存储器(诸如基于致密盘的ROM(CD-ROM))、数字视频盘(DVD)、蓝光碟等。
电源模块206可以包括内部电源(例如,电池、燃料电池等)和/或外部电源(例如,机电或太阳能发电机、电网、燃料电池等)、以及相关电路(被配置成用于为装置100’供应操作所需的电源)。用户接口模块208可以包括硬件和/或软件以便允许用户与装置100’(诸如例如,各种输入机构(例如,麦克风,开关,按钮,旋钮,键盘,扬声器,触敏表面,被配置成用于捕获图像和/或感测接近度、距离、运动、姿势的一个或多个传感器等)以及各种输出机构(例如,扬声器,显示器,发光/闪烁指示器,针对震动、运动的机电部件等)进行交互。用户接口模块208中的硬件可以并入装置100’内和/或可以经由有线或无线通信介质耦合至装置100’。
通信接口模块210可以被配置成用于对分组路由以及通信模块212的其他控制功能进行管理,所述通信模块可以包括被配置成用于支持有线和/或无线通信的资源。在某些实例中,装置100’可以包括全部由集中通信接口模块210管理的多于一个的通信模块212(例如,包括针对有线协议和/或无线电台的分离物理接口模块)。有线通信可以包括串联和并联的有线介质,诸如例如:以太网、通用串行总线(USB)、火线、数字视频接口(DVI)、高清多媒体接口(HDMI)等。无线通信可以包括例如:极近无线介质(例如,诸如基于近场通信(NFC)标准的射频(RF)、红外(IR)等)、短距无线介质(例如,蓝牙、WLAN、Wi-Fi等)、长距无线介质(例如,蜂窝广域无线电通信技术、基于卫星的通信等)或经由声波的电子通信。在一个实施例中,通信接口模块210可以被配置成用于防止在通信模块212中活动的无线通信互相干扰。在执行此功能时,通信接口模块210可以基于例如消息等待传输的相对优先级为通信模块212安排活动。虽然图2中所公开的实施例展示了通信接口模块210与通信模块212分离,但是将通信接口模块210和通信模块212的功能并入同一模块内还可以是可能的。
在图2中所公开的示例中,存储器模块204可以包括固件102’(例如,存储在存储器模块204内的NV存储器中),所述固件可以包括AIM 108’。在操作的示例中,固件102’可以包括在激活装置100’时可以加载至RAM存储器中的信息。此信息的加载可以包括验证(例如,测量)以确保未正在加载恶意软件。AIM 108’可以是被加载至RAM的信息的一部分,并且可以监测装置100’中针对与OS106A……n相关的事件的操作。示例事件可以包括装置100’的激活、OS 106A……n至装置100中的加载、从前台OS 106A……n转换至后台OS 106A……n的触发等。在感测到事件时,AIM 108’可以执行与设备104的至少一部分(包括例如:与如图2中公开的模块200至212相关联的设备)的隔离相关的操作。
图3展示了根据本公开的至少一个实施例的用于多操作系统的访问隔离的示例操作。在图3中公开的示例操作可以用作与本公开一致的各个实施例可基于的基本框架。在操作300中,可以检测装置100中需要由固件102(例如,由AIM 108)干预的事件。事件的示例可以包括装置100的激活、从前台OS 106A……n转换至后台OS 106A……n的触发等。然后可以在操作302中确定装置100中的设备104。确定设备104可以包括例如:发现结合在装置100内和/或耦合至该装置的硬件。在操作302中已经对设备104进行确定之后,然后可以在操作304中确定设备104与OS 106A……n的关系。例如,在操作304中,设备104的至少一部分可以与每一个OS 106A……n相关联。可以在预期基础上(例如,在装置100的初始化过程中,但在加载OS 106A……n之前)或反思基础上(例如,基于装置100中由OS 106A……n实际所使用的资源)做出此关联。在操作306中,所述关联允许设备104的至少一部分被隔离。例如,可以隔离设备104的部分,从而使得每一个操作系统可以访问一组设备104,而无需担心来自另一OS 106A……n的干扰。
图4展示了根据本公开的至少一个实施例经由选择性设备上报进行设备隔离的示例。在像云计算这样的操作场景下,装置100可以是静止计算装置,诸如包括大量资源的服务器。例如,单个装置100可以包括多个处理器(每一个处理器包括多个核、多个大容量数据存储部件、多个大容量RAM存储器等),导致比可以由单个OS 106A…n高效利用的更高的计算能力。结果,期望能够灵活地将装置100分区为更小的计算单元。给定云计算场景,可以在装置100上并发地进行操作的、灵活地将装置104分摊至不同的OS 106A……n的能力将允许资源提供者开辟云用户所需的处理、存储等资源,而没有基于软件的OS中OS(OS-in-OS)或虚拟化解决方案的附加开销。此类型的灵活性可以提供所需的模块性以便实现整机柜架构(RSA)计算,其中个体服务器的全部支架可以共享资源(诸如电源、冷却、处理、存储器等)以便增加效率、减少发热等。
在一个示例实现方式中,可以采用在基于UEFI的固件102中可用的高级配置和电源接口(ACPI)硬件枚举以便实现硬件隔离,其中,可以对将设备104A……n分配给OS106A……n的方式进行控制。这是因为ACPI声明了软件不可发现的系统拓扑的元件。此功能性与UEFI GetMemoryMap操作一起可以允许将装置选择性地指派并传送给每一个OS106A……n。在一个实施例中,允许OS 106A……n执行插入PCI槽的设备自动配置的外设组件互连(PCI)配置空间必须被禁用,从而使得不能超驰设备104向设备104A……n的部分分离。
在图4中的400处公开了经由选择性设备上报的设备隔离的示例。设备104’公开了装置100的示例硬件配置。例如,处理模块202’可以包括多个处理器CPU 1、CPU 2、CPU 3、CPU 4和CPU 5(统称“CPU 1……5”)。存储器模块204’可以包括可以被分割成10GB区段的30GB物理RAM存储器。通信模块212’可以包括多个有线或无线接口,包括接口1、接口2和接口3(统称“接口1……5”)。重要的是要注意,设备104’可以包括其他可分硬件,诸如每一个CPU 1……5包括多个可分处理核。仅为了在此解释,已经呈现了设备104’的配置。
设备104A’和104B’表示设备104’可以如何被分区以便形成单个物理装置100内的多个逻辑器件。例如,设备104A’可以被上报给OS 106A,并且可以仅包括CPU 1和CPU 4、10GB RAM存储器以及通信接口1。因而,OS 106A可以在逻辑器件界限内的装置100上进行操作,该逻辑器件由在设备104A’中所标识的资源限定。类似地,设备104B’可以上报给OS106B。结果,OS 106B可以在逻辑器件界限内进行操作,包括CPU 3和CPU 5、第二10GB RAM存储器以及通信接口3。设备104A……n的一部分可以同样针对每一个后续OS 106A……n来限定。以此方式,多于一个OS 106A……n可以在装置100上并发地进行操作而无干扰,因为没有OS 106A……n正在利用设备104内的同一硬件(例如,每一个OS 106A……n利用不同的设备104A……n)。以此方式进行操作允许访问所有设备104,尤其是在单个OS 106A……n不具有访问大装置100(例如,云服务器)中的所有设备104的能力的情况下。
图5展示了根据本公开的至少一个实施例经由选择性设备上报进行设备隔离的示例操作。在图5中公开的示例进一步根据在图4中所展现的示例通过展现操作的更具体示例对在图3中所展现的操作进行修改。在操作300’中,可以被检测到的事件是装置100(操作500)的初始化(或重新初始化)。在操作302’中确定设备103可以包括例如:读取装置100中的资源分区上的设置选项(操作502)。设置选项可以指定装置100的通用设备配置标准,该标准可以在操作504中采用以便在固定ACPI描述表(FADT)中对CPU资源(例如,处理器和/或核)进行分区。例如,FADT中的每一个条目可以用唯一高级可编程中断控制器标识(APICID)来限定逻辑CPU资源。在操作506中,可以在存储器映射中对设备104中的存储器资源进行分区。使用UEFI作为示例,可以采用EFI_MEMORY_MAP以便将存储器配置信息传递给OS106A……n。在操作508中,可以在EFI装置枚举以及将I/O和存储器-映射I/O(MMIO)指派给至少一个PCI基地址寄存器(BAR)之后进行存储器分区。
在操作302’中对设备104的确定之后,可以在操作304’中确定设备104与OS106A……n的关系。例如,在操作510中,可以在差异化系统描述表(DSDT)中将PCI装置作为ACPI装置进行指派。例如,除上报处理和存储器资源之外,还可以使用DSDT名称空间(例如,ACPI定时器、ACPI电源按钮等)将设备104作为ACPI装置上报给OS 106A……n。与本公开已一致,也可以采用DSDT资源上报机制将PCI装置作为ACPI装置进行上报(例如,以便防止PCI装置由OS 106A……n自动配置),并且可以使用_CRS方法(例如,ACPI宏将连接资源添加至其资源的方法)对IO/MMIO BAR资源进行上报。ACPI表中用于枚举PCI装置的示例代码可以包括:
OperationRegion(BAR0,SystemMemory,0xC8000000,0x20000)
OperationRegion(BAR1,SystemIo,0x8000,0x20)
Device(B1D2)
{
Name(_HID,"80860003")//PCI-assigned device identifier
Method(_CRS,0x0,NotSerialized)
{
…………………
Return BAR0;
……………………
Return BAR1;
…………………………
}
在操作510中将PCI装置作为ACPI装置进行上报之后,可以在操作512中禁用PCI配置空间以防止OS 106A……n能够自动发现设备104中的PCI装置。然后在操作306’中可以将设备104隔离至设备104A……n的部分,其中,例如,可以在操作514中为每一个OS 106A生成自定义ACPI表。可以下列各种各样的方式确定在每一个ACPI表中所标识的资源,包括例如:由系统操作员进行的手动配置(例如,经由固件102中或OS 106A……n中的用户接口)、由装置100中的AIM 108或另一系统自动确定、由存在于装置100之外的控制系统在固件102中自动确定等。然后可以在操作516中允许OS 106A……n进行引导。每一个OS 106A……n可以使用在操作514中生成的相应自定义ACPI表,该自定义ACPI表描述了在操作过程中允许每一个OS 106A……n进行访问的设备104A……n的一部分。以此方式,多于一个OS 106A……n可以在装置100中并发地进行操作而不会彼此干扰,因为可由每一个OS 106A……n进行访问的设备104A……n的部分可以被隔离(例如,可以不重叠)。
在其他实施例中,可以修改中断传递以便将多个OS 106A……n的并发操作容置在由ACPI表限定的多个逻辑器件中。针对现有系统中的中断传递,可以具有多个中断源和中断控制器。与本公开一致,中断控制器可以被指派给设备104A……n的不同部分以确保每一个逻辑器件正确使用中断机制。由于每一个CPU可以包括本地ACPI定时器,因此确保每一个逻辑器件具有用于OS任务安排的定时器中断可以是可能的。在一个示例实现方式中,一个逻辑器件可以访问用户接口模块208(例如,显示器、用户输入等),同时其他逻辑器件可以是无外设(例如,在装置100上不具有用户接口能力)。然而,如果设备104包括两个图形控制器,则给予多于一个逻辑器件用户接口能力可以是可能的,这应该提高用户体验。
图6展示了根据本公开的至少一个实施例经由存储器锁定进行设备隔离的示例。虽然图5的示例公开了装置100上OS 106A……n的并发操作,但是在图6和图8中公开的实施例解决了装置100中不同OS 106A……n之间的转换。例如,装置100可以至少包括前台OS(例如,OS 106A)和后台OS(例如,OS 106B)。现有的多OS解决方案采用配置固件102以用于双引导或执行在彼此中的OS 106A……n的实例。这两种选项均是有问题的。双引导需要重启装置100以便进行OS 106A和106B之间的转换。重引导的需要是费时的并且负面地影响用户体验。在彼此中的OS 106A……n的运行实例是更响应的解决方案,但产生了大量可降低总体系统性能的存储器和处理开销。与本公开一致,在图6至图8中展现了可以促进OS 106A……n之间的快速切换而不会对装置100的资源施加大量负担的实施例。
ACPI标准限定了四个总体(Gx)状态和六个睡眠(Sx)状态。睡眠状态S0至S5限定了装置100中不同水平的活动。例如,S0状态可以在装置100完全活动时进行描述,同时S5状态是当装置100处于“软关闭”状态时进行描述,其中,装置100除仍在被供电之外完全是不活动的。在所有这些各个睡眠状态中,S3或“待机”状态感兴趣之处在于可以暂停装置100中的活动,同时保留RAM存储器。在条目进入S4或“休眠”状态时,RAM的当前状态被保存至盘。可能有利的是,当从一个OS切换至另一OS时将装置100设置成S3状态,在其中,RAM状态是为前台OS 106A和后台OS 106B两者保留的,从而允许从一个到另一个的快速转换,而不必从盘中加载RAM状态(例如,当在S4休眠状态中发生时)。这种功能性可以添加至基于UEFI的固件102以便允许装置100在触发事件发生时使装置进入S3睡眠状态、并且使装置在从S3睡眠状态恢复时从前台OS 106A转换至后台OS 106B。对于用户而言,该转换可能看起来几乎是立即发生的,极大地提升了用户满意度。
然而,以此方式在OS 106A……n之间进行转换的益处也可能是不利因素。S3睡眠状态中的转换可以快速发生,因为前台OS 106A和后台OS 106B两者均可以维持在RAM在存储器中。然而,这也意味着存储在存储器中来自前台OS 106A的信息很容易被后台OS 106B访问,并且反之亦然。例如,在前台OS 106A中的恶意软件可以能够访问对后台OS 106B的操作至关重要的数据、关于装置100、关于装置100用户等的机密信息。为了解决其弱点,利用存储器配置(例如,地址映射)机制(诸如,例如,在一些微处理器构架(例如,英特尔至强微处理器)中可用的源地址解码器(SAD)和目标地址解码(TAD)机制)作为OS交换机存储器映射寄存器。例如,SAD和TAD寄存器可以控制存储器中地址范围内的开始和结束。其中例如结束地址小于开始地址的情况可以指示无效条目。创建自定义寄存器(例如,自定义OS交换机存储器映射寄存器)以具体用于在OS切换过程中对存储器可访问性进行控制也可以是可能的。这些存储器配置特征可以用于修改系统存储器可寻址空间以便基于前台OS 106A或后台OS 106B是否活动对存储器访问进行自定义。结果,前台OS106A对应于后台OS 106B将不能访问包含信息的存储器区域,并且反之亦然。
在图6中的600处展示了经由存储器锁定进行设备隔离的示例。示例总体系统地址映射602公开了装置100包括5GB可用存储器,一个0至3GB是低系统存储器、3至4GB是低MIMO存储器以及4至5GB是高系统存储器。示例602A演示了可用存储器可以如何出现在前台OS106A,而示例602B演示了当活动时后台OS 106B可以访问的存储器。在示例602A中,在示出了存储器高达1GB并且在2GB可访问之后,可以修改系统可寻址存储器空间。1GB和2GB之间的存储器空间可以为例如后台OS 106B预留。另一方面,示例602公开了后台OS 106B仅可以访问1GB和2GB之间的存储器以及3GB和4GB之间的存储器。在一个实施例中,在3GB至4GB地址范围内的存储器可以映射至装置100中的设备102(例如,硬件装置)。因而,在3GB至4GB地址范围内的存储器可以由前台OS 106A和后台OS 106B两者使用以便控制设备102。
如在示例602A中所示,1GB和2GB之间的存储器范围将对前台OS 106A不可见,并且因而,将没有理由因为在前台OS 106A中运行的程序而尝试访问存储器中的这个区。然而,基于假定依据保护方案存储器仍可以存在于装置100中,使得在前台OS 106A中进行操作的恶意软件仍然尝试访问存储器的封闭区域(Blocked Out Area)是有可能的。在一个实施例中,任何访问封闭存储器区域的尝试可以通过至少停止该访问来捕获坏恶意行动者。而且,可以生成错误以向系统通知所尝试的访问和/或可以停止OS 106A中的部分或全部活动以便防止进一步的访问尝试。
图7展示了根据本公开的至少一个实施例经由存储器锁定进行设备隔离的示例操作。在操作300”中检测需要固件干预的事件可以包括检测OS交换机触发(操作700)。示例OS交换机触发可以包括手动发起的事件(例如,用户接口交互)或自动事件(例如,来自在当前活动的OS 106A……n中执行的应用,装置100进入S3睡眠状态等)。用户接口交互可以包括例如:基于硬件的控制(例如,硬件按钮)或基于软件的控制(例如,在图形接口显示的按钮)启动。不考虑OS交换机触发,装置100可以进入S3睡眠状态,并且在恢复时可以参与确定设备302”。例如,在操作702中,可以初始化硬件(例如,设备104)。硬件初始化可以在操作704中的存储器训练之后。存储器训练可以包括例如:固件102(例如,AIM 108)在装置初始化过程中为装置100确定整个存储器地址映射(例如,包括SAD/TAD寄存器设置和其他有关寄存器)。AIM 108则可以使存储器映射存储在NV存储器(例如,作为UEFI变量)中,并且还可以记录存储器分区配置(诸如,前台OS 106A使用0GB-1GB、2GB-3GB和4GB-5GB,而后台OS 106B仅使用1GB-2GB存储器)。保存在NV存储器中的存储器映射信息则可以被用于当例如从前台OS106A转换至后台OS 106B时的参考。
在操作304”中确定设备与OS的关系可以包括例如:在操作706中确定移至前台(例如,后台OS 106B)的OS 106A……n,并且然后在操作708中计算存储器映射。在操作706中确定移至前台的OS 106A……n在例如装置100可以包括多于两个操作系统的场景中可能是重要的。计算存储器映射可以包括例如:至少基于转换至后台的前台OS 106A和转换至前台的后台OS 106B确定寄存器设置。因而,新的存储器映射可以使得对应于OS 106B的存储器中的区域可访问,同时使得对应于OS 106A的存储器中的区域不可访问。在操作306”中基于OS转换对设备进行隔离则可以包括基于在操作708中所计算的存储器映射更改存储器配置。例如,在操作710中,访问可以向与新的前台OS(例如,OS 106B)相对应的存储器区域开放,而可以阻止向与将在操作712中转换至后台的OS 106A相对应的存储器区域的访问。在装置100中操作从S3睡眠状态的恢复则可以在操作714中完成,其中,OS 106B变成新的前台OS。
图8展示了根据本公开的至少一个实施例经由存储器加密进行设备隔离的示例。类似于在图6和图7中公开的实施例,图8和图9也涉及保护存储器的与OS 106A……n相关联的多个区不被另一OS 106A……n访问。然而,此实施例展现了与对例如硬件存储器解码机制进行控制的基于硬件的锁定解决方案相反的基于软件的加密解决方案。虽然两种解决方案均提供了相同类型的功能性,但是基于硬件的锁定解决方案可以采用目前仅在服务器类微处理器中可用的某些硬件配置特征。例如,在个人计算机(PC)、平板计算机、移动通信装置等中使用的微处理器可能尚未包括这些配置特征,并且因而,图8和图9展现了可以应用于更多种类的装置100的加密解决方案。
在800处展现了经由存储器加密进行设备隔离的示例。基本存储器配置被示出在802处,并且可以包括例如:由OS 106A使用的存储器区域、由OS 106B采用的存储器区域以及系统管理RAM(SMRAM)804。SMRAM 804可以包括例如:仅固件102(例如,AIM 108)可访问的安全存储器。在804处示出了从前台OS 106A至后台OS 106B的转换的示例。由前台OS 106A使用的存储器区域的初始状态可以是可读的(例如,在明文中),而由后台OS 106B使用的存储器区域的初始状态可以被加密。SMRAM 804可以被隐藏(例如,因为其可以仅由AIM 108访问)。在806处示出了转换中的初始操作,其中,AIM 108可以在装置从S3睡眠状态恢复后使由前台OS 106A使用的存储器区域变为加密。例如,可以将高级加密标准(AES)加密算法与伽罗瓦计数器模式(GCM)密文一起用于对由OS 106A和OS 106B使用的存储器区域进行加密和认证。AES-CGM的性能可以由某些包括AES新指令集(AES-NI)的微处理器(例如,由英特尔公司提供的至少一些微处理器)以及无进位乘法指令(PCLMULQDQ)(该无进位乘法指令可以引导AES-GCM算法的整体性能)来引导。
在对由前台OS 106A使用的存储器区域进行加密之后,用于执行加密的密钥处于安全保护可以存储在SMRAM 804中(例如,因为仅AIM 108可访问SMRAM 804)。在图8中的808处示出的操作可以跟随在806处发生的那些操作之后以便对由移至前台(例如,OS 106B)的OS使用存储器区域进行解密。例如,AIM 108可以检索之前被用于对由后台OS 106B使用的存储器区域进行加密的密钥,并且可以然后在OS 106B转换至前台时对此存储器区域进行解密。解密可以包括认证操作以便确保由OS 106B使用的存储器区域尚未被破坏。例如,在前台OS 106A中的程序(例如,恶意软件)仍可以写入由后台OS 106B使用的存储器区域中,并且此写入活动可以将数据插入已加密的能够破坏操作的存储器区域。认证有助于确保已解密的存储器区域与最初被加密的那个区域相匹配。如果认证失败,则可以停止转换并且可以在前台中恢复后台OS 106B。假如认证成功,则存储器现在可以处于OS 106B、新的前台OS可以自由访问包括其文件的区域的状态,而包括针对OS 106A的数据的区域现在在后台中被加密。虽然加密无法防止与OS 106A相对应的存储器区域被访问,但是从读访问尝试返回的任何数据将是不可理解的。
图9展示了根据本公开的至少一个实施例经由存储器加密进行备隔离的示例操作。在操作300”’中检测需要固件干预的事件可以包括例如:在操作900中检测OS交换机触发。在图7中关于操作700所讨论的开关触发的示例在此也是可应用的。在操作302”’中确定设备可以包括例如:在存储器训练之后,在操作902中对从S3睡眠状态中恢复之后的硬件(例如,设备104)进行初始化以便在操作904中确定当前存储器映射。分别关于操作702和704,之前已经在图7中讨论过操作903和904的示例。类似地,在操作304”’中确定设备与OS的关系可以包括例如:在操作906中至少确定移至前台的OS,并且在操作908中计算存储器映射,分别相对于操作706和708,之前在图7中讨论了其中的示例。
操作304”’可以进一步包括操作910,其中,固件102(例如,AIM 108)可以生成新的密钥以用于对由前台OS 106A使用的存储器区域进行加密。在操作306”’中基于转换至前台的OS对设备进行隔离则可以包括例如:在操作912中使用在操作910中生成的密钥对由前台OS 106A使用的存储器区域进行加密,并且然后将密钥存储在安全存储装置中(例如,在SMRAM 804)。在操作914中,之前用于对由后台OS 106B使用的存储器区域进行加密的密钥可以从安全存储装置中检索,并且可以用于在操作916中对由后台OS 106B使用的存储器区域进行解密。在一个实施例中,操作916可以包括对由后台OS 106B使用的存储器区域进行认证以确保其尚未被破坏。如果在操作916中,由后台OS 106B使用的存储器区域的内容不能通过验证,则转换可能失败并且OS 106A可能仍处于前台中。如果认证成功,则在操作918中,后台OS 106B可以转换至前台并且前台OS 106A可以移至后台。
虽然图3、图5、图7和图9展示了根据不同实施例的操作,但是将理解的是,对于其他实施例来说,并非图3、图5、图7和图9中所描绘的所有操作都是必需的。确实,在此完全可以设想,在本公开的其他实施例中,可以采用任何附图中未具体地示出、但仍然完全符合本公开的方式将图3、图5、图7和图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。
如本文中任何实施例所使用的,术语“模块”可以指被配置成用于执行前述操作中任一操作的软件、固件和/或电路。软件可以具体化为非瞬态计算机可读存储介质上所记录的软件包、代码、指令、指令集和/或数据。固件可以具体化为存储器装置中硬编码(例如,非易失性的)的代码、指令或指令集和/或数据。如本文中任何实施例所使用的,“电路”可以例如单一地或以任何组合形式包括硬接线电路、可编程电路(诸如包括一个或多个个体指令处理核的计算机处理器)、状态机电路、和/或存储有可由可编程电路执行的指令的固件。这些模块可以统一地或单独地具体化为形成例如,集成电路(IC)、片上系统(SoC)、台式计算机、膝上计算机、平板计算机、服务器、智能电话等的较大系统的一部分的电路。
在此描述的任何操作可以在系统中实现,所述系统包括具有单独地或组合地存储在其上的多条指令的一个或多个存储介质(诸如,非瞬态存储介质),当这些指令由一个或多个处理器执行时执行这些方法。此处,处理器可以包括例如:服务器CPU、移动装置CPU、和/或其他可编程电路。而且,旨在使得在此描述的操作可以跨多个物理装置(诸如在多于一个的不同物理位置处的处理结构)分布。存储介质可以包括任何类型的有形介质,例如包括以下各项的任何类型的磁盘:硬盘、软盘、光盘、压缩盘-只读存储器(CD-ROM)、可复写致密盘(CD-RW)、和磁光盘、如只读存储器(ROM)的半导体器件、如动态和静态RAM的随机存取存储器(RAM)、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、闪存、固态盘(SSD)、嵌入式多媒体卡(eMMC)、安全数字输入/输出(SDIO)卡、磁卡或光卡、或者适合于存储电子指令的任何类型的介质。其他实施例可以实现为由可编程控制装置执行的软件模块。
因而,本申请涉及多操作系统装置的访问隔离。通常,可以使用固件将装置配置成用于对在所述装置上并发地进行操作的多于一个操作系统(OS)进行容置或者用于从一个OS转换至另一个。所述固件中的访问隔离模块(AIM)可以确定装置设备配置,并且可以对所述设备进行分割以供多个操作系统使用。所述AIM可以禁用基于OS的设备感测,并且可以使用自定义表格为每一个OS分配所述设备的一至少部分。当在操作系统之间转换时,所述AIM可以有助于确保来自一个OS的信息不可由其他操作系统访问。例如,所述AIM可以检测前台OS何时由后台OS替代,并且可以在所述后台OS变得活动之前保护(例如,锁定或加密)所述前台OS的文件。
下面的示例涉及进一步的实施例。如以下所提供的,本公开的以下示例可以包括主题,诸如装置、方法、用于存储指令(当被执行时使机器基于所述方法执行动作)的至少一个机器可读介质、用于基于所述方法执行动作的装置和/或用于多操作系统装置的访问隔离的系统。
根据示例1,提供了一种多操作系统装置。所述装置可以包括:用于支持所述装置中的操作的设备;至少两个操作系统,所述至少两个操作系统用于与所述设备的至少一部分进行交互;以及固件,所述固件至少包括访问隔离模块以用于确定所述装置中所述设备的可由所述至少两个操作系统中的每一个操作系统访问的部分。
示例2可以包括示例1的元素,其中,所述访问隔离模块用于确定所述设备的所述部分包括:所述访问隔离模块用于在激活所述装置之后将所述设备分割成可由所述至少两个操作系统访问的多个部分。
示例3可以包括示例2的元素,其中,所述访问隔离模块用于确定所述设备的所述部分包括:所述访问隔离模块用于对所述固件中允许所述至少两个操作系统发现所述设备的功能进行解除激活。
示例4可以包括示例3的元素,其中,所述访问隔离模块用于确定所述设备的所述部分包括:所述访问隔离模块用于生成对应于所述至少两个操作系统中的每一个操作系统的表格,所述表格至少包括在激活所述装置之后所述设备的可由所述至少两个操作系统中的每一个操作系统访问的一部分的标识。
示例5可以包括示例3的元素,其中,所述至少两个操作系统用于加载至所述装置中并且利用由所述表格标识的所述设备的部分并发地进行操作。
示例6可以包括示例1至示例5中任一示例的元素,其中,所述设备至少包括存储器模块,所述存储器模块包括在其中存储对应于所述至少两个操作系统的数据的存储器。
示例7可以包括示例6的元素,其中,所述至少两个操作系统包括前台操作系统和后台操作系统,所述访问隔离模块进一步用于检测用于从所述前台操作系统转换至所述后台操作系统的触发。
示例8可以包括示例7的元素,其中,所述访问隔离模块进一步用于在检测到所述触发时确定所述存储器的由所述前台操作系统利用的一部分,并且用于使得所确定的由所述前台操作系统利用的所述存储器部分对于所述后台操作系统而言不可访问。
示例9可以包括示例8的元素,其中,所述访问隔离模块用于使得所确定的由所述前台操作系统利用的所述存储器部分对于所述后台操作系统而言不可访问包括:所述访问隔离模块用于对存储器控制器寄存器设置进行调节或锁定中的至少一项以便防止对所述存储器部分的访问。
示例10可以包括示例8的元素,其中,所述访问隔离模块用于使得所确定的由所述前台操作系统利用的所述存储器部分对于所述后台操作系统而言不可访问包括:所述访问隔离模块用于生成加密密钥、使用所述密钥对由所述前台操作系统利用的所述存储器部分进行加密并且将所述密钥存储在所述设备中的安全存储器中。
示例11可以包括示例10的元素,其中,所述访问隔离模块进一步用于从所述安全存储器中获得第二加密密钥、使用所述第二密钥对由所述后台操作系统利用的存储器部分进行解密并且使所述前台操作系统由所述后台操作系统替代。
示例12可以包括示例1至示例5中任一示例的元素,其中,所述访问隔离模块用于确定所述装置的所述部分包括:所述访问隔离模块用于在激活所述装置之后将所述装置分割成可由所述至少两个操作系统访问的多个部分;对所述固件中允许所述至少两个操作系统发现所述装置的功能进行解除激活;以及生成对应于所述至少两个操作系统中的每一个操作系统的表格,所述表格至少包括在激活所述装置之后所述设备的可由所述至少两个操作系统中的每一个操作系统访问的一部分的标识。
示例13可以包括示例12的元素,其中,所述至少两个操作系统用于加载至所述装置中并且利用由所述表格标识的所述设备的部分并发地进行操作。
示例14可以包括示例1的元素,其中,所述设备至少包括存储器模块,所述存储器模块包括其中存储对应于所述至少两个操作系统的数据的存储器。
示例15可以包括示例14的元素,其中,所述至少两个操作系统包括前台操作系统和后台操作系统,所述访问隔离模块进一步用于检测用于从所述前台操作系统转换至所述后台操作系统的触发。
示例16可以包括示例15的元素,其中,所述访问隔离模块进一步用于在检测到所述触发时确定所述存储器的由所述前台操作系统利用的一部分,并且用于通过以下各项中的至少一项来使得所确定的由所述前台操作系统利用的所述存储器部分对于所述后台操作系统而言不可访问:对存储器控制器寄存器设置进行调节或锁定中的至少一项以便防止对所述存储器部分的访问;或者生成加密密钥、使用所述密钥对由所述前台操作系统利用的所述存储器部分进行加密并且将所述密钥存储在所述设备中的安全存储器中。
根据示例17,提供了一种用于在装置上容纳多个操作系统的方法。所述方法可以包括:检测在装置中需要固件干预的事件;确定存在于所述装置中的设备;确定存在于所述装置中的所述设备与至少两个操作系统之间的关系;以及至少隔离所述设备的一部分以供所述至少两个操作系统中的每一个操作系统使用。
示例18可以包括示例17的元素,其中,检测所述事件包括以下各项中的至少一项:检测所述装置的激活或用于从所述装置中的前台操作系统转换至后台操作系统的触发。
示例19可以包括示例18的元素,其中,确定所述装置中的所述设备包括:将所述设备分割成可由所述至少两个操作系统访问的多个部分。
示例20可以包括示例19的元素,其中,确定所述设备与至少两个操作系统之间的关系包括:对所述固件中允许所述至少两个操作系统发现所述设备的功能进行解除激活;以及生成对应于所述至少两个操作系统中的每一个操作系统的表格,所述表格至少包括在激活所述装置之后所述设备的可由所述至少两个操作系统中的每一个操作系统访问的一部分的标识。
示例21可以包括示例20的元素,其中,至少隔离所述设备的一部分以供所述至少两个操作系统中的每一个操作系统使用包括:允许所述至少两个操作系统加载至所述装置中并且利用所述设备的由所述表格标识的多个部分并发地进行操作。
示例22可以包括示例18至示例21中任一示例的元素,其中,确定所述设备与至少两个操作系统之间的关系包括:确定所述存储器的由至少所述前台操作系统利用的一部分。
示例23可以包括示例22的元素,其中,至少隔离所述设备的一部分以供所述至少两个操作系统中的每一个操作系统使用包括:在所述转换之前,通过对存储器控制器寄存器设置进行调节或锁定中的至少一项、或者通过对由所述前台操作系统利用的所述存储器部分进行加密使得所述存储器的由至少所述前台操作系统利用的所述部分对于所述后台操作系统而言不可访问。
根据示例24,提供了一种被安排成用于执行以上示例17至示例23中任一示例的方法的芯片组。
根据示例25,提供了一种至少包括装置的系统,所述系统被安排成用于执行以上示例17至示例23中任一示例的方法。
根据示例26,提供了一种被配置成用于多操作系统装置的访问隔离的装置,所述装置被安排成用于执行以上示例17至示例23中任一示例的方法。
根据示例27,提供了至少一种机器可读存储介质,在其上单独地或组合地存储有多个指令,当这些指令由一个或多个处理器来执行时引起在装置上容纳多个操作系统的以下操作,这些操作包括:检测在装置中需要固件干预的事件;确定存在于所述装置中的设备;确定存在于所述装置中的所述设备与至少两个操作系统之间的关系;以及至少隔离所述设备的一部分以供所述至少两个操作系统中的每一个操作系统使用。
示例28可以包括示例27的元素,其中,检测所述事件包括以下各项中的至少一项:检测所述装置的激活或用于从所述装置中的前台操作系统转换至后台操作系统的触发。
示例29可以包括示例28的元素,其中,确定所述装置中的所述设备包括:将所述设备分割成可由所述至少两个操作系统访问的多个部分。
示例30可以包括示例29的元素,其中,确定所述设备与至少两个操作系统之间的关系包括:对所述固件中允许所述至少两个操作系统发现所述设备的功能进行解除激活;以及生成对应于所述至少两个操作系统中的每一个操作系统的表格,所述表格至少包括在激活所述装置之后所述设备的可由所述至少两个操作系统中的每一个操作系统访问的一部分的标识。
示例31可以包括示例30的元素,其中,至少隔离所述设备的一部分以供所述至少两个操作系统中的每一个操作系统使用包括:允许所述至少两个操作系统加载至所述装置中并且利用所述设备的由所述表格标识的多个部分并发地进行操作。
示例32可以包括示例28至示例31中任一示例的元素,其中,确定所述设备与至少两个操作系统之间的关系包括:确定所述存储器的由至少所述前台操作系统利用的一部分。
示例33可以包括示例32的元素,其中,至少隔离所述设备的一部分以供所述至少两个操作系统中的每一个操作系统使用包括:在所述转换之前,通过对存储器控制器寄存器设置进行调节或锁定中的至少一项、或者通过对由所述前台操作系统利用的所述存储器部分进行加密使得所述存储器的由至少所述前台操作系统利用的所述部分对于所述后台操作系统而言不可访问。
根据示例34,提供了一种用于在装置上容纳多个操作系统的系统,所述系统包括:用于检测在装置中需要固件干预的事件的装置;用于确定存在于所述装置中的设备的装置;用于确定存在于所述装置中的所述设备与至少两个操作系统之间的关系的装置;以及用于至少隔离所述设备的一部分以供所述至少两个操作系统中的每一个操作系统使用的装置。
示例35可以包括示例34的元素,其中,用于检测所述事件的所述装置包括:用于检测所述装置的激活或用于从所述装置中的前台操作系统转换至后台操作系统的触发中至少一种的装置。
示例36可以包括示例35的元素,其中,用于确定所述装置中的所述设备的所述装置包括:用于将所述设备分割成可由所述至少两个操作系统访问的多个部分的装置。
示例37可以包括示例36的元素,其中,用于确定所述设备与至少两个操作系统之间的关系的所述装置包括:用于对所述固件中允许所述至少两个操作系统发现所述装置的功能进行解除激活的装置;以及用于生成对应于所述至少两个操作系统中的每一个操作系统的表格的装置,所述表格至少包括在激活所述装置之后所述设备的可由所述至少两个操作系统中的每一个操作系统访问的一部分的标识。
示例38可以包括示例37的元素,其中,用于至少隔离所述设备的一部分以供所述至少两个操作系统中的每一个操作系统使用的装置包括:用于允许所述至少两个操作系统加载至所述装置中、并且利用由所述表格标识的所述设备的多个部分并发地进行操作的装置。
示例39可以包括示例35至示例38中任一示例的元素,其中,用于确定所述设备与至少两个操作系统之间的关系的装置包括:用于确定所述存储器的由至少所述前台操作系统利用的一部分的装置。
示例40可以包括示例39的元素,其中,用于至少隔离所述设备的一部分以供所述至少两个操作系统中的每一个操作系统使用的装置包括:用于在所述转换之前通过对存储器控制器寄存器设置进行调节或锁定中的至少一项、或者通过对由所述前台操作系统利用的所述存储器部分进行加密使得所述存储器的由至少所述前台操作系统利用的所述部分对于所述后台操作系统而言不可访问的装置。
本文已采用的术语和表达用作对术语进行描述而非进行限制,并且在使用这种术语和表达时不旨在排除所示且所描述的特征(或其部分)的任何等效物,并且认识到在权利要求书范围内的各种修改是有可能的。从而,权利要求书意在涵盖所有这类等效方案。

Claims (23)

1.一种多操作系统装置,包括:
设备,用于支持所述装置中的操作;
至少两个操作系统,所述至少两个操作系统用于与所述设备的至少一部分进行交互;以及
固件,至少包括访问隔离模块,所述访问隔离模块用于确定所述装置中的所述设备的可由所述至少两个操作系统中的每一个操作系统访问的部分。
2.如权利要求1所述的装置,其中,所述访问隔离模块用于确定所述设备的所述部分包括:所述访问隔离模块用于在激活所述装置之后将所述设备分割成可由所述至少两个操作系统访问的多个部分。
3.如权利要求2所述的装置,其中,所述访问隔离模块用于确定所述设备的所述部分包括:所述访问隔离模块用于对所述固件中的允许所述至少两个操作系统发现所述设备的功能进行解除激活。
4.如权利要求3所述的装置,其中,所述访问隔离模块用于确定所述设备的所述部分包括:所述访问隔离模块用于生成对应于所述至少两个操作系统中的每一个操作系统的表格,所述表格至少包括在激活所述装置之后所述设备的可由所述至少两个操作系统中的每一个操作系统访问的一部分的标识。
5.如权利要求3所述的装置,其中,所述至少两个操作系统用于加载至所述装置中并且利用所述设备的由所述表格标识的所述部分来并发地进行操作。
6.如权利要求1所述的装置,其中,设备至少包括存储器模块,所述存储器模块包括其中存储对应于所述至少两个操作系统的数据的存储器。
7.如权利要求6所述的装置,其中,所述至少两个操作系统包括前台操作系统和后台操作系统,所述访问隔离模块进一步用于检测用于从所述前台操作系统转换至所述后台操作系统的触发。
8.如权利要求7所述的装置,其中,所述访问隔离模块进一步用于在检测到所述触发时确定由所述前台操作系统利用的存储器部分,并且用于使得所确定的由所述前台操作系统利用的所述存储器部分对于所述后台操作系统而言不可访问。
9.如权利要求8所述的装置,其中,所述访问隔离模块用于使得所确定的由所述前台操作系统利用的所述存储器部分对于所述后台操作系统而言不可访问包括:所述访问隔离模块用于对存储器控制器寄存器设置进行调节或锁定中的至少一项以便防止对所述存储器部分的访问。
10.如权利要求8所述的装置,其中,所述访问隔离模块用于使得所确定的由所述前台操作系统利用的所述存储器部分对于所述后台操作系统而言不可访问包括:所述访问隔离模块用于生成加密密钥、使用所述密钥对由所述前台操作系统利用的所述存储器部分进行加密并且将所述密钥存储在所述设备中的安全存储器中。
11.如权利要求10所述的装置,其中,所述访问隔离模块进一步用于从所述安全存储器中获得第二加密密钥、使用所述第二密钥对由所述后台操作系统利用的存储器部分进行解密并且使所述前台操作系统由所述后台操作系统替代。
12.一种用于在装置上容纳多个操作系统的方法,所述方法包括:
检测在装置中需要固件干预的事件;
确定存在于所述装置中的设备;
确定在存在于所述装置中的所述设备与至少两个操作系统之间的关系;以及
隔离所述设备的至少一部分以供所述至少两个操作系统中的每一个操作系统使用。
13.如权利要求12所述的方法,其中,检测所述事件包括以下各项中的至少一项:检测所述装置的激活或者用于从所述装置中的前台操作系统转换至后台操作系统的触发。
14.如权利要求13所述的方法,其中,确定所述装置中的所述设备包括:将所述设备分割成可由所述至少两个操作系统访问的多个部分。
15.如权利要求14所述的方法,其中,确定所述设备与至少两个操作系统之间的关系包括:
对所述固件中允许所述至少两个操作系统发现所述设备的功能进行解除激活;以及
生成对应于所述至少两个操作系统中的每一个操作系统的表格,所述表格至少包括在激活所述装置之后所述设备的可由所述至少两个操作系统中的每一个操作系统访问的一部分的标识。
16.如权利要求15所述的方法,其中,隔离所述设备的至少一部分以供所述至少两个操作系统中的每一个操作系统使用包括:允许所述至少两个操作系统加载至所述装置中,并且利用由所述表格标识的所述设备的多个部分并发地进行操作。
17.如权利要求13所述的方法,其中,确定所述设备与至少两个操作系统之间的关系包括:确定至少由所述前台操作系统利用的存储器部分。
18.如权利要求17所述的方法,其中,隔离所述设备的至少一部分以供所述至少两个操作系统中的每一个操作系统使用包括:在所述转换之前,通过对存储器控制器寄存器设置进行调节或锁定中的至少一项、或者通过对由所述前台操作系统利用的所述存储器部分进行加密使得至少由所述前台操作系统利用的所述存储器部分对于所述后台操作系统而言不可访问。
19.一种至少包括装置的系统,所述系统被安排成用于执行如权利要求12至18中任一项所述的方法。
20.一种芯片组,所述芯片组被安排成用于执行如权利要求12至18中任一项所述的方法。
21.至少一种机器可读介质,包括多条指令,所述多条指令响应于正在计算装置上被执行而使所述计算装置实施根据权利要求12至18中任一项所述的方法。
22.一种被配置成用于多操作系统装置的访问隔离的装置,所述装置被安排成用于执行如权利要求12至18中任一项所述的方法。
23.一种装置,所述装置具有用于执行如权利要求12至18中任一项所述的方法的装置。
CN201480076013.5A 2014-03-19 2014-03-19 多操作系统装置的访问隔离 Active CN106255955B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/073691 WO2015139228A1 (en) 2014-03-19 2014-03-19 Access isolation for multi-operating system devices

Publications (2)

Publication Number Publication Date
CN106255955A true CN106255955A (zh) 2016-12-21
CN106255955B CN106255955B (zh) 2021-07-27

Family

ID=54143655

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480076013.5A Active CN106255955B (zh) 2014-03-19 2014-03-19 多操作系统装置的访问隔离

Country Status (6)

Country Link
US (2) US10289425B2 (zh)
EP (1) EP3120238B1 (zh)
JP (1) JP6466476B2 (zh)
KR (1) KR101920980B1 (zh)
CN (1) CN106255955B (zh)
WO (1) WO2015139228A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019100704A1 (zh) * 2017-11-27 2019-05-31 泰凌微电子(上海)有限公司 用于多模IoT设备的启动方法、多模IoT设备及存储介质

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2517493A (en) * 2013-08-23 2015-02-25 Advanced Risc Mach Ltd Handling access attributes for data accesses
US10289425B2 (en) * 2014-03-19 2019-05-14 Intel Corporation Access isolation for multi-operating system devices
EP3062225B1 (en) * 2015-02-24 2019-07-03 Huawei Technologies Co., Ltd. Multi-operating system device, notification device and methods thereof
CN105721942A (zh) * 2016-01-26 2016-06-29 青岛海信移动通信技术股份有限公司 一种智能电视的启动方法和智能电视
WO2017201692A1 (zh) * 2016-05-25 2017-11-30 北京小米移动软件有限公司 应用加密方法及装置
KR102494241B1 (ko) * 2016-08-18 2023-02-03 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법
US11194588B2 (en) * 2018-07-09 2021-12-07 Dell Products L.P. Information handling systems and method to provide secure shared memory access at OS runtime
US11068295B2 (en) * 2019-04-12 2021-07-20 Ghost Locomotion Inc. Device operation across multiple operating system modalities
EP3835951A1 (en) * 2019-12-13 2021-06-16 Virtual Open Systems System platform initializer for mixed-critical systems
US11640312B2 (en) * 2020-02-27 2023-05-02 Hewlett Packard Enterprise Development Lp System reset using a controller
CN113127120B (zh) * 2021-04-08 2023-01-06 广东便捷神科技股份有限公司 一种基于移动app的界面动态化方法
US20230052789A1 (en) * 2021-08-12 2023-02-16 Microsoft Technology Licensing, Llc Isolating operating system environments in embedded devices
US11983541B1 (en) * 2023-05-19 2024-05-14 Lowe's Companies, Inc. Operation-specific device configuration

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030115443A1 (en) * 2001-12-18 2003-06-19 Cepulis Darren J. Multi-O/S system and pre-O/S boot technique for partitioning resources and loading multiple operating systems thereon
US20040205203A1 (en) * 2003-03-24 2004-10-14 Marcus Peinado Enforcing isolation among plural operating systems
CN1674515A (zh) * 2004-03-26 2005-09-28 联想(北京)有限公司 网络隔离装置及方法
US20060075381A1 (en) * 2004-09-30 2006-04-06 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
US20070156940A1 (en) * 2005-12-29 2007-07-05 Zmudzinski Krystof C Method and system to partition hardware resources between operating systems
EP1843556A1 (en) * 2005-01-28 2007-10-10 Beijing Watch Data System Co. Ltd. A mobile terminal and boot method thereof
CN101241445A (zh) * 2007-02-08 2008-08-13 联想(北京)有限公司 虚拟机系统及其访问显卡的方法
US20090064178A1 (en) * 2005-08-03 2009-03-05 Doron Shamia Multiple, cooperating operating systems (os) platform system and method
US20120297177A1 (en) * 2010-11-15 2012-11-22 Ghosh Anup K Hardware Assisted Operating System Switch
WO2013026662A1 (en) * 2011-08-19 2013-02-28 Gemalto Sa Method for hard partitioning the resources of a secure computer system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7017034B2 (en) * 2002-08-07 2006-03-21 Hewlett-Packard Development Company, L.P. System and method for using a firmware interface table to dynamically load multiple ACPI SSDT tables
US20070239965A1 (en) * 2006-03-31 2007-10-11 Saul Lewites Inter-partition communication
JP4767129B2 (ja) * 2006-08-17 2011-09-07 株式会社エヌ・ティ・ティ・ドコモ Os切替装置及びos切替方法
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
US7962665B2 (en) 2008-09-26 2011-06-14 International Business Machines Corporation Managing condition indicators that use the same physical indicator device in a logically partitioned computer system
US8239667B2 (en) * 2008-11-13 2012-08-07 Intel Corporation Switching between multiple operating systems (OSes) using sleep state management and sequestered re-baseable memory
US9069591B1 (en) * 2009-09-10 2015-06-30 Parallels IP Holding GmbH Patching host OS structures for hardware isolation of virtual machines
US8959253B2 (en) * 2009-12-23 2015-02-17 Intel Corporation Virtualizing a powered down input/output device
US8719561B2 (en) * 2010-11-29 2014-05-06 International Business Machines Corporation Automatic configuration sampling for managing configuration parameters of a computer system
US10289425B2 (en) * 2014-03-19 2019-05-14 Intel Corporation Access isolation for multi-operating system devices

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030115443A1 (en) * 2001-12-18 2003-06-19 Cepulis Darren J. Multi-O/S system and pre-O/S boot technique for partitioning resources and loading multiple operating systems thereon
US20040205203A1 (en) * 2003-03-24 2004-10-14 Marcus Peinado Enforcing isolation among plural operating systems
CN1674515A (zh) * 2004-03-26 2005-09-28 联想(北京)有限公司 网络隔离装置及方法
US20060075381A1 (en) * 2004-09-30 2006-04-06 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
EP1843556A1 (en) * 2005-01-28 2007-10-10 Beijing Watch Data System Co. Ltd. A mobile terminal and boot method thereof
US20090064178A1 (en) * 2005-08-03 2009-03-05 Doron Shamia Multiple, cooperating operating systems (os) platform system and method
US20070156940A1 (en) * 2005-12-29 2007-07-05 Zmudzinski Krystof C Method and system to partition hardware resources between operating systems
CN101241445A (zh) * 2007-02-08 2008-08-13 联想(北京)有限公司 虚拟机系统及其访问显卡的方法
US20120297177A1 (en) * 2010-11-15 2012-11-22 Ghosh Anup K Hardware Assisted Operating System Switch
WO2013026662A1 (en) * 2011-08-19 2013-02-28 Gemalto Sa Method for hard partitioning the resources of a secure computer system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IEEE: "《14515-1:2000 /Amd.1-2003 - ISO/IEC Standard for Information Technology---Portable Operating System Interface (POSIX®)---Test Methods for Measuring Conformance to POSIX---Part 1: System Interfaces---Amendment 1: Realtime Extension (C Language)》", 《HTTPS://IEEEXPLORE.IEEE.ORG/SERVLET/OPAC?PUNUMBER=4140778》 *
王晶: "《强隔离操作系统的设备虚拟化》", 《中国博士学位论文全文数据库(电子期刊)信息科技辑》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019100704A1 (zh) * 2017-11-27 2019-05-31 泰凌微电子(上海)有限公司 用于多模IoT设备的启动方法、多模IoT设备及存储介质
US11422823B2 (en) 2017-11-27 2022-08-23 Telink Semiconductor (Shanghai) Co., Ltd. Starting method for multi-mode IoT device, multi-mode IoT device, and storage medium

Also Published As

Publication number Publication date
KR20160108517A (ko) 2016-09-19
US10684865B2 (en) 2020-06-16
EP3120238A4 (en) 2017-11-15
CN106255955B (zh) 2021-07-27
WO2015139228A1 (en) 2015-09-24
US20160124751A1 (en) 2016-05-05
KR101920980B1 (ko) 2018-11-21
US20190278611A1 (en) 2019-09-12
JP2017511554A (ja) 2017-04-20
EP3120238A1 (en) 2017-01-25
JP6466476B2 (ja) 2019-02-06
US10289425B2 (en) 2019-05-14
EP3120238B1 (en) 2020-10-28

Similar Documents

Publication Publication Date Title
CN106255955A (zh) 多操作系统装置的访问隔离
EP3317999B1 (en) Loading and virtualizing cryptographic keys
US11809544B2 (en) Remote attestation for multi-core processor
CN105493097B (zh) 用于远程存储的数据的保护方案
US10372628B2 (en) Cross-domain security in cryptographically partitioned cloud
US20170288874A1 (en) Cryptographic protection for trusted operating systems
EP3646224B1 (en) Secure key storage for multi-core processor
US10353815B2 (en) Data security for multiple banks of memory
CN112149144A (zh) 聚合密码引擎
EP3066604B1 (en) Data accessibility control
CN104102524A (zh) 一种实现虚拟安全载体vse的方法

Legal Events

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