CN102859502A - 虚拟计算机系统、虚拟计算机控制方法、虚拟计算机控制程序及半导体集成电路 - Google Patents

虚拟计算机系统、虚拟计算机控制方法、虚拟计算机控制程序及半导体集成电路 Download PDF

Info

Publication number
CN102859502A
CN102859502A CN2011800204963A CN201180020496A CN102859502A CN 102859502 A CN102859502 A CN 102859502A CN 2011800204963 A CN2011800204963 A CN 2011800204963A CN 201180020496 A CN201180020496 A CN 201180020496A CN 102859502 A CN102859502 A CN 102859502A
Authority
CN
China
Prior art keywords
virtual machine
program
storage area
virtual
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.)
Granted
Application number
CN2011800204963A
Other languages
English (en)
Other versions
CN102859502B (zh
Inventor
谷川忠雄
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.)
Sun Patent Trust Inc
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN102859502A publication Critical patent/CN102859502A/zh
Application granted granted Critical
Publication of CN102859502B publication Critical patent/CN102859502B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine

Abstract

具备存储器保护单元,该存储器保护单元进行从虚拟计算机向存储器区域的访问控制,通过由处理器执行的管理器和存储器保护单元协同动作,对于各个虚拟计算机,将向存储器的存储区域的访问控制为,分别禁止向规定的区域的访问。由此,各个虚拟计算机无法访问容纳在被禁止访问的区域中的程序、数据等。

Description

虚拟计算机系统、虚拟计算机控制方法、虚拟计算机控制程序及半导体集成电路
技术领域
本发明涉及虚拟计算机系统,尤其涉及从虚拟计算机向存储区域的访问的控制技术。
背景技术
以往,作为虚拟计算机系统,已知有对多个虚拟计算机进行执行控制的系统。
在这样的虚拟计算机系统中,作为提高硬件资源的利用效率的技术,有根据虚拟计算机系统的处理负荷而动态地控制虚拟计算机的生成和结束的技术。
例如,在专利文献1中,公开了通过将母虚拟计算机分叉(fork)而生成子虚拟计算机的技术,在专利文献2中,公开了如下技术:基于来自在虚拟计算机上执行的应用程序的请求,将该虚拟计算机复制(clone、克隆)化,从而生成子虚拟计算机。
在先技术文献
专利文献
专利文献1:特开2004-133894号公报
专利文献2:特开2008-165795号公报
发明的概要
发明所要解决的课题
但是,在虚拟计算机系统中,在成为执行对象的应用程序中,有时同时存在已认证不含有恶意软件(malware)的应用程序(以下称为“已认证应用程序”)和未认证不含有恶意软件的应用程序(以下称为“未认证应用程序”)。
这种情况下,在未认证应用程序中含有恶意软件时,通过执行该恶意软件,已认证应用程序可能被攻击。
作为已认证应用程序被攻击的情况的例子,例如有如下情况:已认证应用程序或数据被篡改;或者已认证应用程序被以不恰当的方法执行,系统的管理者权限被剥夺,结果计算机系统被非法地夺取,应该对外部保密的信息、例如系统所保存的收费内容、个人信息、密钥等被读取。
在以往的动态地生成虚拟计算机的虚拟计算机系统中,在执行新的应用程序的情况下,在不存在用于执行该应用程序的虚拟计算机时等,基于母虚拟计算机来生成新的子虚拟计算机,使该子虚拟计算机执行该应用程序。
这种情况下,从母虚拟计算机生成的子虚拟计算机具有与母虚拟计算机相同的功能。因此,在成为母虚拟计算机的执行对象的应用程序中含有已认证应用程序的情况下,即使是为了执行未认证应用程序而生成的子虚拟计算机,在成为执行对象的应用程序中也含有已认证应用程序。
因此,在以往的虚拟计算机系统中,在子虚拟计算机执行的未认证应用程序中含有恶意软件的情况下,已认证应用程序可能被该恶意软件攻击。
发明内容
在此,本发明是鉴于以上问题而做出的,其目的在于,提供一种虚拟计算机系统,即使在成为虚拟计算机的执行对象的应用程序中同时存在已认证应用程序和未认证应用程序,也能够防止由于执行未认证应用程序所包含的恶意软件而非法执行软件,该软件的非法执行包括:系统的夺取或数据的盗用、以及成为篡改的原因的对已认证应用程序的攻击等。
解决课题所采用的手段
为了解决上述问题,本发明的虚拟计算机系统的特征在于,具备:存储装置;处理器,与该存储装置连接;以及管理器(hypervisor,管理程序、超级管理器、虚拟机管理器),在该处理器上执行,使该处理器进行多个虚拟计算机的执行控制;该虚拟计算机系统具备访问控制部,对从虚拟计算机向所述存储装置的存储区域的访问进行控制;所述存储装置包括容纳第1种程序的第1存储区域和容纳第2种程序的第2存储区域;所述管理器包括:启动请求受理部,用于从虚拟计算机受理第1种程序或第2种程序的启动请求;以及虚拟计算机生成部,在由所述处理器执行的所述启动请求受理部受理了第1种程序的启动请求时,生成用于执行该第1种程序的虚拟计算机,并将该生成的虚拟计算机作为第1种虚拟计算机来管理,在受理了第2种程序的启动请求时,生成用于执行该第2种程序的虚拟计算机,并将该生成的虚拟计算机作为第2种虚拟计算机来管理;所述访问控制部以如下方式进行所述访问的控制:禁止从由所述处理器执行的所述虚拟计算机生成部作为所述第1种虚拟计算机来管理的虚拟计算机向所述第2存储区域的访问。
发明效果
根据具备上述构成的本发明的虚拟计算机系统,将未认证应用程序作为第1种程序容纳在第1存储区域中,将已认证应用程序作为第2种程序容纳在第2存储区域中,由此,执行未认证应用程序的虚拟计算机无法访问已认证应用程序。
因此,在成为虚拟计算机的执行对象的应用程序中,即使同时存在已认证应用程序和未认证应用程序,也能够防止由于执行未认证应用程序所包含的恶意软件而非法执行软件,该软件的非法执行包括:系统的夺取或数据的盗用、以及成为篡改的原因的对已认证应用程序的攻击等。
附图说明
图1是表示虚拟计算机系统100的主要的硬件构成的框图。
图2是表示处理器101所具有的动作模式的动作模式图。
图3是表示存储器保护表的数据构造的数据构造图。
图4是表示存储器保护信息的数据构造的数据构造图。
图5是表示存储器102的存储区域的划分的存储区域图。
图6是表示在处理器101上成为执行对象的程序模块的框图。
图7是应用组管理表700的数据构造图。
图8是虚拟计算机管理表800的数据构造图。
图9是虚拟计算机状态表900的数据构造图。
图10是访问许可信息1000的数据构造。
图11是表示存储器102的存储区域的划分的存储区域图。
图12是虚拟计算机切换处理的流程图。
图13是存储器访问处理的流程图。
图14是应用程序执行处理的流程图。
图15是表示虚拟计算机系统1500的主要的硬件构成的框图。
图16是表示在处理器101上成为执行对象的程序模块的框图。
图17是表示在处理器101上成为执行对象的程序模块的框图。
图18是变形例中的虚拟计算机系统1800的概略构成图。
具体实施方式
<实施方式1>
<概要>
以下,作为本发明的虚拟计算机系统的一个实施方式,说明如下的虚拟计算机系统,该虚拟计算机系统具备处理器,该处理器具有执行应用程序的用户模式和比用户模式高级的管理员(supervisor)模式这2个程序执行模式,由以处理器的管理员模式执行的管理器对以处理器的管理员模式执行的多个操作系统进行分时执行控制。
该虚拟计算机系统除了处理器之外,还具备存储器保护单元,该存储器保护单元进行从虚拟计算机向存储器的存储区域的访问控制。并且,由处理器执行的管理器和存储器保护单元协同动作,由此,对于各个虚拟计算机,将向存储器的存储区域的访问分别控制为禁止向规定的区域的访问。
因此,由该虚拟计算机系统执行的各个虚拟计算机无法访问被禁止访问的区域所容纳的程序、数据等。
以下,参照附图说明本实施方式1的虚拟计算机系统的构成。
<硬件构成>
图1是表示虚拟计算机系统100的主要的硬件构成的框图。
如该图所示,虚拟计算机系统100作为硬件是计算机装置,由集成电路110、输入装置131、输出装置132构成。
集成电路110是将处理器101、存储器102、高速缓冲存储器105、MMU(Memory Management Unit:存储器管理单元)106、存储器保护单元107、计时器108、DMAC(Direct Memory Access Controller:直接存储器访问控制器)109、内部总线120、第1接口121、第2接口122、第3接口123集成而得到的半导体集成电路,与输入装置131、输出装置132、外部的集成电路等连接。并且,存储器102由ROM(Read Only Memory)103和RAM(Random Access Memory)104构成。
处理器101与高速缓冲存储器105和MMU106连接,通过执行存储在ROM103或RAM104中的程序,对ROM103、RAM104、高速缓冲存储器105、MMU106、存储器保护单元107、计时器108、输入装置131、输出装置132进行控制,实现各种功能。
图2是表示处理器101所具备的动作模式的动作模式图。
如该图所示,处理器101具有执行应用程序(图中的任务A231、任务K232、任务L233等)的用户模式230和执行操作系统(图中的第1OS(Operating System)221、第2OS222、第3OS223等)及管理器的特权模式(以下称为“管理员模式”)220。
以用户模式230执行的应用程序被以管理员模式220执行的操作系统分时执行控制,以管理员模式220执行的操作系统被同样以管理员模式220执行的管理器分时执行控制。
再次回到图1,继续说明虚拟计算机系统100的构成。
ROM103与存储器保护单元107连接,存储有规定处理器101的动作的程序和处理器101所利用的数据。
RAM104与存储器保护单元107连接,存储有规定处理器101的动作的程序和处理器101所利用的数据。
高速缓冲存储器105与处理器101、MMU106、内部总线120连接,由处理器101利用。
MMU106与处理器101、高速缓冲存储器105、内部总线120连接,具有用于指定存储器102的物理存储区域的地址的物理地址与用于指定处理器101所利用的逻辑存储区域的地址的逻辑地址的变换功能。
存储器保护单元107与存储器102及内部总线120连接,具有在内部存储存储器保护表和存储器保护信息的功能、以及参照存储的存储器保护表和存储器保护信息而对从内部总线120的总线主控器(master)(在此为处理器101、DMAC109)向存储器102的存储区域的访问进行控制的功能。
图3是表示由存储器保护单元107存储的存储器保护表300的数据构造的数据构造图。
如该图所示,存储器保护表300通过将区域ID310、开始地址320、尺寸330建立对应而构成。
区域ID310是用于识别存储器102的存储区域中的规定的存储区域的识别符。
开始地址320是通过对应的区域ID310识别的规定的存储区域的开始地址。
尺寸330以兆字节为单位来表示通过对应的区域ID310识别的规定的存储区域的尺寸。
根据存储器保护表300,例如区域ID310为“1”的规定的存储区域表示:开始地址为“0x8000_0000”、尺寸为2MB(Mega Byte)的存储区域。
图4是表示由存储器保护单元107存储的存储器保护信息400的数据构造的数据构造图。
如该图所示,存储器保护信息400通过将区域ID410和访问信息420建立对应而构成。
区域ID410与区域ID310同样,是用于识别存储器102的存储区域中的规定的存储区域的识别符。
访问信息420是表示对通过对应的区域ID410识别的规定的存储区域进行的访问的限制的信息,是如下4个信息中的某一个信息:(1)表示既可以读出也可以写入的意思的信息(以下称为“R/W”)、(2)表示可以读出但不可以写入的意思的信息(以下称为“RO”)、(3)表示不可以读出但可以写入的意思的信息(以下称为“WO”)、(4)表示既不可以读出也不可以写入的意思的信息(以下称为“NA”)。
根据该存储器保护信息400,例如区域ID410为“1”的规定的区域表示既不可以读出也不可以写入,区域ID410为“2”的规定的区域表示既可以读出也可以写入,区域ID410为“3”的规定的区域表示可以读出但不可以写入,区域ID410为“4”的规定的区域表示既不可以读出也不可以写入。
图5是表示由存储器保护单元107划分为多个规定的区域而进行向存储器102的存储区域的访问的控制的、存储器102的存储区域图。
如该图所示,通过由存储器保护单元107参照存储器保护表,存储器102的存储区域被划分为区域ID310为“1”的区域A501、区域ID310为“2”的区域B502、区域ID310为“3”的区域C503、区域ID310为“4”的区域D504等。
另外,关于存储器保护单元107所进行的向存储器102的存储区域的访问控制动作的更详细内容,在后面的<存储器访问处理>的项目的部分中使用流程图进行说明。
再次回到图1,继续说明虚拟计算机系统100的构成。
计时器108与内部总线120连接,由处理器101控制。
DMAC109与内部总线120连接,具有不经由处理器101而进行与第1接口121连接的输入装置131、与第2接口122连接的输出装置132及与第3接口123连接的外部集成电路等和存储器102之间的数据转发的功能。
内部总线120与MMU106、高速缓冲存储器105、存储器保护单元107、计时器108、第1接口121、第2接口122、第3接口123、DMAC109连接,具有传达这些连接的电路间的信号的功能。
第1接口121、第2接口122、第3接口123分别与内部总线120连接,分别具有中继内部总线120与输入装置131之间的信号的交换的功能、中继内部总线120与输出装置132之间的信号的交换的功能、中继与外部的集成电路等之间的信号的交换的功能。
输入装置131包括键盘、鼠标、摄像机、传感器等,与第1接口121连接,由处理器101控制,具有如下功能:通过键盘、鼠标、摄像机、传感器等生成与用户操作等对应的数据,并向处理器101发送表示发生了用户操作等的通知以及生成的数据。
输出装置132包括显示器、扬声器等,与第2接口122连接,由处理器101控制,具有使用显示器、扬声器等显示并输出字符串、图像、声音等的功能。
上述虚拟计算机系统100通过由处理器101执行存储在ROM103、RAM104中的程序,实现各种功能。
<程序模块构成>
图6是表示在某时刻t0在处理器101上成为执行对象的程序模块(以下简称为“模块”)的框图。
在该图中,模块群600是在处理器101中成为执行对象的模块的集合,模块群600所包含的各模块的对应的程序容纳在存储器102的存储区域中。
任务1A611、任务2A612、任务3A613、任务2B614、任务3C615分别是以处理器101的用户模式执行的任务。
OS1A621、OS1B622、OS1C623分别是在处理器101的管理员模式下执行的多任务对应操作系统。
管理器630是以处理器101的管理员模式执行的管理器。
在虚拟计算机系统100中,应用程序被以管理员模式执行的多任务对应操作系统进行执行控制,并以用户模式执行。此外,操作系统被管理器进行执行控制,并以管理员模式执行。
应用程序通过调用预先准备的操作系统调用例程,能够对操作系统委托规定的处理。此外,操作系统通过调用预先准备的管理器调用例程,能够对管理器委托规定的处理。
此外,由管理器对在虚拟计算机系统的执行时产生的例外或从外部装置产生的中断进行处理,并根据需要对虚拟计算机上的操作系统重新发布。
OS1A621对任务1A611、任务2A612、任务3A613进行执行控制,使由OS1A621、任务1A611、任务2A612、任务3A613构成的系统作为第1虚拟计算机601发挥功能。
OS1B622对任务2B614进行执行控制,使由OS1B622、任务2B614构成的系统作为第2虚拟计算机602发挥功能。
OS1C623对任务3C615进行执行控制,使由OS1C623、任务3C615构成的系统作为第3虚拟计算机603发挥功能。
在此,第2虚拟计算机602是以第1虚拟计算机601为母虚拟计算机、通过分叉方式生成的子虚拟计算机,第3虚拟计算机603是以第1虚拟计算机601为母虚拟计算机、通过分叉方式生成的子虚拟计算机。关于分叉方式的虚拟计算机的生成将在后面说明。
管理器630在内部包含VM(Virtual Machine:虚拟机、虚拟计算机)管理表保持部640、VM执行控制部650、VM存储器管理部660这3个模块,VM执行控制部650还包含VM启动部651、VM执行部652、VM结束部653、请求受理部654这4个模块,VM存储器管理部还包含保护设定信息保持部661、保护设定部662、COW(Copy On Write:写时复制)处理部663这3个模块。
VM管理表保持部640具有存储预先决定的应用组管理表、预先决定的虚拟计算机管理表、由VM执行部652生成的虚拟计算机状态表的功能。
图7是表示由VM管理表保持部640存储的应用组管理表700的数据构造的数据构造图。
如该图所示,应用组管理表700将应用组ID710和应用程序名720建立对应而构成。
应用程序名720是应用程序的名称,用于确定应用程序。
应用组ID710是用于识别由对应的应用程序名720确定的应用程序所属的应用程序组的识别符。
根据该应用组管理表700,例如记事簿、计算器、终端设定等名称的应用程序属于应用组ID为“1”的应用程序组,DTV(Digital Television)应用等名称的应用程序属于应用组ID为“2”的应用程序组。
图8是表示由VM管理表保持部640存储的虚拟计算机管理表800的数据构造的数据构造图。
如该图所示,虚拟计算机管理表800通过将VMID810和应用组ID820建立对应而构成。
应用组ID820是与应用组ID710同样的识别符。
VMID810是用于识别用来执行属于通过对应的应用组ID820识别的应用程序组的应用程序的虚拟计算机的识别符。
根据该虚拟计算机管理表800,例如以VMID810“1”识别的虚拟计算机是用于执行属于以应用组ID820“1”确定的应用程序组的应用程序和属于以“4”确定的应用程序组的应用程序的虚拟计算机。
图9是表示由VM管理表保持部640存储的虚拟计算机状态表900的数据构造的数据构造图。
如该图所示,虚拟计算机状态表900将VMID910和执行状态920建立对应而构成。
VMID910是用于识别虚拟计算机的识别符。
执行状态920是表示通过对应的VMID910识别的虚拟计算机的执行状态的信息,是如下3个信息中的某个信息:(1)表示虚拟计算机被启动而成为分时执行处理的对象、处于能够进行新的任务处理的状态的意思的信息(以下称为“执行中”)、(2)表示虚拟计算机未被启动的状态的意思的信息(以下称为“未启动”)、(3)表示虚拟计算机虽然被启动而成为分时执行处理的对象、但是用于使该虚拟计算机结束的结束处理为执行中、无法进行新的任务处理的状态的意思的信息(以下称为“结束处理中”)。在此,用于使虚拟计算机结束的结束处理是指,为了执行该虚拟计算机,将由管理器和虚拟计算机自身确保的存储区域释放的处理。
再次回到图6,继续说明在处理器101上成为执行对象的模块。
请求受理部654具有从执行中的虚拟计算机的操作系统受理新的应用程序的启动请求、并将受理了启动请求的意思的信号发送给VM启动部651的功能。
VM启动部651具有以下3个功能。
功能1:为了执行新的应用程序,基于成为母虚拟机的虚拟计算机,通过分叉方式生成新的子虚拟计算机。
在此,分叉方式的虚拟计算机的生成是指,以对成为母虚拟机的虚拟计算机分配的全部存储区域和对新生成的虚拟计算机分配的全部存储区域一一对应的方式,将对成为母虚拟机的虚拟计算机分配的存储区域映射到新生成的虚拟计算机的存储区域,从而生成新的虚拟计算机。另外,新生成虚拟计算机后,成为母虚拟机的虚拟计算机的存储区域和新生成的虚拟计算机的存储区域,由COW处理部663以写时复制(copy on write)方式进行管理。由该COW处理部663进行的存储区域的基于写时复制方式的管理的详细情况在后面说明。
功能2:为了执行新的应用程序而生成新的子虚拟计算机的情况下,参照存储在VM管理表保持部640中的应用组管理表700和虚拟计算机管理表800,对该新的虚拟计算机赋予作为用于识别该新的子虚拟计算机的识别符的VMID,将存储在VM管理表保持部640中的虚拟计算机状态表900更新,以使与赋予的VMID建立了对应的执行状态920成为“执行中”。
功能3:通过将处理器101初始化,在VM启动部651被启动的情况下,生成作为其他所有虚拟计算机的母虚拟机的虚拟计算机,并将用于识别生成的虚拟计算机的VMID设为“0”。
VM执行部652具有使用计时器108对多个虚拟计算机以分时执行控制方式进行执行控制的功能。
VM结束部653具有从虚拟计算机受理使该虚拟计算机结束的请求、即结束请求的功能;以及在受理了结束请求的情况下,对成为对象的虚拟计算机执行前述的结束处理而使该虚拟计算机结束的功能。
保护设定信息保持部661具有存储访问许可信息的功能。
图10是表示由保护设定信息保持部661存储的访问许可信息1000的数据构造的数据构造图。
如该图所示,访问许可信息1000通过将区域ID1010、VMID1020、访问信息(图中的NA、R/W、RO等)建立对应而构成。
该访问许可信息1000由预先决定的原始访问信息的部分(与区域ID1010为1~6对应的部分)和由COW处理部663对预先决定的原始访问信息追加的部分(与区域ID1010为1~6以外的区域ID1010对应的部分)构成。
区域ID1010与区域ID310同样,是用于识别存储器102的存储区域中的规定的存储区域的识别符。
VMID1020与VMID910同样,是用于识别虚拟计算机的识别符。
访问信息是表示关于对应的VMID1020识别的虚拟计算机的对由对应的区域ID1010识别的规定的存储区域进行的访问的限制的信息,与访问信息420同样,是R/W、RO、WO、NA这4个信息中的某1个信息。
根据该访问许可信息1000,例如对于以VMID1020为“1”识别的虚拟计算机,区域ID1010为“1”的规定的区域既不可以读出也不可以写入,区域ID1010为“2”的规定的区域可以读出但不可以写入,区域ID1010为“3”的规定的区域可以读出但不可以写入,区域ID1010为“4”的规定的区域既不可以读出也不可以写入。
保护设定部662具有以下2个功能。
功能1:在切换由VM执行部652执行的虚拟计算机的情况下,从由保护设定信息保持部661存储的访问许可信息1000中,读出与成为切换目标的虚拟计算机的VMID1020有关的、分别与区域ID1010建立了对应的访问信息,生成存储器保护信息400(参照图4),利用生成的存储器保护信息400来更新存储器保护单元107所存储的存储器保护信息400。
功能2:在COW处理部663更新由保护设定信息保持部661存储的访问许可信息1000的情况下,从由保护设定信息保持部661存储的访问许可信息1000中,读出与当前执行中的虚拟计算机的VMID有关的、分别与区域ID1010建立了对应的访问信息,生成存储器保护信息400,并利用生成的存储器保护信息400来更新存储器保护单元107所存储的存储器保护信息400。
COW处理部663具有以下2个功能。
功能1:对从虚拟计算机向存储区域的访问进行基于写时复制方式的访问管理。
在此,基于写时复制方式的访问管理是指如下的访问管理方法:对于母虚拟计算机的存储区域和子虚拟计算机的存储区域,不能由任一虚拟计算机改写的页被双方的虚拟计算机共用,而对于能够由某个虚拟计算机改写的页,将母虚拟计算机利用的页和子虚拟计算机利用的页分配到相互不同的存储区域而利用。
功能2:通过进行基于写时复制方式的访问管理,对虚拟计算机分配新的存储区域的情况下,将保护设定信息保持部661所保持的访问许可信息1000更新。
这时,以如下方式进行访问许可信息1000的更新:对于与新分配的存储区域对应的区域ID1010,与用于识别成为对象的虚拟计算机的VMID1020对应的访问信息为R/W,与用于识别成为对象的虚拟计算机以外的所有虚拟计算机的VMID1020对应的访问信息为NA。
另外,成为对象的虚拟计算机是执行未认证应用程序的虚拟计算机的情况下,为了从执行母虚拟计算机或认证应用程序的虚拟计算机监视该虚拟计算机及未认证应用程序的执行,也可以将新分配的存储器区域的访问信息设为RO或R/W。
在此,回到图6,对第2虚拟计算机602和第3虚拟计算机603的说明进行补充。
第2虚拟计算机602是为了执行任务2B614,而由VM启动部651以第1虚拟计算机601为母虚拟计算机通过分叉方式生成的虚拟计算机。
此外,第3虚拟计算机603是为了执行任务3C615,而由VM启动部651以第1虚拟计算机601为母虚拟计算机通过分叉方式生成的虚拟计算机。
任务2B614是伴随着第2虚拟计算机602的生成而基于任务2A612生成的任务,任务2A612所利用的存储区域和任务2B所利用的存储区域由COW处理部663以写时复制方式进行管理。
任务3C615是伴随着第3虚拟计算机603的生成而基于任务3A613生成的任务,任务3A613所利用的存储区域和任务3C所利用的存储区域由COW处理部663以写时复制方式进行管理。
OS1B622和OS1C623是与第1虚拟计算机601的OS1A621对应的操作系统,OS1B622伴随着第2虚拟计算机602的生成而生成,OS1C623伴随着第3虚拟计算机603的生成而生成,OS1A621所利用的存储区域、OS1B622所利用的存储区域、OS1C623所利用的存储区域由COW处理部663以写时复制方式进行管理。
以上那样构成的虚拟计算机系统100按照以下所示的存储器102的存储区域的利用方法,利用存储器102的存储区域。
<存储器102的存储区域的利用方法>
在此,使用附图说明虚拟计算机系统100中的存储器102的存储区域的利用方法。
图11是表示在时刻t0对于存储器102的存储区域中的被划分为规定的区域的各个存储区域的利用方法的、存储器102的存储区域图。
在该图中,管理器分配区域1101是区域ID310(参照图3)为“1”的规定的存储区域,与图5中的区域A501对应。此外,该区域被预先设定为管理器630的代码被容纳的区域、或由管理器630利用的存储区域。此外,根据由保护设定信息保持部661存储的访问许可信息1000中的原始访问信息的部分,对所有虚拟计算机预先设定既不可以读出也不可以写入的区域。
操作系统分配区域1102是区域ID310为“2”的规定的存储区域,与图5中的区域B502对应。而且,该区域被预先设定为成为处理器101的执行对象的操作系统的代码被容纳的区域、或由成为处理器101的执行对象的操作系统利用的存储区域。此外,该区域被预先设定为仅能够由管理员模式220的处理器101访问的区域。此外,根据由保护设定信息保持部661存储的访问许可信息1000中的原始访问信息的部分,预先设定为对VMID1020为“0”的虚拟计算机(即,作为所有其他虚拟计算机的母虚拟计算机的第1虚拟计算机601)既可以读出也可以写入的区域,对该虚拟计算机以外的所有虚拟计算机可以读出但不可以写入的区域。
第1种程序分配区域1103是区域ID310为“3”的规定的存储区域,与图5中的区域C503对应。而且,该区域预先设定为属于应用组ID为“1”的应用程序组的程序(以后称为“第1种程序”)被容纳的区域、或由第1种程序利用的存储区域。此外,根据由保护设定信息保持部661存储的访问许可信息1000中的原始访问信息的部分,预先设定为对VMID1020为“0”的虚拟计算机既可以读出也可以写入的区域,对VMID1020为“1”的虚拟计算机可以读出但不可以写入的区域,对其以外的所有虚拟计算机既不可以读出也不可以写入的区域。
第2种程序分配区域1104是区域ID310为“4”的规定的存储区域,与图5中的区域D504对应。而且,该区域预先设定为属于应用组ID为“2”的应用程序组的程序(以后称为“第2种程序”)被容纳的区域、或由第2种程序利用的存储区域。此外,根据由保护设定信息保持部661存储的访问许可信息1000中的原始访问信息的部分,预先设定为对VMID1020为“0”的虚拟计算机既可以读出也可以写入的区域,对VMID1020为“2”的虚拟计算机可以读出但不可以写入的区域,对其以外的所有虚拟计算机既不可以读出也不可以写入的区域。
第3种程序分配区域1105是区域ID310为“5”的规定的存储区域,与图5中的区域E505对应。而且,该区域预先设定为属于应用组ID为“3”的应用程序组的程序(以后称为“第3种程序”)被容纳的区域、或由第3种程序利用的存储区域。此外,根据由保护设定信息保持部661存储的访问许可信息1000中的原始访问信息的部分,预先设定为对VMID1020为“0”的虚拟计算机既可以读出也可以写入的区域,对VMID1020为“3”的虚拟计算机可以读出但不可以写入的区域,对其以外的所有虚拟计算机既不可以读出也不可以写入的区域。
IO区域1106至1108是区域ID310为“K”、“L”、“M”的规定的存储区域,与图5中的区域K506、L507、M508对应。该区域被预先设定为用于实现I/O仿真的区域,该I/O仿真是指,对于作为在虚拟计算机间共享器件控制的一个方式的、共享的I/O寄存器,在从应用程序或操作系统有I/O操作请求时,进行产生例外的访问设定,由管理器接收产生的例外,由管理器进行相应的I/O操作的调解及代理。此外,根据由保护设定信息保持部661存储的访问许可信息1000中的原始访问信息的部分,对于VMID1020为“0”的虚拟计算机,将IO区域1106至1108预先设定为既可以读出又可以写入的区域,对于该虚拟计算机以外的所有虚拟计算机,为了使IO区域1106成为用于实现读出和写入共享的区域,预先设定既不可以读出又不可以写入的区域,为了使IO区域1107成为实现仅写入共享的区域,预先设定可以读出但是不可以写入的区域,为了使IO区域1108成为实现仅读出共享的区域,预先设定不可以读出但可以写入的区域。
第2种程序的第1虚拟计算机用分配区域1111是区域ID310为“N”的规定的存储区域,与图5中的区域N511对应。该区域是通过由COW处理部663进行第2种程序的基于写时复制方式的访问管理,而对第1虚拟计算机601新分配的区域,通过COW处理部663更新由保护设定信息保持部661存储的访问许可信息1000来进行设定。
第2种程序的第2虚拟计算机用分配区域1112是区域ID310为“N+1”的规定的存储区域,与图5中的区域N+1(512)对应。该区域是通过由COW处理部663进行第2种程序的基于写时复制方式的访问管理,而对第2虚拟计算机602新分配的区域,通过COW处理部663更新由保护设定信息保持部661存储的访问许可信息1000来进行设定。
第3种程序的第1虚拟计算机用分配区域1113是区域ID310为“N+2”的规定的存储区域,与图5中的区域N+2(513)对应。该区域是通过由COW处理部663进行第3种程序的基于写时复制方式的访问管理,而对第1虚拟计算机601新分配的区域,通过COW处理部663更新由保护设定信息保持部661存储的访问许可信息1000而进行设定。
第3种程序的第3虚拟计算机用分配区域1114是区域ID310为“N+3”的规定的存储区域,与图5中的区域N+3(514)对应。该区域是通过由COW处理部663进行第3种程序的基于写时复制方式的访问管理,而对第3虚拟计算机603新分配的区域,通过COW处理部663更新由保护设定信息保持部661存储的访问许可信息1000而进行设定。
以下,参照附图说明虚拟计算机系统100所进行的动作。
<动作>
在此,说明虚拟计算机系统100所进行的动作中的、作为特征性动作的虚拟计算机切换处理、存储器访问处理、应用程序执行处理。
<虚拟计算机切换处理>
虚拟计算机切换处理是切换使处理器101执行的虚拟计算机的处理。
图12是虚拟计算机切换处理的流程图。
在进行虚拟计算机的分时执行处理的VM执行部652使用计时器108计测的时间经过了规定时间的情况下,或处理器101从处理器101的外部受理了向当前未执行的虚拟计算机的中断请求的情况下等,由VM执行部652开始虚拟计算机切换处理。
虚拟计算机切换处理开始后,VM执行部652确定成为切换目标的虚拟计算机(步骤S1200)。
步骤S1200的处理结束后,VM执行部652将处理器101的寄存器值保存到与当前执行中的虚拟计算机建立了对应的规定的存储区域中,并使当前执行中的虚拟计算机中断(步骤S1220)。在此,该规定的存储区域设置在存储器102的存储区域中的、仅能够由管理器102访问的管理器分配区域1101中。
步骤S1220的处理结束后,VM执行部652对于存储在高速缓冲存储器105中的数据,在回写(write back)处理之后进行闪存(步骤S1230)。另外,为了避免高速缓冲闪存导致的执行速度的降低,也可以限制每个虚拟计算机能够利用的高速缓冲区域,并省略步骤S1230。
步骤S1230的处理结束后,保护设定部662在步骤S1200的处理中,读出与由VM执行部652确定的成为切换目标的虚拟计算机的VMID1020(参照图10)有关的、分别与区域ID1010建立了对应的访问信息,生成存储器保护信息400(参照图4),并以生成的存储器保护信息400来更新存储器保护单元107所存储的存储器保护信息400(步骤S1240)。
步骤S1240的处理结束后,VM执行部652将保存在与成为切换目标的虚拟计算机建立了对应的规定的存储区域中的、处理器101的寄存器值恢复到处理器101的寄存器中(步骤S1250),并启动该虚拟计算机(步骤S1260)。另外,限制每个虚拟计算机能够利用的高速缓冲区域并省略步骤S1230的情况下,在本步骤S1260中切换高速缓冲区域。
VM执行部652结束步骤S1260的处理后,虚拟计算机系统100结束该虚拟计算机切换处理。
<存储器访问处理>
存储器访问处理是存储器保护单元107进行的向存储器102的存储区域的访问控制动作。
图13是存储器访问处理的流程图。
通过由存储器保护单元107经由内部总线120受理从处理器101向存储器102的存储区域的访问请求,开始存储器访问处理。
存储器访问处理开始后,存储器保护单元107参照存储的存储器保护表300(参照图3),确定所接受的访问请求的地址包含在由区域ID310识别的规定的区域中的哪个规定的区域中(步骤S1300)。
步骤S1300的处理结束后,存储器保护单元107参照存储的存储器保护信息400(参照图4),比较所接受的访问请求的访问种类(写入和读出的哪一个)和与识别确定的区域的区域ID410建立了对应的访问信息420(步骤S1310),调查所接受的访问请求的访问种类是否满足与识别确定的区域的区域ID410建立了对应的访问信息420(步骤S1320)。
在步骤S1320的处理中,所接受的访问请求的访问种类满足与识别确定的区域的区域ID410建立了对应的访问信息420的情况下(步骤S1320:是),存储器保护单元107执行所接受的访问请求(步骤S1330)。
在步骤S1320的处理中,所接受的访问请求的访问种类不满足与识别确定的区域的区域ID410建立了对应的访问信息420的情况下(步骤S1320:否),存储器保护单元107不执行所接受的访问请求,对处理器101进行不能执行向存储器区域的访问的意思的例外通知(步骤S1340)。
存储器保护单元107结束步骤S1330的处理的情况下,或结束步骤S1340的处理的情况下,虚拟计算机系统100结束该存储器访问处理。
<应用程序执行处理>
应用程序执行处理是如下的处理:在请求受理部654从执行中的虚拟计算机的操作系统受理了新的应用程序的启动请求的情况下,VM启动部651确定执行该新的应用程序的虚拟计算机,并对确定的虚拟计算机指示该新的应用程序的执行。
作为虚拟计算机的操作系统对请求受理部654进行新的应用程序的启动请求的情况的例子,例如有如下情况等:通过由利用虚拟计算机系统100的用户对输入装置131进行操作,被操作系统进行执行控制的任务向操作系统委托新的应用程序的启动的请求。
图14是应用程序执行处理的流程图。
通过由请求受理部654从执行中的虚拟计算机的操作系统受理新的应用程序的启动请求,开始应用程序执行处理。
请求受理部654受理新的应用程序的启动请求后,将受理了启动请求的意思的信号发送给VM启动部651。
VM启动部651接受到受理了启动请求的意思的信号后,参照由VM管理表保持部640存储的应用组管理表700(参照图7),确定该应用程序所属的应用程序组(步骤S1400),并且参照由VM管理表保持部640存储的虚拟计算机管理表800(参照图8),确定用于执行属于确定的应用组的应用程序的虚拟计算机(步骤S1410)。
步骤S1410的处理结束后,VM启动部651参照由VM管理表保持部640存储的虚拟计算机状态表900(参照图9),调查确定的虚拟计算机是否处于执行中(步骤S1420)。
在步骤S1420的处理中,确定的虚拟计算机不是执行中的情况下(步骤S1420:否),VM启动部651进一步参照由VM管理表保持部640存储的虚拟计算机状态表900,调查确定的虚拟计算机是否处于结束处理中(步骤S1430)。
在步骤S1430的处理中,确定的虚拟计算机是结束处理中的情况下(步骤S1430:是),VM启动部651待机,直到确定的虚拟计算机不再处于结束处理中(步骤S1430:重复“是”的处理)。
在步骤S1430的处理中,确定的虚拟计算机不是结束处理中的情况下(步骤S1430:否),VM启动部651以分叉方式生成确定的虚拟计算机(步骤S1440)。
在步骤S1420的处理中,在确定的虚拟计算机为执行中的情况下(步骤S1420:是),或步骤S1440的处理已结束的情况下,VM启动部651向确定的虚拟计算机的操作系统发送开始执行成为对象的应用的意思的信号(步骤S1450)。
VM启动部651结束步骤S1450的处理后,虚拟计算机系统100结束该应用程序执行处理。
<考察>
以下,使用具体例考察虚拟计算机系统100的动作。
作为具体例,考察在应用程序名720(参照图7)为“记事簿”的应用程序(以下简称为“记事簿”)及由记事簿利用的数据容纳在区域ID1010(参照图10)为“3”的规定的区域中、应用程序名720为“邮箱”的应用程序(以下简称为“邮箱”)及由邮箱利用的数据荣楠在区域ID1010为“5”的规定的区域中的情况下,在记事簿中包含有将邮箱启动并将记录在地址簿中的个人信息向外部流出的恶意软件的情况。
在虚拟计算机系统100中,记事簿属于应用组ID710为“1”的应用程序组(参照应用组管理表700(参照图7)),所以被VMID810为“1”的虚拟计算机(以下称为“虚拟计算机1”)执行(参照虚拟计算机管理表800(参照图8))。
在执行记事簿的虚拟计算机1中,记事簿中包含的恶意软件被执行时,该恶意软件尝试使邮箱启动。
但是,邮箱及由邮箱利用的数据容纳在区域ID1010为“5”的规定的区域中,来自虚拟计算机1的访问被存储器保护单元107禁止(参照图10的访问许可信息1000)。因此,恶意软件无法使邮箱启动,或将邮箱篡改,或访问由邮箱利用的数据。因此,恶意软件不会使记录在地址簿中的个人信息向外部流出。
这样,本实施方式1的虚拟计算机系统100,即使在作为虚拟计算机的执行对象的应用程序中包含恶意软件,也能够比以往更低地抑制由该恶意软件攻击不想被恶意软件攻击的应用程序的危险性。
<实施方式2>
<概要>
以下,作为本发明的虚拟计算机系统的一个实施方式,说明将实施方式1中的虚拟计算机系统100的一部分变形后的虚拟计算机系统1500。
实施方式2的虚拟计算机系统1500的硬件构成从实施方式1的虚拟计算机系统100部分变形,此外,执行的软件的一部分从实施方式1的虚拟计算机系统100部分变形。
实施方式1的虚拟计算机系统100是具备对向存储器102的存储区域的访问进行控制的存储器保护单元107的构成的例子,但是实施方式2是以下情况的例子:虚拟计算机系统1500不具备作为硬件的存储器保护单元,由处理器执行的管理器具有对向存储器102的存储区域的访问进行控制的功能。
以下,参照附图说明本实施方式2的虚拟计算机系统1500的构成,重点说明与实施方式1的虚拟计算机系统100的构成的不同点。
<硬件构成>
图15是表示虚拟计算机系统1500的主要的硬件构成的框图。
如该图所示,虚拟计算机系统1500与虚拟计算机系统100同样,作为硬件是计算机装置,从实施方式1的虚拟计算机系统100将集成电路110变形为集成电路1510。
<程序模块构成>
图16是表示在某时刻t0在处理器101上成为执行对象的模块的框图。
在该图中,模块群1600是在处理器101中成为执行对象的模块的集合,模块群1600所包含的模块分别为:对应的程序容纳在存储器102的存储区域中。
虚拟计算机系统1500中的模块群1600从实施方式1的虚拟计算机系统100中的模块群600将管理器630变更为管理器1630。
管理器1630从实施方式1的管理器630将VM存储器管理部660变更为VM存储器管理部1660。
VM存储器管理部1660相对于实施方式1的VM存储器管理部660,变形为追加了虚拟MMU1670和存储器保护部1680。
虚拟MMU1670与MMU106协作,具有用于指定存储器102的物理存储区域的地址的物理地址与用于指定处理器101所利用的逻辑存储区域的地址的逻辑地址的变换功能。
虚拟计算机系统1500设定为,对每个虚拟计算机单独分配逻辑存储区域而使虚拟计算机执行(以下,将对每个虚拟计算机单独分配的逻辑存储区域称为“一次逻辑存储区域”,将一次逻辑存储区域的地址称为“一次逻辑地址”),并且设定为,由MMU106将该一次逻辑地址变换为存储器102所利用的物理地址。
该虚拟MMU1670所具有的功能是指,将各虚拟计算机在本虚拟计算机内利用的逻辑存储地址(以下将该虚拟计算机在本虚拟计算机内利用的逻辑存储区域称为“二次逻辑存储区域”,将二次逻辑存储区域的地址称为“二次逻辑地址”)变换为上述一次逻辑地址。
存储器保护部1680具有:在内部存储存储器保护表300(参照图3)和存储器保护信息400(参照图4)的功能;以及参照存储的存储器保护表300和存储器保护信息400,对虚拟计算机使用一次逻辑地址进行的向存储器102的物理存储区域的访问进行控制的功能。
在此,存储器保护部1680的、参照存储器保护表300和存储器保护信息400进行的向存储器102的存储区域的访问控制,与实施方式1的存储器保护单元107所进行的向存储器102的存储区域的访问的控制(参照实施方式1中的<存储器访问处理>项目)相同,将存储器保护单元107置换为存储器保护部1680而成。因此,在此省略其说明。
上述构成的虚拟计算机系统1500与实施方式1的虚拟计算机系统100同样,即使在成为虚拟计算机的执行对象的应用程序中包含有恶意软件,与以往相比,能够更加抑制原本不想执行的应用程序被执行的危险性。
<实施方式3>
<概要>
以下,作为本发明的虚拟计算机系统的一个实施方式,说明将实施方式1中的虚拟计算机系统100的一部分变形后的变形虚拟计算机系统。
实施方式3的变形虚拟计算机系统的硬件构成与实施方式1的虚拟计算机系统100相同,但是执行的软件的一部分从实施方式1的虚拟计算机系统100部分变形。
该变形虚拟计算机系统是如下构成的虚拟计算机系统的例子:在执行多个虚拟计算机的情况下,也仅由执行的虚拟计算机中的1个虚拟计算机(在此为第1虚拟计算机)直接控制显示器、键盘等器件,其以外的虚拟计算机通过向第1虚拟计算机委托器件的控制,间接地对器件进行控制。
以下,参照附图说明本实施方式3的变形虚拟计算机系统的构成,重点说明与实施方式1的虚拟计算机系统100的构成的不同点。
图17是表示在某时刻t0在处理器101上成为执行对象的模块的框图。
在该图中,模块群1700是在处理器101中成为执行对象的模块的集合,模块群1700所包含的模块分别为:对应的程序容纳在存储器102的存储区域中。
变形虚拟计算机系统中的模块群1700从实施方式1的虚拟计算机系统100中的模块群600将第1虚拟计算机601变更为第1虚拟计算机1701,将第2虚拟计算机602变更为第2虚拟计算机1702,将第3虚拟计算机603变更为第3虚拟计算机1703。
第1虚拟计算机1701是VMID1020为“0”的、其他所有虚拟计算机的母虚拟计算机,从实施方式1中的第1虚拟计算机601将OS1A621变形为包含器件驱动器1731的OS1A1721。
第2虚拟计算机1702是为了执行任务2B614,由VM启动部651以第1虚拟计算机1701为母虚拟计算机通过分叉方式生成的虚拟计算机,从实施方式1中的第2虚拟计算机602将OS1B622变更为包含器件驱动器1732的OS1B1722。
第3虚拟计算机1703是为了执行任务3C615,由VM启动部651以第1虚拟计算机1701为母虚拟计算机通过分叉方式生成的虚拟计算机,从实施方式1中的第3虚拟计算机603将OS1C623变更为包含器件驱动器1733的OS1C1723。
器件驱动器1731由前端部1741、后端部1742、本地(native)部1743构成。另外,器件驱动器是指所谓的对器件进行控制的程序,但是在此还包含器件控制处理、文件系统处理、进程间通信处理、虚拟计算机间通信处理等实现虚拟计算机的输入输出功能的程序。
本地部1743由用于直接控制成为对象的器件的命令代码等构成,具有对器件进行控制的功能。
容纳有该程序的存储器102的存储区域通过由保护设定信息保持部661存储的访问许可信息1000(参照图10),而设定为仅对第1虚拟计算机1701来说访问信息为R/W,对其他虚拟计算机来说访问信息为NA。由此,本地部1743不会被第1虚拟计算机1701以外的虚拟计算机执行。
后端部1742具有在包含自身的虚拟计算机所包含的前端部及包含自身的虚拟计算机以外的虚拟计算机所包含的前端部与服务器客户端模型(server client model)之间进行通信的功能;从通信的前端部受理本地部1743的操作指令,并将受理的本地部1743的操作指令输出至本地部1743的功能;以及受理从本地部1743输出的数据,并向通信的前端部输出受理的数据的功能。
容纳有该程序的存储器102的存储区域通过由保护设定信息保持部661存储的访问许可信息1000,而设定为仅对第1虚拟计算机1701来说访问信息为R/W,对其他虚拟计算机来说访问信息为NA。由此,后端部1742不会被第1虚拟计算机1701以外的虚拟计算机执行。
前端部1741具有在后端部1742和服务器客户端模型之间进行通信的功能;向通信的后端部1742发送本地部1743的操作指令的功能;受理从通信的后端部输出的数据的功能。
容纳有该程序的存储器102的存储区域通过由保护设定信息保持部661存储的访问许可信息1000,设定为仅对第1虚拟计算机1701来说访问信息为R/W,对其他虚拟计算机来说访问信息为RO。由此,前端部能够被所有虚拟计算机执行(与图17中的前端部1741、前端部1744、前端部1745对应)。此外,前端部被多个虚拟计算机执行的情况下,容纳有前端部的存储器102的存储区域由COW处理部663以写时复制方式管理。
器件驱动器1732是伴随着第2虚拟计算机1702的生成而基于器件驱动器1731生成的,包含基于前端部1741生成的前端部1744。
器件驱动器1732不包含本地部和后端部,这是因为,容纳有本地部1743的存储器102的存储区域和容纳有后端部1742的存储器102的存储区域既不能从第2虚拟计算机1702读出也不能写入,所以器件驱动器1732无法执行本地部和后端部。
器件驱动器1733是伴随着第3虚拟计算机1703的生成而基于器件驱动器1731生成的,包含基于前端部1741生成的前端部1745。
器件驱动器1733不包含本地部和后端部,这是因为,容纳有本地部1743的存储器102的存储区域和容纳有后端部1742的存储器102的存储区域既不能从第3虚拟计算机1703读出也不能写入,所以器件驱动器1733无法执行本地部和后端部。
<器件控制例>
在此,说明不包含本地部1743的虚拟计算机、例如第2虚拟计算机1702间接地对器件进行控制的情况。
第2虚拟计算机1702间接地对器件进行控制的情况下,首先向前端部1744输出本地部1743的操作指令。前端部1744接受到本地部1743的操作指令后,通过服务器客户端模型与后端部1742进行通信,并将本地部1743的操作指令发送给后端部1742。后端部1742接受到本地部1743的操作指令后,向本地部1743输出本地部1743的操作指令。由此,第2虚拟计算机对器件进行操作。
这样,根据本实施方式3的变形虚拟计算机系统,即使在多个虚拟计算机成为执行对象的情况下,仅第1虚拟计算机1701的本地部1743对器件进行直接控制,能够排他性地进行器件控制。
<补充>
以上,作为本发明的虚拟计算机系统的一实施方式,在实施方式1、实施方式2、实施方式3中说明了3个虚拟计算机系统的例子,但是也可以如以下那样变形,本发明当然不限于上述实施方式所示的虚拟计算机系统。
(1)在实施方式1中,说明了虚拟计算机系统100具备1个处理器的情况的例子,但是只要管理器能够进行多个虚拟计算机的执行控制,则处理器的数量并不限于1个,例如也可以是2个、3个等多个。处理器的数量为多个的情况下,管理器并不是必须以分时来执行虚拟计算机,也可以是并行地执行多个虚拟计算机的结构。
(2)在实施方式1中,说明了将处理器101、存储器102、高速缓冲存储器105、MMU106、存储器保护单元107、计时器108、DMAC109、内部总线120、第1接口121、第2接口122、第3接口123集成在1个集成电路110中的情况的例子,但是这些电路并不是必须集成在1个集成电路中。例如,也可以将处理器101和高速缓冲存储器105集成在第1集成电路中,将其他电路集成在第2集成电路中,例如还可以是将各电路集成在相互不同的集成电路中的结构。
(3)在实施方式1中,以处理器101具备2个动作模式的构成的情况为例进行了说明,但是只要构成为能够以比执行应用程序的模式和执行操作系统的模式更高的特权模式来执行管理器,动作模式的数并不限于2个,例如也可以是3个以上。这种情况下,能够将执行管理器的动作模式设为比执行操作系统更高的特权模式,能够大幅减轻管理器中的虚拟MMU处理、I/O仿真处理的系统开销。
(4)在实施方式1中,以第1虚拟计算机601成为其他所有虚拟计算机的母虚拟机的构成的情况为例进行了说明,对于生成的各个子虚拟计算机,只要能够实现向存储器102的存储区域的访问限制,成为母虚拟机的虚拟计算机并不限于第1虚拟计算机601,例如成为某虚拟计算机的子虚拟计算机的虚拟计算机也可以成为其他虚拟计算机的母虚拟机。
(5)在实施方式1中,举出了以分叉方式生成虚拟计算机的构成的情况来进行说明。这是因为,通过以分叉方式来生成虚拟计算机,能够有效地利用存储器102的存储区域。
但是,如果允许存储器102的存储区域的利用效率的非效率性,则基于成为母虚拟机的虚拟计算机来生成子虚拟计算机的情况下,并不限于以分叉形式进行。
作为一例,可以想到以对成为母虚拟机的虚拟计算机分配的所有存储区域和对新生成的虚拟计算机分配的所有存储区域一一对应的方式,将对成为母虚拟机的虚拟计算机分配的存储区域拷贝到新生成的虚拟计算机的存储区域,从而生产新的虚拟计算机的形式等。
此外,这样,在子虚拟计算机的存储区域是从母虚拟计算机的存储区域拷贝而来的情况下等,这些存储区域并不需要以写时复制方式来管理。
(6)在实施方式2中,以具有进行二次逻辑地址与一次逻辑地址的变换的功能的虚拟MMU1670包含在管理器1630的内部的情况为例进行了说明,但是只要能够实现二次逻辑地址与一次逻辑地址的变换的功能,虚拟MMU1670并不一定要包含在管理器1630的内部,例如也可以构成为在集成电路1510内具备具有进行二次逻辑地址与一次逻辑地址的变换的功能的硬件。
(7)以下,进一步说明本发明的一实施方式的虚拟计算机系统的构成及其变形例和各效果。
(a)本发明的一实施方式的虚拟计算机系统的特征在于:具备:存储装置;处理器,与该存储装置连接;以及管理器(hypervisor),在该处理器上执行,使该处理器进行多个虚拟计算机的执行控制;该虚拟计算机系统具备访问控制部,对从虚拟计算机向所述存储装置的存储区域的访问进行控制;所述存储装置包括容纳第1种程序的第1存储区域和容纳第2种程序的第2存储区域;所述管理器包括:启动请求受理部,用于从虚拟计算机受理第1种程序或第2种程序的启动请求;以及虚拟计算机生成部,在由所述处理器执行的所述启动请求受理部受理了第1种程序的启动请求时,生成用于执行该第1种程序的虚拟计算机,并将该生成的虚拟计算机作为第1种虚拟计算机来管理,在受理了第2种程序的启动请求时,生成用于执行该第2种程序的虚拟计算机,并将该生成的虚拟计算机作为第2种虚拟计算机来管理;所述访问控制部以如下方式进行所述访问的控制:禁止从由所述处理器执行的所述虚拟计算机生成部作为所述第1种虚拟计算机来管理的虚拟计算机向所述第2存储区域的访问。
根据具备上述构成的本实施方式的虚拟计算机系统,将未认证应用程序作为第1种程序容纳在第1存储区域中,将已认证应用程序作为第2种程序容纳在第2存储区域中,从而执行未认证应用程序的虚拟计算机无法访问已认证应用程序。
因此,在成为虚拟计算机的执行对象的应用程序中,即使同时存在已认证应用程序和未认证应用程序,与以往相比,也能够抑制由于未认证应用程序所包含的恶意软件被执行而已认证应用程序被攻击的危险性。
图18是上述变形例中的虚拟计算机系统1800的概略构成图。
如该图所示,虚拟计算机系统1800由处理器1801、访问控制部1802、存储装置1803构成。并且,存储装置1803包含第1存储区域1811、第2存储区域1812,加载有管理器1813。此外,管理器1813包含启动请求受理部1822和虚拟计算机生成部1822。
处理器1801是经由访问控制部1802与存储装置1803连接的处理器。作为一例,作为实施方式1中的处理器101(参照图1)实现。
存储装置1803包含第1存储区域1811和第2存储区域1812。作为一例,作为实施方式1中的存储器102(参照图1)实现。
第1存储区域1811是容纳第1种程序的存储区域。该第1存储区域1811作为一例,作为实施方式1中的区域C503(参照图5)实现。此外,第1种程序作为一例,作为实施方式1中的记事簿(参照图7)实现。
第2存储区域1812是容纳第2种程序的存储区域。该第2存储区域1812作为一例,作为实施方式1中的区域E505(参照图5)实现。此外,第2种程序作为一例,作为实施方式1中的邮箱(参照图7)实现。
管理器1813在处理器1801上执行,是使处理器1801进行多个虚拟计算机的执行控制的管理器,包含启动请求受理部1822和虚拟计算机生成部1822。该管理器1813作为一例,作为实施方式1中的管理器630(参照图6)实现。
启动请求受理部1822是从虚拟计算机受理第1种程序或第2种程序的启动请求的代码群。作为一例,作为实施方式1中的请求受理部654实现。
虚拟计算机生成部1823是用于进行以下处理的代码群:在由1801处理器执行的启动请求受理部1822受理了第1种程序的启动请求的情况下,生成用于执行该第1种程序的虚拟计算机,并将该生成的虚拟计算机作为第1种虚拟计算机来管理,在受理了第2种程序的启动请求的情况下,生成用于执行该第2种程序的虚拟计算机,将该生成的虚拟计算机作为第2种虚拟计算机来管理。作为一例,作为实施方式1中的VM启动部651和VM执行部652来实现。
访问控制部1802具有如下功能:将从虚拟计算机向存储装置1803的存储区域的访问控制为,禁止从由处理器1801执行的虚拟计算机生成部1823作为所述第1种虚拟计算机管理的虚拟计算机向所述第2存储区域的访问。作为一例,作为实施方式1中的存储器保护单元107(参照图1)实现。
(b)此外,也可以是,所述访问控制部具有第2区域确定信息存储部,用于存储确定所述第2存储区域的地址的第2区域确定信息,所述访问控制部参照存储在所述第2区域确定信息存储部中的所述第2区域确定信息,进行所述访问的控制。
通过采用这样的构成,访问控制部不用参照访问控制部的外部,就能够确定第2存储区域的地址。
(c)此外,也可以是,所述存储装置包含程序对应信息存储区域,该程序对应信息存储区域用于存储程序对应信息,该程序对应信息将确定程序的信息和确定程序的种类的信息建立对应,所述虚拟计算机生成部包含程序种类确定部,该程序种类确定部在由所述处理器执行的所述启动请求受理部从虚拟计算机受理了程序的启动请求的情况下,基于存储在所述程序对应信息存储区域中的程序对应信息,确定该程序是哪个种类的程序,该虚拟计算机生成部基于由所述程序种类确定部确定的程序的种类,在由所述处理器执行的所述启动请求受理部受理了第1种程序的启动请求的情况下,对所述生成的虚拟计算机进行作为第1种虚拟计算机的管理,在由所述处理器执行的所述启动请求受理部受理了第2种程序的启动请求的情况下,对所述生成的虚拟计算机进行作为第2种虚拟计算机的管理。
通过采用这样的构成,虚拟计算机生成部能够基于存储在程序对应信息存储区域中的程序对应信息,进行虚拟计算机的种类管理。
(d)此外,也可以是,所述虚拟计算机生成部在由所述处理器执行的所述启动请求受理部从虚拟计算机受理了第1种程序或第2种程序的启动请求的情况下,在生成虚拟计算机时,以基于对所述启动请求的请求源虚拟计算机分配的所述存储装置中的存储区域的分叉方式,对该生成的虚拟计算机进行所述存储装置中的存储区域的分配。
通过采用这样的构成,以分叉方式进行新的虚拟计算机的生成,所以能够提高存储装置的存储区域的利用效率。
(e)此外,也可以是,在所述管理器包含写时复制执行控制部,该写时复制执行控制部在由所述处理器执行的所述虚拟计算机生成部以基于对第2虚拟计算机分配的所述存储装置中的存储区域的分叉方式对第1虚拟计算机进行存储区域的分配的情况下,以通过写时复制方式进行由所述第1虚拟计算机和所述第2虚拟计算机进行的向所述存储装置中的存储区域的访问的方式,控制从虚拟计算机向所述存储装置中的存储区域的访问。
通过采用这样的构成,以写时复制方式进行母虚拟计算机向存储区域的访问和基于母虚拟计算机以分叉方式生成的子虚拟计算机向存储区域的管理,所以能够提高存储装置的存储区域的利用效率。
(f)此外,也可以是,所述第1存储区域还包含存储由虚拟计算机执行所述第1种程序而利用的数据的存储区域,所述第2存储区域还包含由虚拟计算机执行所述第2种程序而利用的数据的存储区域。
通过采用这样的构成,能够使执行第1种程序的虚拟计算机无法利用执行第2种程序的虚拟计算机所利用的数据。
(g)此外,也可以是,所述存储装置还包含:器件驱动器存储区域,存储器件驱动器;以及器件控制程序存储区域,存储器件控制程序,通过由执行存储在所述器件驱动器存储区域中的所述器件驱动器的虚拟计算机以外的虚拟计算机执行该器件控制程序,与执行所述器件驱动器的虚拟计算机进行通信,使执行所述器件驱动器的虚拟计算机进行器件的控制;所述访问控制部以如下方式进行所述访问的控制:仅限作为执行控制对象的虚拟计算机中的1个虚拟计算机,许可向所述器件驱动器存储区域的访问。
通过采用这样的构成,能够排他性地进行由多个虚拟计算机进行的器件控制。
工业实用性
本发明能够广泛应用于虚拟计算机系统。
标记说明
100虚拟计算机系统
110集成电路
101处理器
102存储器
103ROM
104RAM
105高速缓冲存储器
106MMU
107存储器保护单元
108计时器
109DMAC
120内部总线
600模块群
601第1虚拟计算机
602第2虚拟计算机
603第3虚拟计算机
630管理器
640VM管理表保持部
650VM执行控制部
651VM启动部
652VM执行部
653VM结束部
654请求受理部
660VM存储器管理部
661保护设定信息保持部
662保护设定部
663COW处理部

Claims (10)

1.一种虚拟计算机系统,其特征在于,具备:
存储装置;
处理器,与该存储装置连接;以及
管理器,在该处理器上执行,使该处理器进行多个虚拟计算机的执行控制;
该虚拟计算机系统具备访问控制部,该访问控制部对从虚拟计算机向所述存储装置的存储区域的访问进行控制;
所述存储装置包括容纳第1种程序的第1存储区域和容纳第2种程序的第2存储区域;
所述管理器包括:
启动请求受理部,用于从虚拟计算机受理第1种程序或第2种程序的启动请求;以及
虚拟计算机生成部,在由所述处理器执行的所述启动请求受理部受理了第1种程序的启动请求时,生成用于执行该第1种程序的虚拟计算机,并将该生成的虚拟计算机作为第1种虚拟计算机来管理,在由所述处理器执行的所述启动请求受理部受理了第2种程序的启动请求时,生成用于执行该第2种程序的虚拟计算机,并将该生成的虚拟计算机作为第2种虚拟计算机来管理;
所述访问控制部以如下方式进行所述访问的控制:禁止从由所述处理器执行的所述虚拟计算机生成部作为所述第1种虚拟计算机来管理的虚拟计算机向所述第2存储区域的访问。
2.如权利要求1所述的虚拟计算机系统,其特征在于,
所述访问控制部具有第2区域确定信息存储部,该第2区域确定信息存储部用于存储第2区域确定信息,该第2区域确定信息用于确定所述第2存储区域的地址,所述访问控制部参照存储在所述第2区域确定信息存储部中的所述第2区域确定信息,进行所述访问的控制。
3.如权利要求2所述的虚拟计算机系统,其特征在于,
所述存储装置包含程序对应信息存储区域,该程序对应信息存储区域用于存储程序对应信息,该程序对应信息将用于确定程序的信息与用于确定程序的种类的信息建立对应,
所述虚拟计算机生成部包含程序种类确定部,该程序种类确定部在由所述处理器执行的所述启动请求受理部从虚拟计算机受理了程序的启动请求的情况下,基于存储在所述程序对应信息存储区域中的程序对应信息,确定该程序是哪个种类的程序,
所述虚拟计算机生成部基于由所述程序种类确定部确定的程序的种类,在由所述处理器执行的所述启动请求受理部受理了第1种程序的启动请求的情况下将所述生成的虚拟计算机作为第1种虚拟计算机来管理,在由所述处理器执行的所述启动请求受理部受理了第2种程序的启动请求的情况下,将所述生成的虚拟计算机作为第2种虚拟计算机来管理。
4.如权利要求3所述的虚拟计算机系统,其特征在于,
所述虚拟计算机生成部在由所述处理器执行的所述启动请求受理部从虚拟计算机受理了第1种程序或第2种程序的启动请求的情况下,在生成虚拟计算机时,以基于对所述启动请求的请求源虚拟计算机分配的所述存储装置中的存储区域的分叉方式,对该生成的虚拟计算机进行所述存储装置中的存储区域的分配。
5.如权利要求4所述的虚拟计算机系统,其特征在于,
所述管理器包括写时复制执行控制部,该写时复制执行控制部在由所述处理器执行的所述虚拟计算机生成部以基于对第2虚拟计算机分配的所述存储装置中的存储区域的分叉方式对第1虚拟计算机进行存储区域的分配的情况下,以通过写时复制方式进行由所述第1虚拟计算机和所述第2虚拟计算机进行的向所述存储装置中的存储区域的访问的方式,对从虚拟计算机向所述存储装置中的存储区域的访问进行控制。
6.如权利要求5所述的虚拟计算机系统,其特征在于,
所述第1存储区域还包含存储由虚拟计算机执行所述第1种程序而利用的数据的存储区域,
所述第2存储区域还包含由虚拟计算机执行所述第2种程序而利用的数据的存储区域。
7.如权利要求5所述的虚拟计算机系统,其特征在于,
所述存储装置还包含:
器件驱动器存储区域,存储器件驱动器;以及
器件控制程序存储区域,存储器件控制程序,由除了执行存储在所述器件驱动器存储区域中的所述器件驱动器的虚拟计算机以外的虚拟计算机执行该器件控制程序,从而与执行所述器件驱动器的虚拟计算机进行通信,使执行所述器件驱动器的虚拟计算机进行器件的控制;
所述访问控制部以如下方式进行所述访问的控制:仅许可作为执行控制对象的虚拟计算机中的1个虚拟计算机向所述器件驱动器存储区域访问。
8.一种虚拟计算机控制方法,对虚拟计算机系统进行控制,其特征在于,该虚拟计算机系统具备:
存储装置;
处理器,与该存储装置连接;以及
管理器,在该处理器上执行,使该处理器进行多个虚拟计算机的执行控制;
该虚拟计算机系统具备访问控制部,该访问控制部对从虚拟计算机向所述存储装置的存储区域的访问进行控制;
所述存储装置包括容纳第1种程序的第1存储区域和容纳第2种程序的第2存储区域;
所述虚拟计算机控制方法包括:
启动请求受理步骤,所述管理器受理第1种程序或第2种程序的启动请求;
虚拟计算机生成步骤,在所述管理器在所述启动请求受理步骤中受理了第1种程序的启动请求时,生成用于执行该第1种程序的虚拟计算机,并将该生成的虚拟计算机作为第1种虚拟计算机来管理,在所述管理器在所述启动请求受理步骤中受理了第2种程序的启动请求时,生成用于执行该第2种程序的虚拟计算机,并将该生成的虚拟计算机作为第2种虚拟计算机来管理;以及
访问控制步骤,所述访问控制部以如下方式进行所述访问的控制:禁止从由所述处理器执行的所述虚拟计算机生成部作为所述第1种虚拟计算机来管理的虚拟计算机向所述第2存储区域的访问。
9.一种虚拟计算机控制程序,用于对虚拟计算机系统进行控制,其特征在于,该虚拟计算机系统具备:
存储装置;
处理器,与该存储装置连接;以及
管理器,在该处理器上执行,使该处理器进行多个虚拟计算机的执行控制;
该虚拟计算机系统具备访问控制部,该访问控制部对从虚拟计算机向所述存储装置的存储区域的访问进行控制;
所述存储装置包括容纳第1种程序的第1存储区域和容纳第2种程序的第2存储区域;
所述虚拟计算机控制程序包括:
启动请求受理步骤,所述管理器受理第1种程序或第2种程序的启动请求;以及
虚拟计算机生成步骤,在所述管理器在所述启动请求受理步骤中受理了第1种程序的启动请求时,生成用于执行该第1种程序的虚拟计算机,并将该生成的虚拟计算机作为第1种虚拟计算机来管理,在所述管理器在所述启动请求受理步骤中受理了第2种程序的启动请求时,生成用于执行该第2种程序的虚拟计算机,并将该生成的虚拟计算机作为第2种虚拟计算机来管理;以及
访问控制步骤,所述访问控制部以如下方式进行所述访问的控制:禁止从由所述处理器执行的所述虚拟计算机生成部作为所述第1种虚拟计算机来管理的虚拟计算机向所述第2存储区域的访问。
10.一种半导体集成电路,其特征在于,具备:
存储装置;
处理器,与该存储装置连接;以及
管理器,在该处理器上执行,使该处理器进行多个虚拟计算机的执行控制;
该半导体集成电路具备访问控制部,该访问控制部对从虚拟计算机向所述存储装置的存储区域的访问进行控制;
所述存储装置包括容纳第1种程序的第1存储区域和容纳第2种程序的第2存储区域;
所述管理器包括:
启动请求受理部,用于从虚拟计算机受理第1种程序或第2种程序的启动请求;以及
虚拟计算机生成部,在由所述处理器执行的所述启动请求受理部受理了第1种程序的启动请求时,生成用于执行该第1种程序的虚拟计算机,并将该生成的虚拟计算机作为第1种虚拟计算机来管理,在由所述处理器执行的所述启动请求受理部受理了第2种程序的启动请求时,生成用于执行该第2种程序的虚拟计算机,并将该生成的虚拟计算机作为第2种虚拟计算机来管理;
所述访问控制部以如下方式进行所述访问的控制:禁止从由所述处理器执行的所述虚拟计算机生成部作为所述第1种虚拟计算机来管理的虚拟计算机向所述第2存储区域的访问。
CN201180020496.3A 2011-03-02 2011-09-12 虚拟计算机系统、虚拟计算机控制方法、及半导体集成电路 Active CN102859502B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011-045323 2011-03-02
JP2011045323 2011-03-02
PCT/JP2011/005108 WO2012117465A1 (ja) 2011-03-02 2011-09-12 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、及び半導体集積回路

Publications (2)

Publication Number Publication Date
CN102859502A true CN102859502A (zh) 2013-01-02
CN102859502B CN102859502B (zh) 2016-03-23

Family

ID=46757435

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180020496.3A Active CN102859502B (zh) 2011-03-02 2011-09-12 虚拟计算机系统、虚拟计算机控制方法、及半导体集成电路

Country Status (4)

Country Link
US (1) US20120331465A1 (zh)
JP (1) JP5981845B2 (zh)
CN (1) CN102859502B (zh)
WO (1) WO2012117465A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104881374A (zh) * 2014-02-27 2015-09-02 三星电子株式会社 自加密驱动器和包括自加密驱动器的用户装置
CN105190570A (zh) * 2013-02-22 2015-12-23 比特梵德知识产权管理有限公司 用于虚拟机器的完整性保护的存储器自省引擎
CN113141777A (zh) * 2019-09-25 2021-07-20 株式会社日立制作所 计算机系统、数据控制方法及存储介质

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5679190B2 (ja) * 2011-03-25 2015-03-04 日本電気株式会社 ホスト計算機、分散処理システム、及びi/o制御方法
JP5981984B2 (ja) * 2012-02-22 2016-08-31 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 仮想計算機システム、秘匿情報保護方法及び秘匿情報保護プログラム
US9262195B2 (en) * 2012-02-28 2016-02-16 Red Hat Israel, Ltd. Manageable external wake of virtual machines
JP5914145B2 (ja) * 2012-05-01 2016-05-11 ルネサスエレクトロニクス株式会社 メモリ保護回路、処理装置、およびメモリ保護方法
US9009705B2 (en) 2012-10-01 2015-04-14 International Business Machines Corporation Authenticated distribution of virtual machine images
EP2960784A4 (en) * 2013-02-21 2016-09-14 Nec Corp VIRTUALIZATION SYSTEM
US9535728B2 (en) * 2013-03-18 2017-01-03 International Business Machines Corporation Scalable policy management in an edge virtual bridging (EVB) environment
US9529612B2 (en) * 2013-03-18 2016-12-27 International Business Machines Corporation Scalable policy assignment in an edge virtual bridging (EVB) environment
US9495180B2 (en) * 2013-05-10 2016-11-15 Fireeye, Inc. Optimized resource allocation for virtual machines within a malware content detection system
CN104657193B (zh) 2013-11-21 2018-07-20 华为技术有限公司 一种访问物理资源的方法和装置
US9323565B2 (en) 2013-12-20 2016-04-26 Vmware, Inc. Provisioning customized virtual machines without rebooting
US10977063B2 (en) 2013-12-20 2021-04-13 Vmware, Inc. Elastic compute fabric using virtual machine templates
KR102249262B1 (ko) * 2014-02-07 2021-05-07 오라클 인터내셔날 코포레이션 클라우드 서비스 커스텀 실행 환경
US9626212B2 (en) * 2014-06-28 2017-04-18 Vmware, Inc. Live migration of virtual machines with memory state sharing
US9578032B2 (en) * 2014-08-23 2017-02-21 Vmware, Inc. Application publishing using memory state sharing
US9619268B2 (en) * 2014-08-23 2017-04-11 Vmware, Inc. Rapid suspend/resume for virtual machines via resource sharing
CN104573421B (zh) * 2014-12-30 2017-12-22 北京兆易创新科技股份有限公司 一种基于若干分区的mcu芯片信息保护方法和装置
DE102015210539A1 (de) * 2015-06-09 2016-12-15 Robert Bosch Gmbh Speicherschutzeinheit, Speicherverwaltungseinheit und Mikrocontroller
GB2539428B (en) 2015-06-16 2020-09-09 Advanced Risc Mach Ltd Data processing apparatus and method with ownership table
GB2539436B (en) * 2015-06-16 2019-02-06 Advanced Risc Mach Ltd Secure initialisation
GB2539429B (en) 2015-06-16 2017-09-06 Advanced Risc Mach Ltd Address translation
GB2539435B8 (en) 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Data processing memory access control, in which an owning process for a region of memory is specified independently of privilege level
GB2539433B8 (en) 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Protected exception handling
GB201513039D0 (en) * 2015-07-23 2015-09-09 Eaton Ind France Sas Shutting down of a virtual system
JP6504984B2 (ja) * 2015-09-28 2019-04-24 ルネサスエレクトロニクス株式会社 データ処理装置
CN108139982B (zh) 2016-05-31 2022-04-08 安华高科技股份有限公司 多信道输入/输出虚拟化
US10241931B2 (en) * 2016-07-29 2019-03-26 Advanced Micro Devices, Inc. Controlling access to pages in a memory in a computing device
US10261821B2 (en) * 2016-12-02 2019-04-16 Dell Products L.P. System and method to expose remote virtual media partitions to virtual machines
JP6841703B2 (ja) * 2017-03-29 2021-03-10 アドソル日進株式会社 コンピュータ装置
JP2020149526A (ja) * 2019-03-15 2020-09-17 株式会社東芝 処理装置、処理方法及びプログラム
JP2020149597A (ja) * 2019-03-15 2020-09-17 株式会社デンソーテン 制御装置および制御方法
DE102022205137A1 (de) 2022-05-23 2023-11-23 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Überwachen von Zugriffsanfragen für sicherheitskritische Zugriffe in einer Recheneinheit
CN116107668B (zh) * 2023-04-13 2023-08-15 紫光同芯微电子有限公司 一种应用程序运行方法及其系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040181682A1 (en) * 2002-11-18 2004-09-16 Arm Limited Diagnostic data capture control for multi-domain processors
US20090125902A1 (en) * 2007-03-01 2009-05-14 Ghosh Anup K On-demand disposable virtual work system
US20090300599A1 (en) * 2008-05-30 2009-12-03 Matthew Thomas Piotrowski Systems and methods of utilizing virtual machines to protect computer systems

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275938B1 (en) * 1997-08-28 2001-08-14 Microsoft Corporation Security enhancement for untrusted executable code
JP2002073358A (ja) * 2000-09-04 2002-03-12 Hitachi Ltd 仮想計算機主記憶のアクセス制御方法
US7647589B1 (en) * 2005-02-07 2010-01-12 Parallels Software International, Inc. Methods and systems for safe execution of guest code in virtual machine context
US7984438B2 (en) * 2006-02-08 2011-07-19 Microsoft Corporation Virtual machine transitioning from emulating mode to enlightened mode
US8112527B2 (en) * 2006-05-24 2012-02-07 Nec Corporation Virtual machine management apparatus, and virtual machine management method and program
US8336046B2 (en) * 2006-12-29 2012-12-18 Intel Corporation Dynamic VM cloning on request from application based on mapping of virtual hardware configuration to the identified physical hardware resources
JP4557178B2 (ja) * 2007-03-02 2010-10-06 日本電気株式会社 仮想マシン管理システム、その方法及びそのプログラム
JP5166169B2 (ja) * 2008-08-27 2013-03-21 株式会社日立製作所 ハイパバイザを有する計算機システム
JP4787341B2 (ja) * 2009-02-18 2011-10-05 株式会社エヌ・ティ・ティ・ドコモ データ処理装置、データ処理方法、データ処理プログラム
EP3002703B1 (en) * 2009-12-14 2017-08-30 Citrix Systems Inc. Methods and systems for communicating between trusted and non-trusted virtual machines
US8689349B2 (en) * 2010-05-05 2014-04-01 Intel Corporation Information flow tracking and protection

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040181682A1 (en) * 2002-11-18 2004-09-16 Arm Limited Diagnostic data capture control for multi-domain processors
US20090125902A1 (en) * 2007-03-01 2009-05-14 Ghosh Anup K On-demand disposable virtual work system
US20090300599A1 (en) * 2008-05-30 2009-12-03 Matthew Thomas Piotrowski Systems and methods of utilizing virtual machines to protect computer systems

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105190570A (zh) * 2013-02-22 2015-12-23 比特梵德知识产权管理有限公司 用于虚拟机器的完整性保护的存储器自省引擎
CN105190570B (zh) * 2013-02-22 2018-02-13 比特梵德知识产权管理有限公司 用于虚拟机器的完整性保护的存储器自省引擎
CN104881374A (zh) * 2014-02-27 2015-09-02 三星电子株式会社 自加密驱动器和包括自加密驱动器的用户装置
CN113141777A (zh) * 2019-09-25 2021-07-20 株式会社日立制作所 计算机系统、数据控制方法及存储介质

Also Published As

Publication number Publication date
US20120331465A1 (en) 2012-12-27
JP5981845B2 (ja) 2016-08-31
WO2012117465A1 (ja) 2012-09-07
CN102859502B (zh) 2016-03-23
JPWO2012117465A1 (ja) 2014-07-07

Similar Documents

Publication Publication Date Title
CN102859502A (zh) 虚拟计算机系统、虚拟计算机控制方法、虚拟计算机控制程序及半导体集成电路
US20230128711A1 (en) Technologies for trusted i/o with a channel identifier filter and processor-based cryptographic engine
US9460270B2 (en) Generating child virtual machine to execute authorized application with reduced risk of malware attack
RU2640300C2 (ru) Движок интроспекции памяти для защиты целостности виртуальных машин
US20230025159A1 (en) Controlling just in time access to a cluster
US9672162B2 (en) Data processing systems
US20160092678A1 (en) Protecting Application Secrets from Operating System Attacks
KR101323858B1 (ko) 가상화 시스템에서 메모리 접근을 제어하는 장치 및 방법
US10055361B2 (en) Memory controller for providing a plurality of defined areas of a mass storage medium as independent mass memories to a master operating system core for exclusive provision to virtual machines
CN104881596A (zh) 在安全处理环境中修改存储器权限
JP2005018770A (ja) システム・オン・チップのためのセキュリティ・アーキテクチャ
US10565130B2 (en) Technologies for a memory encryption engine for multiple processor usages
KR101213572B1 (ko) 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법
WO2015070560A1 (zh) 基于多核处理器的密钥保护方法及系统
CN113434453A (zh) 片上系统及其操作方法
CN109558372B (zh) 用于安全处理器的设备和方法
US10552345B2 (en) Virtual machine memory lock-down
CN113094700A (zh) 执行安全操作的系统以及系统执行安全操作的方法
Jin et al. H-svm: Hardware-assisted secure virtual machines under a vulnerable hypervisor
CN117234729B (zh) 动态内存保护方法、装置、计算机设备及存储介质
KR101535792B1 (ko) 운영체제 구성 장치 및 방법
KR101467877B1 (ko) 하이퍼바이저를 이용한 프로세스 메모리 보안 시스템 및 방법
KR101108078B1 (ko) 멀티 유저 컴퓨터의 망 전환 시스템
US20230098991A1 (en) Systems, methods, and media for protecting applications from untrusted operating systems
JP2005209178A (ja) メモリ保護装置、メモリ保護方法及びメモリ保護プログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MATSUSHITA ELECTRIC (AMERICA) INTELLECTUAL PROPERT

Free format text: FORMER OWNER: MATSUSHITA ELECTRIC INDUSTRIAL CO, LTD.

Effective date: 20141009

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20141009

Address after: Seaman Avenue Torrance in the United States of California No. 2000 room 200

Applicant after: PANASONIC INTELLECTUAL PROPERTY CORPORATION OF AMERICA

Address before: Osaka Japan

Applicant before: Matsushita Electric Industrial Co.,Ltd.

C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: Seaman Avenue Torrance in the United States of California No. 20000 room 200

Applicant after: PANASONIC INTELLECTUAL PROPERTY CORPORATION OF AMERICA

Address before: Seaman Avenue Torrance in the United States of California No. 2000 room 200,

Applicant before: PANASONIC INTELLECTUAL PROPERTY CORPORATION OF AMERICA

COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM:

C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20170302

Address after: American New York

Patentee after: Sun patent hosting Co.

Address before: Seaman Avenue Torrance in the United States of California No. 20000 room 200

Patentee before: PANASONIC INTELLECTUAL PROPERTY CORPORATION OF AMERICA