CN107924441A - 具有虚拟机管理器的系统 - Google Patents
具有虚拟机管理器的系统 Download PDFInfo
- Publication number
- CN107924441A CN107924441A CN201680049057.8A CN201680049057A CN107924441A CN 107924441 A CN107924441 A CN 107924441A CN 201680049057 A CN201680049057 A CN 201680049057A CN 107924441 A CN107924441 A CN 107924441A
- Authority
- CN
- China
- Prior art keywords
- operating system
- protection zone
- virtual machine
- machine manager
- access
- 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.)
- Withdrawn
Links
- 230000015654 memory Effects 0.000 claims abstract description 101
- 238000012545 processing Methods 0.000 claims abstract description 71
- 230000006870 function Effects 0.000 claims abstract description 57
- 238000000034 method Methods 0.000 claims description 35
- 238000003860 storage Methods 0.000 claims description 14
- 238000004088 simulation Methods 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 5
- 230000006837 decompression Effects 0.000 claims description 4
- 238000002360 preparation method Methods 0.000 claims description 4
- 230000006854 communication Effects 0.000 description 44
- 238000004891 communication Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 20
- 230000009471 action Effects 0.000 description 7
- 230000009466 transformation Effects 0.000 description 7
- 238000009826 distribution Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000007423 decrease Effects 0.000 description 4
- 238000004321 preservation Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 235000013399 edible fruits Nutrition 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 208000037309 Hypomyelination of early myelinating structures Diseases 0.000 description 1
- 241000406668 Loxodonta cyclotis Species 0.000 description 1
- MHABMANUFPZXEB-UHFFFAOYSA-N O-demethyl-aloesaponarin I Natural products O=C1C2=CC=CC(O)=C2C(=O)C2=C1C=C(O)C(C(O)=O)=C2C MHABMANUFPZXEB-UHFFFAOYSA-N 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000003100 immobilizing effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000000518 rheometry Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/53—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
- G06F12/1441—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
- G06F9/441—Multiboot arrangements, i.e. selecting an operating system to be loaded
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
提供一种系统(1),具有:处理单元(11),其具备执行模式,该执行模式包含通过辅助功能(12)而被禁止对存储器的保护区域进行访问的非安全模式(3)以及被允许对保护区域进行访问的安全模式(2);以及虚拟机管理器(20),其在安全模式下运行。虚拟机管理器包括:第一设定单元(23),其针对在安全模式下运行的第一OS(30)设定第一动作条件(21),该第一动作条件(21)包括设为能够对存储器的保护区域和非保护区域进行访问;以及第二设定单元(24),其针对在非安全模式下运行的第二OS(41)设定第二动作条件(22a),该第二动作条件(22a)包括设为能够对非保护区域进行访问、利用辅助功能设为不能对保护区域进行访问以及通过对与第一OS共用的第一设备的访问而转变为安全模式。
Description
技术领域
本发明涉及一种具有虚拟机管理器(hypervisor)的系统。
背景技术
在日本专利公开公报2013-161479号中公开了提供一种使用安全域和低安全域的数据处理装置及方法的技术。专利文献1所公开的数据处理装置具有处理电路,该处理电路具有操作的安全域和低安全域。在安全域中进行动作时,处理电路能够访问在低安全域中进行动作时不能访问的数据。响应于控制流变更命令的执行,处理切换到目标地址的程序命令。域选择是为了决定处理电路针对目标地址的命令进行动作的选择域而实施的。能够实施域检查以检查哪个域被允许作为通过域选择来决定的选择域。在域选择中的选择域不是允许选择域的情况下,发生域检查错误。
发明内容
期望的是,在具备以硬件级支持安全域(安全模式、安全世界(secure world))和低安全域(低安全模式、低安全世界、普通世界(normal world)、典型的是非安全模式(不安全模式))的功能(辅助功能)的数据处理装置中提供更安全的虚拟化环境。
本发明的一个方式是一种系统,具有处理单元和虚拟机管理器,该处理单元包含辅助功能并具备执行模式(执行环境),该辅助功能禁止对包括保护区域和非保护区域的存储器的保护区域进行访问,该执行模式(执行环境)包括通过辅助功能而被禁止对保护区域进行访问的低安全模式(低安全环境)、典型的是非安全模式(不安全模式、non-securemode)以及被允许对保护区域进行访问的安全模式(secure mode、安全环境),该虚拟机管理器在处理单元的安全模式下运行。虚拟机管理器包括:第一设定单元,其针对在安全模式下运行的第一OS(操作系统)设定第一动作条件,该第一动作条件包括设为能够对保护区域和非保护区域进行访问;第二设定单元,其针对在低安全模式下运行的第二OS设定第二动作条件,该第二动作条件包括设为能够对非保护区域进行访问、利用辅助功能设为不能对保护区域进行访问以及通过对与第一OS共用的第一设备的访问而转变为安全模式;以及仿真单元,其将第一设备虚拟化来提供给第二OS。
在该系统中,虚拟机管理器在安全模式下运行,该安全模式提供基本上防止了来自外界的攻击的安全的执行环境(安全世界)。因而,曝露在来自在低安全模式下运行的富OS(rich OS)等第二OS的干扰、攻击下的可能性小,能够通过在安全模式下运行的虚拟机管理器提供更安全的虚拟化环境(虚拟环境)。
另一方面,当在低安全模式下运行的第二OS的动作中需要进行虚拟化时,处理单元从低安全模式切换为安全模式,这成为处理速度下降的主要原因。因此,虚拟机管理器包括对在安全模式下进行动作的第一OS的第一动作条件(第一配置)进行设定的第一设定单元以及对在低安全模式下进行动作的第二OS的第二动作条件(第二配置)进行设定的第二设定单元,虚拟机管理器在安全模式(安全环境)下进行动作,并设定低安全模式的第二OS的动作条件。
第二动作条件包括设为能够对非保护区域进行访问、利用辅助功能设为不能对保护区域进行访问以及通过对与第一OS共用的第一设备的访问而转变为安全模式,虚拟机管理器在安全模式下通过仿真单元将第一设备虚拟化来提供给第二OS。根据该第二动作条件,在低安全模式下运行的第二OS不用转变为安全模式就能够访问存储器的非保护区域,而且对于不与在安全模式下运行的OS共用的设备,也不用转变为安全模式就能够进行访问。因而,在低安全模式下运行的第二OS中能够削减在运行过程中向安全模式转变的时机,从而能够抑制虚拟化所引起的处理速度的下降。另一方面,在安全模式下运行的第一OS中,对于与第二OS共用的第一设备的访问在安全模式下被虚拟化,能够抑制伴随模式的转变而引起的处理速度的下降。因此,能够使实时OS(RTOS)等响应速度的下降会成为问题的OS在安全模式下以可靠性高的状态运行。
也可以是,第一动作条件包括设为不能对包括低安全的计算机网络在内的非保护设备进行访问,第二动作条件包括设为能够对非保护设备进行访问。虚拟机管理器根据第一动作条件来设为在安全模式下进行动作的第一OS不能对在安全性方面重要的非保护设备等资源进行访问,由此能够进一步确保第一OS的安全性。另外,根据第一动作条件和第二动作条件,能够将对计算机网络的访问例如固定(限制)在第二OS。
根据由虚拟机管理器设定的各OS的动作条件,能够针对每个OS限定所能够访问的设备,从设备侧来看,虚拟机管理器能够以对进行动作的多个OS中的任一个OS分配设备并仅由被分配的OS来访问设备的方式设定虚拟环境(OS的动作环境)。因而,能够针对各OS将资源(设备)进行固定化,通过进行固定化来避免设备的共享,减少虚拟机管理器对共享的设备进行仿真的机会,由此减少虚拟机管理器进行动作的机会。因此,本系统通过使虚拟机管理器在安全模式下运行,能够确保虚拟化的安全性,并且能够抑制在低安全模式下运行的OS的处理速度的下降。
另外,虚拟机管理器在安全模式下运行。因此,虚拟机管理器能够包括OS切换单元,该OS切换单元对包括第一OS和第二OS的多个OS进行切换,OS切换单元能够包括将多个OS的动作条件以及多个OS的上下文(context)分别保存到保护区域的单元。能够使切换OS时的上下文(OS的状态)更安全地退避,从而能够可靠地对多个OS进行切换。
支持安全模式的辅助功能的一例是ARM公司提供的TrustZone架构(TZ架构)、MIPS技术公司提供的VZ架构、英特尔公司提供的虚拟化技术(Virtualization technology)(VT)架构。第二OS的一例是LINUX(注册商标)、安卓等高功能的丰富且通用性高的OS。安全的第一OS(安全OS)的一例是支持嵌入控制用软件的实时OS。
并且,该系统也可以是,虚拟机管理器具有OS启动准备单元。虚拟机管理器在安全模式下运行,因此OS启动准备单元能够包括:第一认证单元,其使用保护区域中保存的认证信息来对保护区域中保存的第二OS的固件进行认证;以及解压缩单元,其将保护区域中保存的已认证的第二OS的固件解压缩到非保护区域的引导区域中来作为执行用的实例。虚拟机管理器能够使用已经根据从在低安全模式下运行的第二OS不能访问(看不到)的保护区域中保存的认证信息完成认证的第二OS的固件来启动第二OS。因此,能够防止第二OS的固件被第二OS等在低安全模式下运行的OS和应用程序改变。
并且,该系统也可以是,具有在安全模式下运行的更新单元。在安全模式下运行的虚拟机管理器也可以包括更新单元。更新单元包括:第二认证单元,其使用保护区域中保存的认证信息来对被下载到非保护区域中的更新用固件进行认证;以及保存单元,其将下载到非保护区域中的已认证的更新用固件保存到保护区域。能够通过在第二OS上进行动作的应用程序来执行更新用固件的下载并将该更新用固件保存到存储器的非保护区域。更新单元在安全模式下运行,在通过第二认证单元对非保护区域中保存的更新用固件进行认证后,通过保存单元将更新用固件保存到保护区域。通过该处理,能够将已经根据保护区域中保存的认证信息完成认证的固件保存到保护区域,并在保存到保护区域中的状态下使用该固件。因此,能够防止更新用固件被第二OS等在低安全模式下运行的OS和应用程序改变。
也可以是,第一动作条件和第二动作条件包含在非保护区域中设定的共享的存储器区域的动作条件。通过在非保护区域设定共享的存储器区域,能够减少在第一OS和第二OS访问共享的存储器区域时虚拟机管理器介入的机会,从而能够缩短OS间通信所需要的时间。也可以是,共享的存储器区域的动作条件包括当第二OS对共享的存储器区域进行了写入时向安全模式转变,虚拟机管理器包括向第一OS通知对共享的存储器区域进行了写入的单元,第一OS包括当对共享的存储器区域进行了写入时通过中断来向第二OS进行通知的单元。第一OS能够不经由虚拟机管理器而向第二OS进行通知,因此能够不等待虚拟机管理器的响应而继续进行实时的处理。
该系统也可以具备片上系统,该片上系统搭载有存储器和处理单元。另外,该系统也可以具有在第二OS上运行的应用程序以及通过应用程序来控制的装置。能够通过虚拟机管理器进行对包括非保护的设备在内的多种多样的设备的访问,能够使对多种多样的装置进行控制的应用程序在第二OS上运行。装置既可以是打印机、印刷装置、装订装置、加工机械等产业用的装置,也可以是冰箱、洗衣机、微波炉等家庭用的装置,还可以是发动机、汽车用的控制装置。
本发明的其它方式之一是一种在具有处理单元的系统中对多个OS进行控制的方法,该处理单元包含辅助功能并具备执行模式,该辅助功能禁止对包括保护区域和非保护区域的存储器的保护区域进行访问,该执行模式包括通过辅助功能而被禁止对保护区域进行访问的低安全模式以及被允许对保护区域进行访问的安全模式。该系统包括在处理单元的安全模式下运行的虚拟机管理器,该方法包括以下步骤。
1.虚拟机管理器针对在安全模式下运行的第一OS设定第一动作条件,该第一动作条件包括设为能够对保护区域和非保护区域进行访问。
2.虚拟机管理器针对在低安全模式下运行的第二OS设定第二动作条件,该第二动作条件包括设为能够对非保护区域进行访问、利用辅助功能设为不能对保护区域进行访问以及通过对与第一OS共用的第一设备的访问而转变为安全模式。
3.虚拟机管理器将第一设备虚拟化来提供给第二OS。
也可以是,该方法还包括由虚拟机管理器来准备OS的启动的步骤,准备OS的启动的步骤包括以下步骤:使用保护区域中保存的认证信息来对保护区域中保存的第二OS的固件进行认证;以及将保护区域中保存的已认证的第二OS的固件解压缩到非保护区域的引导区域中来作为执行用的实例。
也可以是,该方法还包括以下步骤:在安全模式下运行的更新单元使用保护区域中保存的认证信息来对被下载到非保护区域中的更新用固件进行认证;以及将下载到非保护区域中的已认证的更新用固件保存到保护区域。
也可以是,该方法还包括以下步骤:当第二OS对在非保护区域中设定的共享的存储器区域进行了写入时,向安全模式转变,虚拟机管理器向第一OS通知对共享的存储器区域进行了写入;以及第一OS当对共享的存储器区域进行了写入时,通过中断来向第二OS进行通知。
本发明的另一不同的其它方式之一是一种能够在具有处理单元的系统中进行多个OS的控制的程序(程序产品),该处理单元包含辅助功能并具备执行模式,该辅助功能禁止对包括保护区域和非保护区域的存储器的保护区域进行访问,该执行模式包括通过辅助功能而被禁止对保护区域进行访问的低安全模式以及被允许对保护区域进行访问的安全模式。该程序(程序产品)能够以记录到计算机能够读取的记录介质中的方式提供。程序包含使虚拟机管理器在处理单元的安全模式下运行的命令,虚拟机管理器执行以下步骤:针对在安全模式下运行的第一OS设定第一动作条件,该第一动作条件包括设为能够对保护区域和非保护区域进行访问;针对在低安全模式下运行的第二OS设定第二动作条件,该第二动作条件包括设为能够对非保护区域进行访问、利用辅助功能设为不能对保护区域进行访问以及通过对与第一OS共用的第一设备的访问而转变为安全模式;以及将第一设备虚拟化来提供给第二OS。
附图说明
图1是表示包括虚拟机管理器的嵌入系统的一例的框图。
图2是包含TZ架构的平台(platform)的一例。
图3是表示通过虚拟机管理器对OS进行控制的过程的流程图。
图4是表示安全引导(secure boot)的处理概要的图。
图5是表示安全更新(secure update)的处理概要的图。
图6是表示用于进行OS间通信的设定流程的图。
图7是表示用于进行OS间通信的设定流程的不同例子的图。
具体实施方式
在图1中示出具备虚拟机管理器的系统的一例。该系统1是被嵌入于家电产品、产业机械、打印机、汽车等的计算机系统,典型的是SoC(片上系统)。系统1具备包括处理器单元11的硬件平台10、在该硬件平台10上运行的虚拟机管理器20以及在虚拟机管理器20所提供的虚拟化环境下运行的安全OS(第一OS)30和富OS(第二OS)41~43。
处理器单元11提供多个执行模式(执行环境),而在本实施方式中假定安全模式2和低安全模式3这两个执行模式,其中,该安全模式2是通过在存储器中设定保护区域并禁止对该保护区域进行访问的辅助功能(存储器保护功能)来实现的,该低安全模式(以后称为非安全模式、不安全模式或普通模式)3的保护级别低于安全模式2的保护级别。在非安全模式3中,通过处理器单元11的辅助功能来禁止对存储器的保护区域进行访问。
系统1具有:可信应用程序组35,其在安全模式2下运行的安全OS 30上(安全世界)进行动作;以及客户应用程序组45,其在非安全模式3下运行的富OS 41~43上(非安全世界、普通世界)进行动作。以下有时将在非安全模式3下运行的富OS 41~43等OS记载为非安全(不安全)的OS或不安全OS。
构成IoT(Internet of Things:物联网)的嵌入系统的功能是通过作为系统软件的OS(Operating System:操作系统)以及OS上的应用程序来规定的。虚拟机管理器20能够构建多个OS环境。本申请的申请人所提供的虚拟机管理器“FOXvisor”和“FEXEROX”是能够使用处理器(处理器单元)11以硬件形式具有的辅助架构12来分离多个OS的裸金属类型(类型I)的虚拟机管理器。
关于辅助功能,在嵌入有ARM系的IP的处理器中能够使用TrustZone(以下称为TZ架构),在嵌入有MIPS系的IP的处理器中能够使用VZ架构,在Intel系的处理器中能够使用VT架构。辅助功能也可以包含虚拟化扩展功能,在嵌入有ARM系的IP的处理器中,能够列举出虚拟化扩展(Virtualization Extension)和LPAE(Large Physical AddressExtension:大物理地址扩展)。
以后,参照包含TZ架构12作为辅助功能(安全辅助功能、安全辅助架构)的处理器单元11。在TZ架构12中,普通世界的存储器空间12a和安全世界的存储器空间12b能够分离,能够构建从普通世界看不到且无法访问(禁止访问)安全世界的存储器空间12b的环境。并且,在该处理器单元11中,对存储器空间映射包括周边设备(外围缓冲器)、寄存器在内的资源。因此,能够通过TZ架构12来捕捉对包括设备在内的资源的特定地址的访问而转变为安全模式2。
在图2中示出TrustZones认可的平台(SoC)10的结构。平台10包括具备安全辅助功能的处理器11、通用的快闪存储器13m以及作为通用RAM 18的DDR存储器。处理器单元11包括具备对TZ架构进行控制的功能的CPU 11a、DDR存储器的控制器11b、对TZ架构的地址空间进行控制的控制器11c、安全密钥EPROM 15、安全引导ROM 16、安全内核RAM 17以及静态存储器控制器13。在平台10中,通用RAM的DDR存储器18的地址空间中的保护区域(安全区域)18a是通过TZ架构12而在非安全模式(普通世界)3下无法访问的区域。另外,安全密钥EPROM15、安全引导ROM 16以及安全内核RAM 17也是保护区域,是通过TZ架构12而在非安全模式3下无法访问的区域。在该平台10中,在DDR存储器18的地址空间区域中的非保护区域(非安全区域)18b设定多个OS能够共同访问的共享区域18c。
返回到图1,虚拟机管理器20包括:OS启动准备单元25,其进行通过虚拟机管理器20的控制来运行的多个OS的启动准备;OS切换单元26,其在处理器单元11的资源不足的情况等下进行OS切换;仿真单元27,其提供作为虚拟设备的功能;以及OS间通信单元28,其对OS间通信进行支持。在系统1启动时,通过由处理器单元11的引导加载程序(boot loader)加载安全引导ROM 16中保存的固件(程序、程序产品)14h来启动虚拟机管理器20。
启动准备单元25包括第一设定单元23,在安全模式2下运行的第一OS(安全OS)30启动时,该第一设定单元23对安全OS 30设定第一动作条件(第一配置)21,该第一动作条件(第一配置)21包括设为能够对存储器的保护区域和非保护区域进行访问。启动准备单元25还包括第二设定单元24a~24c,在非安全模式3下运行的第二OS(富OS、不安全OS)41~43中的各个OS启动时,该第二设定单元24a~24c对各个不安全OS 41~43设定第二动作条件(第二配置)22a~22c,该第二动作条件(第二配置)22a~22c设为能够对非保护区域进行访问、且使用作为辅助功能的TZ架构12设为不能对保护区域进行访问。第二配置22a~22c还包括通过对与安全OS 30共用的设备(第一设备)的访问而转变为安全模式2。
具体地说,第一配置21与安全OS 30的设备驱动器36对应地分配硬件平台10的安全的资源(设备)并设为能够访问这些资源。第二配置22a~22c与不安全的富OS 41~43各自的设备驱动器46对应地分配硬件平台10的不安全的资源(设备)并设为能够访问这些资源。
因而,虚拟机管理器20通过在对安全OS 30应用了第一配置21之后启动安全OS30,能够对在安全OS 30上进行动作的应用程序35提供安全的动作环境。另外,虚拟机管理器20通过在对不安全的富OS 41~43应用了第二配置22a~22c之后启动不安全的富OS 41~43,能够对在富OS 41~43上进行动作的应用程序45提供虽然不安全但是通用性高的动作环境。安全OS 30和富OS41~43可以切换着运行,如果是多核的处理器单元11,则也可以使安全OS 30和不安全的富OS 41~43全部并行地运行、或者使这些OS的一部分并行地运行。作为不安全的OS的一例的富OS(第二OS)41~43例如是LINUX(注册商标)、安卓等应对多种多样的应用程序的通用OS。
第一配置21对安全OS 30分配作为存储器的安全的区域(保护区域)的安全密钥EPROM 15、安全引导ROM 16、安全内核RAM 17以及作为通用RAM的DDR存储器18的安全区域18a并设为能够访问。第一配置21还对第一OS 30分配DDR存储器18的非安全区域(非保护区域)18b并设为能够访问不安全区域18b。安全OS 30的设备驱动器36包括能够进行OS间通信的驱动器36x,第一配置21包含动作条件21x,该动作条件21x包含对驱动器36x分配的用于OS间通信的共享存储器18c的映射信息。
第一配置21不对安全OS 30分配非安全的网络设备19a、通用接口设备19b等非安全的资源,从安全OS 30和在安全OS 30上进行动作的可信应用程序35对这些非安全的资源的直接访问被禁止而不被允许。第一配置21也可以包含如下的动作条件:使用虚拟机管理器20所提供的虚拟设备,经由认证等保障规定的安全性的流程来间接地访问非安全的资源。
第二配置22a~22c中的例如第二配置22a对通用且不安全的富OS 41以固定的状态分配DDR存储器18的非安全区域18b的固定的地址区域、网络设备19a以及通用接口设备19b中包括的特定设备,并设为在不安全OS 41上进行动作的应用程序45在非安全模式3下、即不转变为安全模式2就能够访问这些设备。
第二配置22a通过对与安全OS 30共用的设备(第一设备)、例如DMAC11x和计时器部11t的访问而转变为安全模式2。作为在安全模式2下运行的虚拟机管理器20所提供的虚拟设备,富OS 41对这些设备进行访问。处理器单元11当捕捉到富OS 41对用于访问共用的设备的特定地址的访问时,转变为安全模式2,虚拟机管理器20的仿真单元27对成为访问对象的设备、正在访问的寄存器、作为客体OS(Guest OS)的富OS 41的状态进行分析来决定要仿真的内容。
富OS 41的设备驱动器46包括使得能够进行OS间通信的驱动器46x,第二配置22包含动作条件22x,该动作条件22x包含对驱动器46x分配的用于OS间通信的共享存储器18c的映射信息。
第二配置22a提供在普通世界(非安全模式)中进行动作的条件(环境)。通过设定第二配置22a,能够通过TZ架构12来利用普通世界的存储器空间12a访问DDR存储器18的不安全区域18b。然而,通过TZ架构12看不到安全世界的存储器空间12b的安全区域18a等的地址,且从富OS 41及在该OS 41上进行动作的客户应用程序45看不到安全密钥EPROM 15、安全引导ROM 16、安全内核RAM 17、通用RAM的安全区域18a,并且不允许对这些区域进行访问。
OS启动准备单元25还包括安全引导(secure boot)单元50和更新单元(安全更新单元)60。安全引导单元50包括:第一认证单元51,其使用作为保护区域的安全密钥EPROM15中保存的认证信息15a来对作为保护区域的安全引导ROM 16中保存的第二OS 41的固件14f进行认证;以及解压缩单元52,其将作为保护区域的安全引导ROM 16中保存的已认证的第二OS的固件14f解压缩到作为非保护区域的DDR存储器18的不安全区域18b的引导区域18s中来形成执行用的实例(instance)14i。
当准备了执行用的实例14i时,虚拟机管理器20设置用于启动第二OS 41的第二配置22a,并切换为非安全模式3。通过由处理器单元11的引导加载程序对在作为非保护区域的不安全区域18b中形成的执行用的实例14i进行加载,来启动第二OS 41。
如果处理器单元11为多核,则能够将特定的CPU核的执行模式切换为非安全模式3,并使用第二配置22a启动第二OS 41。因而,在处理器单元11中,能够使在安全模式2下运行的安全OS 30和在非安全模式3下运行的第二OS(富OS、不安全OS)41并行地运行。在处理器单元11为单核、或者资源不足以使多个OS并行地运行的情况下,也能够对模式进行切换来使安全OS 30和不安全OS 41依次启动和运行。在其它的OS 42和43中也是同样的。
在任一种情况下均是从在非安全模式3下运行的第二OS 41看不到保存有使自己启动的原始的固件14f的安全引导ROM 16,而且不能对安全引导ROM 16进行写入。因而,能够防止不安全OS 41因某些原因而被改变。
更新单元60包括:第二认证单元61,其使用作为保护区域的安全密钥EPROM 15中保存的认证信息15b来对被下载到作为非保护区域的不安全的存储器区域18b中的不安全的富OS 41的更新用固件14n进行认证;以及保存单元62,其将下载到非安全的存储器区域18b中的已认证的更新用固件14n保存到作为保护区域的安全引导ROM 16。在向安全引导ROM 16中保存时、或者保存到安全引导ROM 16中之后,将以前的固件14f替换为新下载的更新用固件14n,由此能够安全地更新不安全OS 41的引导用的固件14f。关于其它的OS的固件,也能够同样安全地进行更新。
更新单元60在虚拟机管理器20所运行的安全模式2中,在将利用第二OS41下载的更新用固件14n保存到安全引导用的存储器16之前,能够在安全的环境中在从第二OS 41看不到且不能写入的状态下使用安全的存储器15中保存的安全的认证信息15b对该更新用固件14n进行认证。因而,即使在下载了包含恶意代码的固件的情况下,也能够在保存到引导用的存储器16之前在安全的状态下进行确认,从而能够排除包含恶意代码的固件。
OS切换单元26包括单元26a,该单元26a将多个OS的动作条件(配置)和多个OS的上下文26x分别保存到存储器的保护区域、例如DDR存储器18的保护区域18a。上下文26x是表示对应的OS的运行状态的信息,具体地说,是包含各CPU核的寄存器的内容的信息。例如,在从安全OS 30向不安全OS 41切换的情况下,在虚拟机管理器20所运行的安全模式2中,OS切换单元26以核为单位来获取原来运行着安全OS 30的CPU核的寄存器的内容,生成上下文26x,并与安全OS 30的配置21一起保存到保护区域18a。
并且,OS切换单元26加载保护区域18a中保存的(暂时退避的)不安全OS41的上下文26x,基于所加载的上下文26x来设定每个CPU核的寄存器的内容。之后,设定配置22a,并对再启动不安全OS 41的程序计数器进行设定。处理器单元11转变为非安全模式3并从所设定的程序计数器开始进行处理,由此能够再启动不安全OS 41。对其它的OS进行切换时也同样。在该虚拟机管理器20中,即使是在非安全模式3下运行的OS之间的切换,也在安全模式2下进行OS切换,由此能够将上下文26x保存到保护区域18a。因而,即使在非安全模式3下运行OS的状态下,也能够防止暂时退避的其它的OS的状态被改变,从而能够提高处理器单元11和系统1中的处理的可靠性。
OS间通信单元28在安全模式2下对基于第一配置21和第二配置22a中各自包含的OS间通信用的动作条件21x和22x进行的OS间通信进行支持。根据动作条件21x和22x设定的共享存储器区域18c在非保护区域18b内,因此在安全模式2下运行的安全OS 30和在非安全模式3下运行的不安全OS 41都能够不转变模式而进行访问。第二配置22a中包含的动作条件22x包括当不安全OS41对共享的存储器区域18c进行了写入时向安全模式2转变。当转变为安全模式2时,虚拟机管理器20对捕捉到的条件进行分析,OS间通信单元28向安全OS 30通知对共享的存储器区域18c进行了写入。由此,安全OS 30对共享的存储器区域18c进行访问(读出),由此OS间通信成立。
安全OS 30的OS间通信用的设备驱动器36x当对共享的存储器区域18c进行了写入时,能够利用中断来通知从安全模式2向非安全模式3的切换,因此在不安全OS 41并行地运行着的情况下,通过中断36q来向不安全OS 41进行通知。不安全OS 41在非安全模式3下对共享存储器区域18c进行访问(读出),由此OS间通信成立。也能够将共享的存储器区域18c设置在保护区域并通过虚拟机管理器20进行完全虚拟化来实现OS间通信。然而,通过将共享的存储器区域18c设置在非保护区域18b,能够抑制虚拟机管理器20涉及到与OS间通信有关的处理,从而能够缩短OS间通信所需要的处理时间。并且,通过由安全OS 30使用中断进行通知,不再需要等待虚拟机管理器20的通知结束。因而,能够削减妨碍安全OS 30的实时应对的因素。
在虚拟机管理器20中提供作为虚拟设备的功能的仿真单元27准备了三个形态27a、27b以及27c来作为虚拟设备。第一形态27a是实际设备的共享(共用),是由虚拟机管理器20对多个OS各自对所准备的虚拟设备进行的控制进行仲裁,来对一个实际设备进行控制、共享的方式(形态)。
第二形态27b是功能追加。该形态27b是虚拟机管理器20将不存在的设备功能通过虚拟设备提供给多个OS(客体OS)的方式(形态)。OS间通信、虚拟网络符合第二形态27b,实际的硬件虽不存在,但是能够通过虚拟机管理器20来提供这些功能。
第三形态27c是功能扩展。在功能扩展的形态27c中,虚拟机管理器20对某个设备追加功能。例如存在“虚拟串行端口”。能够由虚拟机管理器20、其它的客体OS将由客体OS发送到虚拟串行端口的数据变换为TCP/IP后发送到网络上。也能够进行反向的数据发送,虚拟机管理器20使得能够以客体OS从虚拟串行端口接收从网络发送过来的TCP/IP的数据的形式来读入数据。关于利用虚拟串行端口的、向进行TCP/IP变换的虚拟机管理器20的数据的串行发送,具体地能够使用OS间通信来进行。
在作为安全OS 30采用的RTOS、简单的嵌入用OS中存在很多不具有如TCP/IP那样的复杂功能的OS。通过虚拟机管理器20、具有TCP/IP功能的其它的客体OS将虚拟串行端口的输入和输出变换为TCP/IP的输入和输出,无需对不具有如TCP/IP那样的复杂功能的OS进行修改,就能够安装支持网络的系统。
在该系统1中,使提供OS启动准备、OS切换、OS间通信以及虚拟设备这样的虚拟化功能的虚拟机管理器20在安全模式2下运行。因而,能够在安全侧执行虚拟化的处理、特别是与在安全侧运行的OS 30及在非安全侧运行的客体OS 41相关联的虚拟化的处理,从而能够降低来自在非安全的环境下运行的客体OS 41的干扰、攻击的可能性。因而,在系统1中,能够提供抵抗来自外界的干扰、攻击的能力强的安全的虚拟化环境。
另一方面,由于虚拟机管理器20在安全模式2下运行,从而当为了进行在非安全模式3下运行的客体OS 41的处理而需要虚拟化时,要从非安全模式3切换为安全模式2,这成为系统1的处理速度下降的主要原因。因此,虚拟机管理器20能够使用在安全模式2下进行动作的安全OS 30的第一动作条件(第一配置)21和在非安全模式3下进行动作的不安全OS41~43等客体OS的第二动作条件(第二配置)22a~22b来避免重复地固定或限制各个OS所访问的资源的范围(设备),由此减少了虚拟机管理器20介入的机会,抑制了系统1的处理速度的下降。
另外,在包含在非安全模式3下运行的客体OS 41~43的动作条件的第二配置22a~22c中,使用作为存储器保护功能的TZ架构12来设为不能对保护区域进行访问,在确保了存储器的安全性的基础上,降低了非安全模式3中的虚拟机管理器20介入的必要性。另一方面,第二配置22a~22c包括通过对与安全OS 30共用的设备的访问而转变为安全模式2,在安全模式2下运行的虚拟机管理器20能够将共享的设备作为虚拟设备来提供给各个OS。
在该系统1中,虚拟机管理器20对向安全模式2的转变和向非安全模式3的转变进行控制。关于向安全模式2的转变,既可以是对虚拟机管理器20的明示性的切换命令,也可以是捕捉对特定地址的访问,还可以是接收到来自计时器部11t、外部硬件模块的中断信号时。如果是提供了TZ架构12的ARM公司的处理器,则作为表示向安全模式2的转变的明示性的切换命令,能够使用SMC(Secure Monitor Call:安全监控调用)。
由于虚拟机管理器20在安全模式2下运行,在安全模式2下运行的安全OS 30、特别是RTOS 30中,不切换模式就能够通过仿真单元27访问共享的设备。并且,虚拟机管理器20能够在安全模式2中利用半虚拟化来对RTOS 30分配资源(设备)、例如DMAC 11x,从而能够抑制RTOS 30的性能降低。
在图3中利用流程图来示出在该系统1中虚拟机管理器20对多个OS进行控制(管理)的过程。当系统1启动时,在步骤101中,首先设定安全模式2。接着,在步骤102中,加载作为保护区域的引导ROM 16中保存的虚拟机管理器的固件(程序、程序产品)14h,来启动虚拟机管理器20。在步骤103中,虚拟机管理器20通过第一设定单元23将安全OS 30用的配置(第一配置、第一动作条件)21设定为引导时的配置。在步骤104中,处理器单元11的引导加载程序加载作为保护区域的引导ROM 16中保存的安全OS的固件14x,来启动安全OS 30。
在步骤105中,虚拟机管理器20的安全引导单元50在存储器的非保护区域18b的引导区域18s中准备不安全的富OS 41的固件<实例>14i。在步骤106中,虚拟机管理器20通过OS启动准备单元25的第二设定单元24a将富OS 41用的配置(第二配置、第二动作条件)22a设定为引导时的配置。在步骤107中,将处理器单元11的执行模式转变为非安全模式3,在步骤108中,处理器单元11的引导加载程序加载非保护区域的引导区域18s中保存的富OS 41的固件14i,来在非安全模式3中启动富OS 41。其它的OS 42和43也能够同样地启动。为了在非安全模式3中对多个OS 41~43进行控制(管理),也可以在启动多个OS 41~43之前启动在非安全模式3下运行的不同的虚拟机管理器。
当多个OS 30、41~43启动时,成为能够在这些OS上运行应用程序的状态,在步骤109中,系统1开始运行。在运行过程中,在步骤110中当在富OS 41中发生对与安全OS 30共用的设备的访问时,处理器单元11在步骤111中转变为安全模式2。虚拟机管理器20的仿真单元27在步骤112中对针对共用设备的处理进行仿真(模拟),将其结果保存到存储器的适当的或预先决定的非保护区域18b,由此在虚拟化环境中执行对共用的设备的访问。在步骤113中,将处理器单元11转变为非安全模式3,富OS 41继续进行处理。
在步骤114中当通过中断或调度等而产生OS的切换时,在步骤115中,将处理器单元11转变为安全模式2,在步骤116中,虚拟机管理器20的OS切换单元26进行OS切换处理。具体地说,将原来运行着的富OS 41的状态、具体地说包含各CPU核的寄存器的内容的上下文26x退避到存储器的保护区域18a。从存储器的保护区域18a加载切换后的OS的上下文26x,并重写各CPU核的寄存器的内容。如果切换后的OS例如为富OS 42,则在步骤117中将处理器单元11转变为非安全模式3,使富OS 42重新运行(重新启动)。如果切换后的OS为安全OS30,则不进行步骤117的模式切换而使安全OS重新运行。
在步骤118中当需要OS间通信时,在步骤119中,使用在存储器的非保护区域18b中设定的共享区域18c来进行OS间通信处理。稍后对该处理更详细地进行说明。
在步骤120中当富OS 41在非安全模式3中经由计算机网络设备(网络接口)19a等检测到存在固件的更新时,加载更新数据。在步骤121中,更新单元60进行固件的更新处理。稍后对该处理更详细地进行说明。在步骤122中,如果系统1正在运行,则重复进行上述的处理。
在图4中示出虚拟机管理器20的安全引导单元50进行安全地启动(安全引导)通用且不安全的丰富的第二OS 41的准备的过程。图4的(a)是流程图,示出启动过程,图4的(b)~(e)示意性地示出虚拟机管理器20使用硬件所支持的辅助功能、在本例中为TZ架构12来允许和限制对存储器区域的访问的情形。此外,关于与图3所示的系统1的启动过程重复的地方,将步骤的编号放入括号中示出。
在步骤54中,当系统1启动时,在处理器单元11中,首先设置安全模式2,虚拟机管理器20启动。在步骤55中,在安全模式2的状态下运行的虚拟机管理器20的OS启动准备单元25中设置的安全引导单元50的认证单元51使用作为保护区域的安全ROM的安全密钥EPROM15中保存的认证信息15a来进行作为保护区域的安全ROM的安全引导ROM 16中保存的第二OS 41的固件14f的认证处理(图4的(b))。
在步骤56中,安全引导单元50的解压缩单元52将在步骤55中已认证的固件14f解压缩到非保护区域的DDR存储器18的不安全区域18b的引导区域18s中并进行解密,形成第二OS 41的固件的执行用的实例14i(图4的(c))。
在步骤57中,虚拟机管理器20将处理器单元11的状态从安全模式2向非安全模式(普通模式)3转变。在该环境中,看不到安全ROM 16且不能访问安全ROM 16,能够访问普通RAM 18b和网络19a(图4的(d))。
在步骤58中,进行第二OS 41的启动处理(引导)。在普通RAM 18b中形成的第二OS41的固件的执行用的实例14i被处理器单元11的引导加载程序加载,第二OS 41启动(图4的(e))。第二OS 41在根据由虚拟机管理器20的第二设定单元24a设定为引导配置的第二配置22a来定义的环境中启动并运行。因而,能够从第二OS 41和在该第二OS 41上进行动作的客户应用程序45访问通过第二配置22a设为能够访问的普通RAM 18b和网络19a。另一方面,由于在普通模式(非安全模式)3下运行,因此通过TZ架构12,看不到安全ROM 16,也不能访问安全ROM 16。因此,从第二OS 41所管理的环境中看不到保存有使自己启动的固件14f的安全ROM 16,也不能对该安全ROM 16进行写入。因而,在第二OS 41上运行的应用程序组45不能攻击或改变固件14f,从而能够确保第二OS 41的安全性。
在图5中示出在安全模式2下运行的虚拟机管理器20中包含的更新单元60安全地更新(secure update:安全更新)通用的丰富的第二OS 41的情形。该更新单元60也能够作为在安全OS 30上运行的应用程序来提供。图5的(a)是更具体地表示图3所示的更新处理121的流程图,图5的(b)~(d)示意性地示出在更新处理过程中使用硬件所支持的存储器保护用的辅助功能、在本例中为TZ架构12来允许和限制对存储器区域的访问的情形。
步骤65是在普通模式(非安全模式)3中进行的处理,当由普通模式状态的处理器单元11运行的第二OS(不安全OS)41从网络接口19a访问外部网络而存在第二OS 41的更新用固件14n时,将更新用固件14n下载到普通RAM 18b。在该执行环境中,通过TZ架构12,从第二OS 41看不到安全ROM 16,从而安全ROM 16不会受到来自外部的攻击(图5的(b))。
之后,在适当的时机、例如系统1启动时、系统1被关机时、处理器单元11的执行模式由于其它原因而切换为安全模式2时(步骤66),在安全模式2下虚拟机管理器20运行,在步骤67中,更新单元60的认证单元61使用作为保护区域的安全密钥EPROM 15中保存的认证信息15b来对下载到普通RAM 18b中的固件14n进行认证(图5的(c))。
当普通RAM 18b的更新用固件14n通过认证时,在步骤68中,更新单元60的保存单元62将普通RAM 18b的更新用固件14n保存到作为安全ROM的安全引导ROM 16,如果需要则将安全引导ROM 16中保存着的固件14f替换为更新的固件14n(图5的(d))。另外,如果需要则废弃被下载到普通RAM 18b中的更新用固件14n。
更新单元60在安全模式2下运行,因此与在非安全的普通模式3下运行的不安全的富OS等第二OS 41之间是被隔离的,不会受到不确保安全性的网络等非安全的设备的攻击。另外,通过使用在非安全模式3下不能访问的保护区域的安全密钥EPROM 15中保存的认证信息15b来对所下载的固件14n进行认证,能够排除被非法改变的内容。因而,通过更新单元60能够防止恶意的内容等污染安全的存储器区域。因此,能够安全地更新保护区域的安全引导ROM 16中保存的第二OS 41的固件,之后能够通过上述安全引导单元50安全地启动第二OS 41。
在图6中通过时序图示出用于进行OS间通信处理119的流程。假定了将两个OS、例如安全OS 30和不安全OS 41大致同时地启动的情形,但也可以有时间差地进行启动。另外,在图6所示的处理中,经由参照各个OS 30和OS 41各自的配置21和22a中包含的共享存储器区域的动作条件21x和22x而在非保护区域中设定的共享存储器18c来进行OS间通信。
在由虚拟机管理器20虚拟化的环境中运行多个OS的系统1中,期望多OS环境上的实时性,寻求实现高效的OS间通信。经由虚拟机管理器20而执行的OS间通信的一例是虚拟机管理器20对所有处理进行居中协调的例子。本例的虚拟机管理器20也能够负责这种处理级别的OS间通信。实现OS间通信所需要的基本功能如以下那样。
·数据发送处理
·数据接收处理
·数据接收通知处理
·数据发送完成通知
在虚拟机管理器20对所有处理进行居中协调的情况下,数据的发送是由正在运行的某个OS、例如客体OS a自发地调用虚拟机管理器20来执行的。接收到发送数据的虚拟机管理器20将发送数据复制到自己所管理的作为发送目的地的其它OS、例如客体OS b的接收区域。数据接收通知是在数据发送处理完成后在虚拟机管理器20内执行的,通知是通过对作为发送目的地的客体OS b产生特定的中断来实现。在数据接收处理中,以中断信号这样的形式识别出数据接收的客体OS b向虚拟机管理器20请求获取接收数据。此时,虚拟机管理器20将接收数据复制(读出)到作为请求源的客体OS b的存储器区域。当作为发送目的地的客体OS b接收到数据时,虚拟机管理器20对作为发送源的客体OS a通知发送完成的事件。与数据接收通知同样地,关于该通知,也使用中断信号向客体OS a进行通知。根据本通知,作为发送源的客体OS a识别为能够发送接下来的数据。
在该OS间通信处理中,在虚拟机管理器20执行从客体OS请求的通信处理的期间,请求了通信的客体OS处于停止状态直到虚拟机管理器20的处理结束为止。这是在客体OS和虚拟机管理器20在相同的处理器上被执行的状况下不可避免的方式。客体OS处于停止状态的时间为几十微秒,在客体OS为LINUX(注册商标)、安卓的情况下,几乎不成为问题。然而,预计在执行实时OS(RTOS)来作为客体OS的情况下会成为问题。另外,在安全模式2下运行的虚拟机管理器20中,当想要进行在非安全模式3下运行的客体OS 41与42之间的通信、在非安全模式3下运行的客体OS 41与在安全模式2下运行的安全OS 30之间的通信时,需要将处理器单元11的执行模式切换为安全和非安全,因此参与通信的OS的停止时间有可能变长。
一般来说,RTOS是被要求在固定时间内对产生的事件执行处理的系统,作为主要的用途,能够列举机械控制。在像这样时间上的限制强的控制系统中,即使停止几十微秒,导致致命缺陷的可能性也高。以机械控制为例,在执行OS间通信的处理的过程中产生了需要紧急停止机械的某些事件的情况下,成为如果OS间通信处理不完成则RTOS无法执行紧急停止处理的状态。
在本例的系统1中,通过由虚拟机管理器20为客体OS间的通信设定共享存储器来提供不使客体OS停止、或者停止的时间被缩短的OS间通信功能。在该OS间通信功能中,尽可能限制虚拟机管理器20的介入。在OS启动时,虚拟机管理器20介入来执行各OS间的仲裁、初始化处理,在OS间通信处理中,仅由启动着的OS(客体OS)来执行大部分的处理,虚拟机管理器20尽可能不介入。在OS启动时,由于虚拟机管理器20介入而产生客体OS的停止状态,但是该状况是在系统1进入运用状态之前、或者对应的OS进入运用状态之前,因此不成为问题。
通过在OS间通信中排除虚拟机管理器20的介入,在客体OS彼此的控制下执行OS间通信处理的大部分。由此,在RTOS中,在OS间通信处理过程中产生了需要紧急处理的状况时,能够迅速地中断OS间通信处理来执行紧急处理。
在该系统1中,为了进行OS间通信处理而设定的共享存储器区域18c的信息(包含映射信息)能够作为动作条件21x和22x而分别包含在启动各个OS 30、41~43时的配置21和22a~22c中,能够由虚拟机管理器20进行启动准备来在各OS 30、41~43启动时进行分配(映射)。共享存储器区域18c既可以由虚拟机管理器20预先设定,也可以由虚拟机管理器20将任一个OS所设定的信息包含在配置21和22a~22c中的任一个中来使得能够由其它的OS使用。
使用共享存储器区域18c来作为OS间通信处理所使用的发送和接收区域,由此如果是在非安全模式3下运行的OS之间、或者在安全模式2下运行的OS之间,则除了初始设定以外,都能够排除虚拟机管理器20对于OS间通信处理的介入、或者将虚拟机管理器20对于OS间通信处理的介入抑制为最小限度。关于在非安全模式3下运行的第二OS、例如不安全OS41与在安全模式2下运行的安全OS 30之间的通信,在从非安全侧向安全侧进行通知时虚拟机管理器20参与,但是除此以外能够排除虚拟机管理器20的介入、或者将虚拟机管理器20的介入抑制为最小限度。
图6示出在虚拟机管理器20准备了共享存储器区域18c的情况下在启动客体OS的过程中进行OS间通信处理的设定的流程。客体OS例如是在安全模式2下进行动作的安全OS(RTOS)30和在不安全模式3下进行动作的不安全OS41。通过在不安全的存储器区域(非保护区域)18中设定共享存储器区域18c,能够从在安全模式2下进行动作的OS 30和在非安全模式3下进行动作的不安全OS 41这两个OS对共享存储器区域18c进行访问,因此能够实现实时性高的OS间通信。
虚拟机管理器20在步骤71中进行通信路径的初始化处理。在该初始化处理中,进行共享存储器区域18c、OS间通信中使用的中断号的补充,将通信路径状态初始化。接着,在步骤72中启动各客体OS、在本例中是启动安全OS 30和不安全OS 41。这些OS既可以同时启动,也可以依次启动。
在安全OS 30中,在步骤73a中开始OS间通信驱动器36x的初始化处理。在步骤74a中,安全OS 30在引导时获取设备信息并提供给虚拟机管理器20,从虚拟机管理器20接收包含共享存储器区域信息的配置(第一配置)21。在步骤75a中,进行共享存储器区域的映射、包括中断处理程序的登记在内的设备驱动器36的设定,并开始安全OS 30的运用。
在不安全OS 41中也同样,在步骤73b中开始OS间通信驱动器46x的初始化处理。在步骤74b中,获取设备信息并提供给虚拟机管理器20,从虚拟机管理器20接收包含共享存储器区域信息的配置(第二配置)22a。在步骤75b中,进行共享存储器区域的映射、包括中断处理程序的登记在内的设备驱动器46的设定,并开始不安全OS 41的运用。其中,在该事例中,不安全OS 41需要对在安全模式2下运行的安全OS 30输出通知。因而,在步骤75b中,设定成经由虚拟机管理器20对安全OS 30输出通知。
虚拟机管理器20在步骤76中在所有的客体OS获取到与OS间通信有关的信息的时间点将通信路径设定为可通信状态。由此,以后除了从不安全OS 41向安全OS 30进行通知时以外,都以虚拟机管理器20不参与的方式在安全OS30与不安全OS 41之间进行OS间通信处理(步骤77)。如果是不安全OS 41与42之间的OS间通信处理,则以虚拟机管理器20不参与的方式进行OS间通信处理。
能够从进行通信的安全OS 30和不安全OS 41参照共享存储器区域18c,安全OS 30和不安全OS 41能够直接参照相互的发送和接收数据。由此,相对于由虚拟机管理器20进行包括数据传输(数据输入和输出)在内的介入的OS间通信处理,在该OS间通信处理中,由安全OS 30和不安全OS 41进行数据的输入和输出,从而能够将该部分安装于各OS。虚拟机管理器20起到如下作用:在初始化处理中,对安全OS 30和不安全OS 41提供与共享存储器18c有关的信息、确保/构建共享存储器区域。
在OS间通信处理中,安全OS 30和不安全OS 41在执行数据的发送和接收处理之后向作为通信目的地的OS通知数据接收、发送完成。从安全OS 30对不安全OS 41的通知使用中断信号36q。因而,安全OS(RTOS)30不需要等待虚拟机管理器20的处理结束,不在OS间通信处理中停止,而能够继续进行处理。
另一方面,从不安全OS 41向安全OS 30的通知需要进行从非安全模式3向安全模式2的转变,因此虚拟机管理器20的OS间通信单元28要参与。因而,不安全OS 41的处理在该期间停止,但是如上述那样在不安全OS 41中几十微秒左右的停止不会成为问题。另外,如果是在非安全模式3下运行的OS 41与42之间,则通过直接对各个OS的中断控制器进行控制来能够排除虚拟机管理器20的介入。虚拟机管理器20起到如下作用:将共享存储器的动作条件21x、22x包含在配置21和22a~22c中,针对各OS 30和41~43进行在OS间通信的通知中利用的中断的设定、将其信息向各OS 30和41~43进行通知。
在图7中示出客体OS准备共享存储器区域18c的情况。在本例中,在非安全模式3下运行的不安全OS 41准备共享存储器区域18c,虚拟机管理器20将该信息传递到安全OS 30来实现OS间通信。
关于由虚拟机管理器20准备安全OS 30和不安全OS 41的启动并提供各自的配置21和22a的处理为止的处理,与图6所示的流程是共通的,但是在初始设定的配置21和22a中不包含共享存储器区域的信息。不安全OS 41根据配置22a来设定设备驱动器46,还进行中断处理程序的登记(步骤78b)。并且,在步骤79中,在补充共享存储器区域18c之后,对虚拟机管理器20请求将该共享存储器区域18c登记为用于OS间通信。
虚拟机管理器20在步骤80中登记共享存储器区域18c并将通信路径设定为可通信。另外,在步骤81中,设定为从作为其它的客体OS的安全OS 30能够访问从不安全OS 41通知的共享存储器区域18c。即,向安全OS 30通知共享存储器区域的信息21x。
在安全OS 30中,根据从虚拟机管理器20提供的配置21来进行包含中断处理程序的设备驱动器的设定(步骤78a)。并且,当从虚拟机管理器20提供了共享存储器区域的信息21x时,在步骤82中,对共享存储器区域18c进行映射,使得能够进行使用了共享存储器区域18c的OS间通信。之后,在这些OS之间能够进行OS间通信(步骤77)。
如上所述,如果是在非安全模式3下运行的客体OS之间,则直接对中断控制器进行控制。在安全模式2下运行的OS 30与在非安全模式3下运行的OS41之间的通信中,由于安全性方面的考虑而仅将从非安全模式3的OS 41向安全模式2的OS 30的通知处理委托给虚拟机管理器20,由此能够不牺牲安全性地缩短OS间通信所需要的处理时间。
在上述的例子中,以为了辅助安全的环境而嵌入有TZ架构的处理器11为例进行了说明,但是在嵌入有VZ架构或VT架构的处理器中也能够同样地实现安全引导、安全更新。在VZ架构或VT架构中,root模式状态对应于安全模式状态,客体模式状态对应于普通模式状态(非安全模式状态)。
RTOS 30是在安全的环境下进行动作的OS的一例,可以使LINUX(注册商标)等富OS在安全的环境下进行动作,也可以是其它嵌入型的OS、例如具有事件驱动型、非抢占(non-preemptive)型的调度程序的多任务型的嵌入OS(multitasking embedded operatingsystem)。
如以上说明的那样,系统1所包括的虚拟机管理器20是以下的裸金属类型的虚拟机管理器:包含用于在安全的环境下启动OS 30的第一动作条件(第一配置)和用于在非安全的环境下启动OS 41~43的第二动作条件(第二配置),能够使多个OS在不同的环境中进行动作。该虚拟机管理器20是轻型的,运行虚拟机管理器20所需的CPU负荷非常低,能够实现1%左右或1%以下的负荷,CPU(处理单元、处理器)的使用效率高。因而,具备虚拟机管理器20的系统、特别是SoC等嵌入系统即使是使用了性能不那么高的CPU的系统,也能够在安全的环境中使各种客户应用程序45进行动作。因此,通过包括虚拟机管理器20的嵌入系统1,能够以低成本来在客户应用程序45所控制的各种装置、例如智能家电、保健设备、HEMS、智能仪表、打印机等面向消费者的周边设备、以及车载计算环境中提供安全的环境。
Claims (15)
1.一种系统,具有:
处理单元,其包含辅助功能并具备执行模式,所述辅助功能禁止对包括保护区域和非保护区域的存储器的所述保护区域进行访问,所述执行模式包括通过所述辅助功能而被禁止对所述保护区域进行访问的低安全模式以及被允许对所述保护区域进行访问的安全模式;以及
虚拟机管理器,其在所述处理单元的所述安全模式下运行,
其中,所述虚拟机管理器包括:
第一设定单元,其针对在所述安全模式下运行的第一操作系统设定第一动作条件,该第一动作条件包括设为能够对所述保护区域和所述非保护区域进行访问;
第二设定单元,其针对在所述低安全模式下运行的第二操作系统设定第二动作条件,该第二动作条件包括设为能够对所述非保护区域进行访问、利用所述辅助功能设为不能对所述保护区域进行访问以及通过对与所述第一操作系统共用的第一设备的访问而转变为所述安全模式;以及
仿真单元,其将所述第一设备虚拟化来提供给所述第二操作系统。
2.根据权利要求1所述的系统,其特征在于,
所述第一动作条件包括设为不能对包括低安全的计算机网络在内的非保护设备进行访问,所述第二动作条件包括设为能够对所述非保护设备进行访问。
3.根据权利要求1或2所述的系统,其特征在于,
所述虚拟机管理器包括操作系统切换单元,该操作系统切换单元对包括所述第一操作系统和所述第二操作系统的多个操作系统进行切换,所述操作系统切换单元包括将所述多个操作系统的动作条件和所述多个操作系统的上下文分别保存到所述保护区域的单元。
4.根据权利要求1至3中的任一项所述的系统,其特征在于,
所述虚拟机管理器具有操作系统启动准备单元,
所述操作系统启动准备单元包括:
第一认证单元,其使用所述保护区域中保存的认证信息来对所述保护区域中保存的所述第二操作系统的固件进行认证;以及
解压缩单元,其将所述保护区域中保存的已认证的所述第二操作系统的固件解压缩到所述非保护区域的引导区域中来作为执行用的实例。
5.根据权利要求4所述的系统,其特征在于,
还具有在所述安全模式下运行的更新单元,
所述更新单元包括:
第二认证单元,其使用所述保护区域中保存的认证信息来对被下载到所述非保护区域中的更新用固件进行认证;以及
保存单元,其将下载到所述非保护区域中的已认证的所述更新用固件保存到所述保护区域。
6.根据权利要求1至5中的任一项所述的系统,其特征在于,
所述第一动作条件和所述第二动作条件包含在所述非保护区域中设定的共享的存储器区域的动作条件。
7.根据权利要求6所述的系统,其特征在于,
所述共享的存储器区域的动作条件包括当所述第二操作系统对所述共享的存储器区域进行了写入时向所述安全模式转变,
所述虚拟机管理器包括向所述第一操作系统通知对所述共享的存储器区域进行了写入的单元,
所述第一操作系统包括当对所述共享的存储器区域进行了写入时通过中断来向所述第二操作系统进行通知的单元。
8.根据权利要求1至7中的任一项所述的系统,其特征在于,
具有片上系统,该片上系统搭载有所述存储器和所述处理单元。
9.根据权利要求1至8中的任一项所述的系统,其特征在于,还具有:
在所述第二操作系统上运行的应用程序;以及
通过所述应用程序来控制的装置。
10.一种在具有处理单元的系统中对多个操作系统进行控制的方法,该处理单元包含辅助功能并具备执行模式,所述辅助功能禁止对包括保护区域和非保护区域的存储器的所述保护区域进行访问,所述执行模式包括通过所述辅助功能而被禁止对所述保护区域进行访问的低安全模式以及被允许对所述保护区域进行访问的安全模式,
所述系统包括在所述处理单元的所述安全模式下运行的虚拟机管理器,
该方法包括以下步骤:
所述虚拟机管理器针对在所述安全模式下运行的第一操作系统设定第一动作条件,该第一动作条件包括设为能够对所述保护区域和所述非保护区域进行访问;
所述虚拟机管理器针对在所述低安全模式下运行的第二操作系统设定第二动作条件,该第二动作条件包括设为能够对所述非保护区域进行访问、利用所述辅助功能设为不能对所述保护区域进行访问以及通过对与所述第一操作系统共用的第一设备的访问而转变为所述安全模式;以及
所述虚拟机管理器将所述第一设备虚拟化来提供给所述第二操作系统。
11.根据权利要求10所述的方法,其特征在于,
还包括以下步骤:所述虚拟机管理器对包括所述第一操作系统和所述第二操作系统的所述多个操作系统进行切换,
对操作系统进行所述切换的步骤包括以下步骤:将所述多个操作系统的动作条件和所述多个操作系统的上下文分别保存到所述保护区域。
12.根据权利要求10或11所述的方法,其特征在于,
还包括以下步骤:所述虚拟机管理器准备操作系统的启动,
所述准备操作系统的启动的步骤包括以下步骤:
使用所述保护区域中保存的认证信息来对所述保护区域中保存的所述第二操作系统的固件进行认证;以及
将所述保护区域中保存的已认证的所述第二操作系统的固件解压缩到所述非保护区域的引导区域中来作为执行用的实例。
13.根据权利要求12所述的方法,其特征在于,
所述系统还包括在所述安全模式下运行的更新单元,
该方法包括以下步骤:
所述更新单元使用所述保护区域中保存的认证信息来对被下载到所述非保护区域中的更新用固件进行认证;以及
所述更新单元将下载到所述非保护区域中的已认证的所述更新用固件保存到所述保护区域。
14.根据权利要求10至13中的任一项所述的方法,其特征在于,
所述第一动作条件和所述第二动作条件包括在所述非保护区域中设定的共享的存储器区域的动作条件,
该方法包括以下步骤:
当所述第二操作系统对所述共享的存储器区域进行了写入时,向所述安全模式转变,所述虚拟机管理器向所述第一操作系统通知对所述共享的存储器区域进行了写入;以及
所述第一操作系统当对所述共享的存储器区域进行了写入时,通过中断来向所述第二操作系统进行通知。
15.一种能够在具有处理单元的系统中进行多个操作系统的控制的程序,该处理单元包含辅助功能并具备执行模式,所述辅助功能禁止对包括保护区域和非保护区域的存储器的所述保护区域进行访问,所述执行模式包括通过所述辅助功能而被禁止对所述保护区域进行访问的低安全模式以及被允许对所述保护区域进行访问的安全模式,
该程序包含使虚拟机管理器在所述处理单元的所述安全模式下运行的命令,
所述虚拟机管理器执行以下步骤:
针对在所述安全模式下运行的第一操作系统设定第一动作条件,该第一动作条件包括设为能够对所述保护区域和所述非保护区域进行访问;
针对在所述低安全模式下运行的第二操作系统设定第二动作条件,该第二动作条件包括设为能够对所述非保护区域进行访问、利用所述辅助功能设为不能对所述保护区域进行访问以及通过对与所述第一操作系统共用的第一设备的访问而转变为所述安全模式;以及
将所述第一设备虚拟化来提供给所述第二操作系统。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015-165785 | 2015-08-25 | ||
JP2015165785 | 2015-08-25 | ||
JP2016-026955 | 2016-02-16 | ||
JP2016026955 | 2016-02-16 | ||
PCT/JP2016/074886 WO2017034008A1 (ja) | 2015-08-25 | 2016-08-25 | ハイパーバイザーを有するシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107924441A true CN107924441A (zh) | 2018-04-17 |
Family
ID=58100406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680049057.8A Withdrawn CN107924441A (zh) | 2015-08-25 | 2016-08-25 | 具有虚拟机管理器的系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10902112B2 (zh) |
EP (1) | EP3343419A1 (zh) |
JP (3) | JP6130612B1 (zh) |
CN (1) | CN107924441A (zh) |
TW (1) | TW201710947A (zh) |
WO (1) | WO2017034008A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020009144A (ja) * | 2018-07-09 | 2020-01-16 | 株式会社東芝 | 情報処理装置、移動体、情報処理方法、およびプログラム |
TWI814580B (zh) * | 2021-09-17 | 2023-09-01 | 聯發科技股份有限公司 | 模型保護系統以及非暫態機器可讀介質 |
US12265838B2 (en) | 2022-06-15 | 2025-04-01 | Mediatek Inc. | Model protection system |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6723863B2 (ja) * | 2016-08-01 | 2020-07-15 | オリンパス株式会社 | 組み込みシステム、撮影機器及びリフレッシュ方法 |
JP6615726B2 (ja) * | 2016-09-16 | 2019-12-04 | 株式会社東芝 | 情報処理装置、情報処理方法及びプログラム |
US11010475B1 (en) * | 2016-10-07 | 2021-05-18 | Janus Technologies Inc. | Secure computer with multiple operating systems |
WO2019012958A1 (ja) * | 2017-07-11 | 2019-01-17 | 株式会社Seltech | ハイパーバイザプログラム |
WO2019012956A1 (ja) * | 2017-07-11 | 2019-01-17 | 株式会社Seltech | センシング装置、センシングシステム、およびサーバ |
JP7026298B2 (ja) * | 2017-09-29 | 2022-02-28 | 積水ハウス株式会社 | セキュアモードとノンセキュアモードとを選択的に切り替え可能なシステム |
KR102436485B1 (ko) * | 2017-11-20 | 2022-08-26 | 삼성전자주식회사 | 전자 장치 및 전자 장치에서 보안 운영체제 기반 데이터 송수신 방법 |
US10757082B2 (en) * | 2018-02-22 | 2020-08-25 | International Business Machines Corporation | Transforming a wrapped key into a protected key |
JP6776292B2 (ja) * | 2018-03-20 | 2020-10-28 | 株式会社東芝 | 情報処理装置、情報処理方法、およびプログラム |
JP7006461B2 (ja) * | 2018-04-02 | 2022-01-24 | 株式会社デンソー | 電子制御装置および電子制御システム |
EP3611642B1 (en) * | 2018-08-17 | 2020-08-12 | Omron Corporation | Method for operating an industrial pc device and industrial pc device |
EP3617927B1 (en) * | 2018-08-30 | 2021-06-30 | OpenSynergy GmbH | Control unit and method for operating a control unit |
JP6969590B2 (ja) | 2018-09-06 | 2021-11-24 | 株式会社デンソー | 車両制御システム |
JP2020135555A (ja) * | 2019-02-21 | 2020-08-31 | Necソリューションイノベータ株式会社 | 処理実行方法 |
JP7141977B2 (ja) * | 2019-03-29 | 2022-09-26 | 株式会社デンソーテン | 制御装置および制御方法 |
US11163457B2 (en) | 2019-06-24 | 2021-11-02 | International Business Machines Corporation | Authorizing modification of resources |
DE112019007432B4 (de) * | 2019-06-27 | 2024-02-08 | Mitsubishi Electric Corporation | Elektronische steuereinheit und programm |
CN111124664B (zh) * | 2019-11-22 | 2023-12-08 | 华为技术有限公司 | 第一操作系统访问第二操作系统资源的方法和装置 |
US11461474B2 (en) * | 2020-01-24 | 2022-10-04 | International Business Machines Corporation | Process-based virtualization system for executing a secure application process |
KR20210128628A (ko) * | 2020-04-17 | 2021-10-27 | 에스케이하이닉스 주식회사 | 전자 장치와, 이를 위한 데이터 저장 장치 및 동작 방법 |
CN113656086A (zh) * | 2020-04-28 | 2021-11-16 | 瑞昱半导体股份有限公司 | 安全存储及加载固件的方法及电子装置 |
CN119248415A (zh) * | 2020-06-28 | 2025-01-03 | 华为技术有限公司 | 处理数据的方法、主机及装置 |
KR20220017319A (ko) * | 2020-08-04 | 2022-02-11 | 삼성전자주식회사 | 메모리 보호 방법 및 전자 장치 |
JP7514586B2 (ja) * | 2020-09-14 | 2024-07-11 | パナソニックオートモーティブシステムズ株式会社 | 情報処理装置、情報処理方法、および、プログラム |
US11347497B1 (en) * | 2021-01-05 | 2022-05-31 | Vmware, Inc. | Uniform software and firmware management of clusters of heterogeneous server hardware |
US11954206B2 (en) * | 2021-03-05 | 2024-04-09 | Infineon Technologies LLC | Systems, methods, and devices for secured nonvolatile memories |
EP4287054A1 (en) * | 2022-06-03 | 2023-12-06 | Siemens Aktiengesellschaft | Computer implemented method for updating a safety software code, computer hardware device, computer program and a computer-readable medium |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19959434A1 (de) * | 1999-12-09 | 2001-06-21 | Siemens Ag | Verfahren zur Änderung des Betriebssystems eines Telekommunikationsendgerätes |
US20020184404A1 (en) * | 2001-06-01 | 2002-12-05 | Kenneth Lerman | System and method of maintaining a timed event list |
US7664903B2 (en) * | 2002-02-25 | 2010-02-16 | Solid Access Technologies LLC | Control unit with PCI and SCSI buses and computing system with electronic semiconductor disk |
US7069442B2 (en) * | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
GB2396712B (en) * | 2002-11-18 | 2005-12-07 | Advanced Risc Mach Ltd | Handling multiple interrupts in a data processing system utilising multiple operating systems |
GB2396451B (en) * | 2002-11-18 | 2005-12-07 | Advanced Risc Mach Ltd | Delivering data processing requests to a suspended operating system |
DE60308215T2 (de) * | 2002-11-18 | 2007-08-23 | Arm Ltd., Cherry Hinton | Prozessorschaltung zwischen sicheren und nicht sicheren modi |
US8274518B2 (en) * | 2004-12-30 | 2012-09-25 | Microsoft Corporation | Systems and methods for virtualizing graphics subsystems |
US7949766B2 (en) * | 2005-06-22 | 2011-05-24 | Cisco Technology, Inc. | Offload stack for network, block and file input and output |
US7950020B2 (en) * | 2006-03-16 | 2011-05-24 | Ntt Docomo, Inc. | Secure operating system switching |
US8467528B2 (en) * | 2006-08-31 | 2013-06-18 | Advanced Micro Devices, Inc. | Multimedia content protection |
WO2008077628A2 (en) * | 2006-12-22 | 2008-07-03 | Virtuallogix Sa | System for enabling multiple execution environments to share a device |
US8285987B1 (en) * | 2009-12-04 | 2012-10-09 | The United States Of America As Represented By The Secretary Of The Air Force | Emulation-based software protection |
US8739177B2 (en) | 2010-06-21 | 2014-05-27 | Intel Corporation | Method for network interface sharing among multiple virtual machines |
US8522322B2 (en) * | 2010-09-22 | 2013-08-27 | Intel Corporation | Platform firmware armoring technology |
US20120297177A1 (en) * | 2010-11-15 | 2012-11-22 | Ghosh Anup K | Hardware Assisted Operating System Switch |
US20120216189A1 (en) * | 2011-02-22 | 2012-08-23 | Subash Kalbarga | Methods, Devices and Computer Program Products for Emulating a Physical Hard Drive as Multiple Virtual Hard Drives |
US9129123B2 (en) * | 2011-06-13 | 2015-09-08 | Lynx Software Technologies, Inc. | Systems and methods of secure domain isolation involving separation kernel features |
GB2501343A (en) | 2012-02-08 | 2013-10-23 | Advanced Risc Mach Ltd | Data processing apparatus and method using secure domain and less secure domain |
KR20130101632A (ko) * | 2012-02-16 | 2013-09-16 | 삼성전자주식회사 | 콘텐츠 보안 장치 및 방법 |
KR20130101648A (ko) * | 2012-02-22 | 2013-09-16 | 한국전자통신연구원 | 가상화를 위한 보안 제공 장치 및 방법 |
US8656482B1 (en) * | 2012-08-20 | 2014-02-18 | Bitdefender IPR Management Ltd. | Secure communication using a trusted virtual machine |
JP6067449B2 (ja) * | 2013-03-26 | 2017-01-25 | 株式会社東芝 | 情報処理装置、情報処理プログラム |
US20150052616A1 (en) * | 2013-08-14 | 2015-02-19 | L-3 Communications Corporation | Protected mode for securing computing devices |
US9355050B2 (en) * | 2013-11-05 | 2016-05-31 | Qualcomm Incorporated | Secure, fast and normal virtual interrupt direct assignment in a virtualized interrupt controller in a mobile system-on-chip |
US10198274B2 (en) * | 2015-03-27 | 2019-02-05 | Intel Corporation | Technologies for improved hybrid sleep power management |
US10269167B1 (en) * | 2018-05-21 | 2019-04-23 | Apple Inc. | Indirect command buffers for graphics processing |
-
2016
- 2016-08-25 CN CN201680049057.8A patent/CN107924441A/zh not_active Withdrawn
- 2016-08-25 US US15/753,385 patent/US10902112B2/en active Active
- 2016-08-25 TW TW105127311A patent/TW201710947A/zh unknown
- 2016-08-25 EP EP16839355.1A patent/EP3343419A1/en not_active Withdrawn
- 2016-08-25 WO PCT/JP2016/074886 patent/WO2017034008A1/ja active Application Filing
- 2016-08-25 JP JP2016571171A patent/JP6130612B1/ja active Active
-
2017
- 2017-02-21 JP JP2017029539A patent/JP6130617B1/ja active Active
- 2017-04-13 JP JP2017079619A patent/JP2017162483A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020009144A (ja) * | 2018-07-09 | 2020-01-16 | 株式会社東芝 | 情報処理装置、移動体、情報処理方法、およびプログラム |
TWI814580B (zh) * | 2021-09-17 | 2023-09-01 | 聯發科技股份有限公司 | 模型保護系統以及非暫態機器可讀介質 |
US12265838B2 (en) | 2022-06-15 | 2025-04-01 | Mediatek Inc. | Model protection system |
Also Published As
Publication number | Publication date |
---|---|
JPWO2017034008A1 (ja) | 2017-08-24 |
EP3343419A1 (en) | 2018-07-04 |
JP6130617B1 (ja) | 2017-05-17 |
TW201710947A (zh) | 2017-03-16 |
JP6130612B1 (ja) | 2017-05-17 |
JP2017162483A (ja) | 2017-09-14 |
US10902112B2 (en) | 2021-01-26 |
WO2017034008A1 (ja) | 2017-03-02 |
US20180239896A1 (en) | 2018-08-23 |
JP2017146974A (ja) | 2017-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107924441A (zh) | 具有虚拟机管理器的系统 | |
US11200080B1 (en) | Late load technique for deploying a virtualization layer underneath a running operating system | |
US8032741B2 (en) | Method and apparatus for virtualization of a multi-context hardware trusted platform module (TPM) | |
US8996864B2 (en) | System for enabling multiple execution environments to share a device | |
KR101843730B1 (ko) | 보안 런타임 환경을 갖는 마이크로 프로세서 시스템 | |
US7529916B2 (en) | Data processing apparatus and method for controlling access to registers | |
US20190324789A1 (en) | Virtual machine exit support by a virtual machine function | |
US20200314126A1 (en) | Persona-based contextual security | |
US8176219B1 (en) | Router having routing engine software instance and interaface controller software instance on a single processor | |
JP2007220086A (ja) | 入出力制御装置、入出力制御システム及び入出力制御方法 | |
DE112020000792T5 (de) | Durch grafikverarbeitungseinheit beschleunigte vertrauenswürdige ausführungsumgebung | |
CN108509251A (zh) | 一种适用于可信执行环境中的安全虚拟化系统 | |
JP2013012196A (ja) | ハードウェア抽象化を用いたソフトウェアアプリケーション実行の方法と装置 | |
CN114035842B (zh) | 固件配置方法、计算系统配置方法、计算装置以及设备 | |
JP7048638B2 (ja) | コントロール装置 | |
CN108549571A (zh) | 一种适用于可信执行环境中的安全虚拟化方法 | |
WO2018085183A1 (en) | Exclusive execution environment within a system-on-a-chip computing system | |
CN101359312B (zh) | 输入输出控制系统 | |
TWI603265B (zh) | 積體電路射頻 | |
EP3617927B1 (en) | Control unit and method for operating a control unit | |
CN106155682A (zh) | 一种基于SDMA控制器的Linux系统启动方法及系统 | |
Lackorzynski et al. | Real-time performance of L4Linux | |
CN108369558B (zh) | 用于运行微控制器的方法 | |
WO2018114944A1 (en) | System comprising a plurality of virtualization systems | |
CN113986715A (zh) | 一种处理器的调试方法、系统、系统级芯片 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20180417 |
|
WW01 | Invention patent application withdrawn after publication |