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

文档序号:6360253阅读:232来源:国知局
专利名称:虚拟计算机系统、虚拟计算机控制方法、虚拟计算机控制程序及半导体集成电路的制作方法
技术领域
本发明涉及虚拟计算机系统,尤其涉及从虚拟计算机向存储区域的访问的控制技术。
背景技术
以往,作为虚拟计算机系统,已知有对多个虚拟计算机进行执行控制的系统。在这样的虚拟计算机系统中,作为提高硬件资源的利用效率的技术,有根据虚拟计算机系统的处理负荷而动态地控制虚拟计算机的生成和结束的技术。例如,在专利文献I中,公开了通过将母虚拟计算机分叉(fork)而生成子虚拟计 算机的技术,在专利文献2中,公开了如下技术基于来自在虚拟计算机上执行的应用程序的请求,将该虚拟计算机复制(clone、克隆)化,从而生成子虚拟计算机。在先技术文献专利文献专利文献I :特开2004-133894号公报专利文献2 :特开2008-165795号公报发明的概要发明所要解决的课题但是,在虚拟计算机系统中,在成为执行对象的应用程序中,有时同时存在已认证不含有恶意软件(malware)的应用程序(以下称为“已认证应用程序”)和未认证不含有恶意软件的应用程序(以下称为“未认证应用程序”)。这种情况下,在未认证应用程序中含有恶意软件时,通过执行该恶意软件,已认证应用程序可能被攻击。作为已认证应用程序被攻击的情况的例子,例如有如下情况已认证应用程序或数据被篡改;或者已认证应用程序被以不恰当的方法执行,系统的管理者权限被剥夺,结果计算机系统被非法地夺取,应该对外部保密的信息、例如系统所保存的收费内容、个人信息、密钥等被读取。在以往的动态地生成虚拟计算机的虚拟计算机系统中,在执行新的应用程序的情况下,在不存在用于执行该应用程序的虚拟计算机时等,基于母虚拟计算机来生成新的子虚拟计算机,使该子虚拟计算机执行该应用程序。这种情况下,从母虚拟计算机生成的子虚拟计算机具有与母虚拟计算机相同的功能。因此,在成为母虚拟计算机的执行对象的应用程序中含有已认证应用程序的情况下,即使是为了执行未认证应用程序而生成的子虚拟计算机,在成为执行对象的应用程序中也含有已认证应用程序。因此,在以往的虚拟计算机系统中,在子虚拟计算机执行的未认证应用程序中含有恶意软件的情况下,已认证应用程序可能被该恶意软件攻击。

发明内容
在此,本发明是鉴于以上问题而做出的,其目的在于,提供一种虚拟计算机系统,即使在成为虚拟计算机的执行对象的应用程序中同时存在已认证应用程序和未认证应用程序,也能够防止由于执行未认证应用程序所包含的恶意软件而非法执行软件,该软件的非法执行包括系统的夺取或数据的盗用、以及成为篡改的原因的对已认证应用程序的攻击等。解决课题所采用的手段
为了解决上述问题,本发明的虚拟计算机系统的特征在于,具备存储装置;处理器,与该存储装置连接;以及管理器(hypervisor,管理程序、超级管理器、虚拟机管理器),在该处理器上执行,使该处理器进行多个虚拟计算机的执行控制;该虚拟计算机系统具备访问控制部,对从虚拟计算机向所述存储装置的存储区域的访问进行控制;所述存储装置包括容纳第I种程序的第I存储区域和容纳第2种程序的第2存储区域;所述管理器包括启动请求受理部,用于从虚拟计算机受理第I种程序或第2种程序的启动请求;以及虚拟计算机生成部,在由所述处理器执行的所述启动请求受理部受理了第I种程序的启动请求时,生成用于执行该第I种程序的虚拟计算机,并将该生成的虚拟计算机作为第I种虚拟计算机来管理,在受理了第2种程序的启动请求时,生成用于执行该第2种程序的虚拟计算机,并将该生成的虚拟计算机作为第2种虚拟计算机来管理;所述访问控制部以如下方式进行所述访问的控制禁止从由所述处理器执行的所述虚拟计算机生成部作为所述第I种虚拟计算机来管理的虚拟计算机向所述第2存储区域的访问。发明效果根据具备上述构成的本发明的虚拟计算机系统,将未认证应用程序作为第I种程序容纳在第I存储区域中,将已认证应用程序作为第2种程序容纳在第2存储区域中,由此,执行未认证应用程序的虚拟计算机无法访问已认证应用程序。因此,在成为虚拟计算机的执行对象的应用程序中,即使同时存在已认证应用程序和未认证应用程序,也能够防止由于执行未认证应用程序所包含的恶意软件而非法执行软件,该软件的非法执行包括系统的夺取或数据的盗用、以及成为篡改的原因的对已认证应用程序的攻击等。


图I是表示虚拟计算机系统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个程序执行模式,由以处理器的管理员模式执行的管理器对以处理器的管理员模式执行的多个操作系统进行分时执行控制。该虚拟计算机系统除了处理器之外,还具备存储器保护单元,该存储器保护单元进行从虚拟计算机向存储器的存储区域的访问控制。并且,由处理器执行的管理器和存储器保护单元协同动作,由此,对于各个虚拟计算机,将向存储器的存储区域的访问分别控制为禁止向规定的区域的访问。因此,由该虚拟计算机系统执行的各个虚拟计算机无法访问被禁止访问的区域所容纳的程序、数据等。以下,参照

本实施方式I的虚拟计算机系统的构成。<硬件构成>图I是表示虚拟计算机系统100的主要的硬件构成的框图。如该图所示,虚拟计算机系统100作为硬件是计算机装置,由集成电路110、输入装置131、输出装置132构成。集成电路110是将处理器101、存储器102、高速缓冲存储器105、MMU (MemoryManagement Unit :存储器管理单兀)106、存储器保护单兀107、计时器108、DMAC (DirectMemory Access Controller :直接存储器访问控制器)109、内部总线120、第I接口 121、第2接口 122、第3接口 123集成而得到的半导体集成电路,与输入装置131、输出装置132、外部的集成电路等连接。并且,存储器102由ROM (Read Only Memory) 103和RAM (RandomAccess Memory) 104 构成。处理器101与高速缓冲存储器105和MMU106连接,通过执行存储在R0M103或RAM104中的程序,对R0M103、RAM104、高速缓冲存储器105、MMU106、存储器保护单元107、计时器108、输入装置131、输出装置132进行控制,实现各种功能。图2是表示处理器101所具备的动作模式的动作模式图。如该图所示,处理器101具有执行应用程序(图中的任务A231、任务K232、任务L233等)的用户模式230和执行操作系统(图中的第IOS (Operating System) 221、第20S222、第30S223等)及管理器的特权模式(以下称为“管理员模式”)220。以用户模式230执行的应用程序被以管理员模式220执行的操作系统分时执行控制,以管理员模式220执行的操作系统被同样以管理员模式220执行的管理器分时执行控制。再次回到图1,继续说明虚拟计算机系统100的构成。R0M103与存储器保护单元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为“I”的规定的存储区域表示开始地址为 “0x8000_0000”、尺寸为 2MB (Mega Byte)的存储区域。图4是表示由存储器保护单元107存储的存储器保护信息400的数据构造的数据构造图。如该图所示,存储器保护信息400通过将区域ID410和访问信息420建立对应而构成。区域ID410与区域ID310同样,是用于识别存储器102的存储区域中的规定的存储区域的识别符。访问信息420是表示对通过对应的区域ID410识别的规定的存储区域进行的访问的限制的信息,是如下4个信息中的某一个信息(I)表示既可以读出也可以写入的意思的信息(以下称为“R/W”)、(2)表示可以读出但不可以写入的意思的信息(以下称为“R0”)、
(3)表示不可以读出但可以写入的意思的信息(以下称为“W0”)、(4)表示既不可以读出也不可以写入的意思的信息(以下称为“NA”)。根据该存储器保护信息400,例如区域ID410为“I”的规定的区域表示既不可以读出也不可以写入,区域ID410为“2”的规定的区域表示既可以读出也可以写入,区域ID410为“3”的规定的区域表示可以读出但不可以写入,区域ID410为“4”的规定的区域表示既不可以读出也不可以写入。图5是表示由存储器保护单元107划分为多个规定的区域而进行向存储器102的存储区域的访问的控制的、存储器102的存储区域图。如该图所示,通过由存储器保护单元107參照存储器保护表,存储器102的存储区域被划分为区域ID310为“I”的区域A501、区域ID310为“2”的区域B502、区域ID310为“3”的区域C503、区域ID310为“4”的区域D504等。另外,关于存储器保护单元107所进行的向存储器102的存储区域的访问控制动 作的更详细内容,在后面的<存储器访问处理>的项目的部分中使用流程图进行说明。再次回到图1,继续说明虚拟计算机系统100的构成。计时器108与内部总线120连接,由处理器101控制。DMAC109与内部总线120连接,具有不经由处理器101而进行与第I接ロ 121连接的输入装置131、与第2接ロ 122连接的输出装置132及与第3接ロ 123连接的外部集成电路等和存储器102之间的数据转发的功能。内部总线120与MMU106、高速缓冲存储器105、存储器保护单元107、计时器108、第I接ロ 121、第2接ロ 122、第3接ロ 123、DMAC109连接,具有传达这些连接的电路间的信号的功能。第I接ロ 121、第2接ロ 122、第3接ロ 123分别与内部总线120连接,分别具有中继内部总线120与输入装置131之间的信号的交換的功能、中继内部总线120与输出装置132之间的信号的交換的功能、中继与外部的集成电路等之间的信号的交換的功能。输入装置131包括键盘、鼠标、摄像机、传感器等,与第I接ロ 121连接,由处理器101控制,具有如下功能通过键盘、鼠标、摄像机、传感器等生成与用户操作等对应的数据,井向处理器101发送表示发生了用户操作等的通知以及生成的数据。输出装置132包括显示器、扬声器等,与第2接ロ 122连接,由处理器101控制,具有使用显示器、扬声器等显示并输出字符串、图像、声音等的功能。上述虚拟计算机系统100通过由处理器101执行存储在R0M103、RAM104中的程序,实现各种功能。<程序模块构成>图6是表示在某时刻t0在处理器101上成为执行对象的程序模块(以下简称为“模块”)的框图。在该图中,模块群600是在处理器101中成为执行对象的模块的集合,模块群600所包含的各模块的对应的程序容纳在存储器102的存储区域中。任务1A611、任务2A612、任务3A613、任务2B614、任务3C615分别是以处理器101的用户模式执行的任务。0S1A621、0S1B622、0S1C623分别是在处理器101的管理员模式下执行的多任务对
应操作系统。
管理器630是以处理器101的管理员模式执行的管理器。在虚拟计算机系统100中,应用程序被以管理员模式执行的多任务对应操作系统进行执行控制,并以用户模式执行。此外,操作系统被管理器进行执行控制,并以管理员模式执行。应用程序通过调用预先准备的操作系统调用例程,能够对操作系统委托规定的处理。此外,操作系统通过调用预先准备的管理器调用例程,能够对管理器委托规定的处理。此外,由管理器对在虚拟计算机系统的执行时产生的例外或从外部装置产生的中断进行处理,井根据需要对虚拟计算机上的操作系统重新发布。0S1A621对任务1A611、任务2A612、任务3A613进行执行控制,使由0S1A621、任务1A611、任务2A612、任务3A613构成的系统作为第I虚拟计算机601发挥功能。0S1B622对任务2B614进行执行控制,使由0S1B622、任务2B614构成的系统作为 第2虚拟计算机602发挥功能。0S1C623对任务3C615进行执行控制,使由0S1C623、任务3C615构成的系统作为第3虚拟计算机603发挥功能。在此,第2虚拟计算机602是以第I虚拟计算机601为母虚拟计算机、通过分叉方式生成的子虚拟计算机,第3虚拟计算机603是以第I虚拟计算机601为母虚拟计算机、通过分叉方式生成的子虚拟计算机。关于分叉方式的虚拟计算机的生成将在后面说明。管理器630在内部包含VM(Virtual Machine :虚拟机、虚拟计算机)管理表保持部640、VM执行控制部650、VM存储器管理部660这3个模块,VM执行控制部650还包含VM启动部651、VM执行部652、VM结束部653、请求受理部654这4个模块,VM存储器管理部还包含保护设定信息保持部661、保护设定部662、C0W (Copy On Write :写时复制)处理部663这3个模块。VM管理表保持部640具有存储预先決定的应用组管理表、预先决定的虚拟计算机管理表、由VM执行部652生成的虚拟计算机状态表的功能。图7是表示由VM管理表保持部640存储的应用组管理表700的数据构造的数据构造图。如该图所示,应用组管理表700将应用组ID710和应用程序名720建立对应而构成。应用程序名720是应用程序的名称,用于确定应用程序。应用组ID710是用于识别由对应的应用程序名720确定的应用程序所属的应用程序组的识别符。根据该应用组管理表700,例如记事簿、计算器、終端设定等名称的应用程序属于应用组ID为“I”的应用程序组,DTV (Digital Television)应用等名称的应用程序属于应用组ID为“2”的应用程序组。图8是表示由VM管理表保持部640存储的虚拟计算机管理表800的数据构造的数据构造图。如该图所示,虚拟计算机管理表800通过将VMID810和应用组ID820建立对应而构成。应用组ID820是与应用组ID710同样的识别符。
VMID810是用于识别用来执行属于通过对应的应用组ID820识别的应用程序组的应用程序的虚拟计算机的识别符。根据该虚拟计算机管理表800,例如以VMID810“1”识别的虚拟计算机是用于执行属于以应用组ID820 “I”确定的应用程序组的应用程序和属于以“4”确定的应用程序组的应用程序的虚拟计算机。图9是表示由VM管理表保持部640存储的虚拟计算机状态表900的数据构造的数据构造图。如该图所示,虚拟计算机状态表900将VMID910和执行状态920建立对应而构成。VMID910是用于识别虚拟计算机的识别符。执行状态920是表示通过对应的VMID910识别的虚拟计算机的执行状态的信息,是如下3个信息中的某个信息(I)表示虚拟计算机被启动而成为分时执行处理的对象、处 于能够进行新的任务处理的状态的意思的信息(以下称为“执行中”)、(2)表示虚拟计算机未被启动的状态的意思的信息(以下称为“未启动”)、(3)表示虚拟计算机虽然被启动而成为分时执行处理的对象、但是用于使该虚拟计算机结束的结束处理为执行中、无法进行新的任务处理的状态的意思的信息(以下称为“结束处理中”)。在此,用于使虚拟计算机结束的结束处理是指,为了执行该虚拟计算机,将由管理器和虚拟计算机自身确保的存储区域释放的处理。再次回到图6,继续说明在处理器101上成为执行对象的模块。请求受理部654具有从执行中的虚拟计算机的操作系统受理新的应用程序的启动请求、并将受理了启动请求的意思的信号发送给VM启动部651的功能。VM启动部651具有以下3个功能。功能I :为了执行新的应用程序,基于成为母虚拟机的虚拟计算机,通过分叉方式生成新的子虚拟计算机。在此,分叉方式的虚拟计算机的生成是指,以对成为母虚拟机的虚拟计算机分配的全部存储区域和对新生成的虚拟计算机分配的全部存储区域一一对应的方式,将对成为母虚拟机的虚拟计算机分配的存储区域映射到新生成的虚拟计算机的存储区域,从而生成新的虚拟计算机。另外,新生成虚拟计算机后,成为母虚拟机的虚拟计算机的存储区域和新生成的虚拟计算机的存储区域,由COW处理部663以写时复制(copy on write)方式进行管理。由该COW处理部663进行的存储区域的基于写时复制方式的管理的详细情况在后面说明。功能2 :为了执行新的应用程序而生成新的子虚拟计算机的情况下,參照存储在VM管理表保持部640中的应用组管理表700和虚拟计算机管理表800,对该新的虚拟计算机赋予作为用于识别该新的子虚拟计算机的识别符的VMID,将存储在VM管理表保持部640中的虚拟计算机状态表900更新,以使与赋予的VMID建立了对应的执行状态920成为“执行中”。功能3 :通过将处理器101初始化,在VM启动部651被启动的情况下,生成作为其他所有虚拟计算机的母虚拟机的虚拟计算机,并将用于识别生成的虚拟计算机的VMID设为 “O,,。VM执行部652具有使用计时器108对多个虚拟计算机以分时执行控制方式进行执行控制的功能。VM结束部653具有从虚拟计算机受理使该虚拟计算机结束的请求、即结束请求的功能;以及在受理了结束请求的情况下,对成为对象的虚拟计算机执行前述的结束处理而使该虚拟计算机结束的功能。保护设定信息保持部661具有存储访问许可信息的功能。图10是表示由保护设定信息保持部661存储的访问许可信息1000的数据构造的数据构造图。如该图所示,访问许可信息1000通过将区域ID1010、VMID1020、访问信息(图中的NA、R/W、RO等)建立对应而构成。
该访问许可信息1000由预先決定的原始访问信息的部分(与区域ID1010为I 6对应的部分)和由COW处理部663对预先決定的原始访问信息追加的部分(与区域ID1010为I 6以外的区域ID1010对应的部分)构成。区域ID1010与区域ID310同样,是用于识别存储器102的存储区域中的规定的存储区域的识别符。VMID1020与VMID910同样,是用于识别虚拟计算机的识别符。访问信息是表示关于对应的VMID1020识别的虚拟计算机的对由对应的区域ID1010识别的规定的存储区域进行的访问的限制的信息,与访问信息420同样,是R/W、R0、W)、NA这4个信息中的某I个信息。根据该访问许可信息1000,例如对于以VMID1020为“ I”识别的虚拟计算机,区域ID1010为“I”的规定的区域既不可以读出也不可以写入,区域ID1010为“2”的规定的区域可以读出但不可以写入,区域ID1010为“3”的规定的区域可以读出但不可以写入,区域ID1010为“4”的规定的区域既不可以读出也不可以写入。保护设定部662具有以下2个功能。功能I :在切換由VM执行部652执行的虚拟计算机的情况下,从由保护设定信息保持部661存储的访问许可信息1000中,读出与成为切换目标的虚拟计算机的VMID1020有关的、分别与区域ID1010建立了对应的访问信息,生成存储器保护信息400 (參照图4),利用生成的存储器保护信息400来更新存储器保护单元107所存储的存储器保护信息400。功能2 :在COW处理部663更新由保护设定信息保持部661存储的访问许可信息1000的情况下,从由保护设定信息保持部661存储的访问许可信息1000中,读出与当前执行中的虚拟计算机的VMID有关的、分别与区域ID1010建立了对应的访问信息,生成存储器保护信息400,并利用生成的存储器保护信息400来更新存储器保护单元107所存储的存储器保护信息400。COff处理部663具有以下2个功能。功能I :对从虚拟计算机向存储区域的访问进行基于写时复制方式的访问管理。在此,基于写时复制方式的访问管理是指如下的访问管理方法对于母虚拟计算机的存储区域和子虚拟计算机的存储区域,不能由任一虚拟计算机改写的页被双方的虚拟计算机共用,而对于能够由某个虚拟计算机改写的页,将母虚拟计算机利用的页和子虚拟计算机利用的页分配到相互不同的存储区域而利用。功能2 :通过进行基于写时复制方式的访问管理,对虚拟计算机分配新的存储区域的情况下,将保护设定信息保持部661所保持的访问许可信息1000更新。这时,以如下方式进行访问许可信息1000的更新对于与新分配的存储区域对应的区域ID1010,与用于识别成为对象的虚拟计算机的VMID1020对应的访问信息为R/W,与用于识别成为对象的虚拟计算机以外的所有虚拟计算机的VMID1020对应的访问信息为NA。另外,成为对象的虚拟计算机是执行未认证应用程序的虚拟计算机的情况下,为了从执行母虚拟计算机或认证应用程序的虚拟计算机监视该虚拟计算机及未认证应用程序的执行,也可以将新分配的存储器区域的访问信息设为RO或R/W。在此,回到图6,对第2虚拟计算机602和第3虚拟计算机603的说明进行补充。第2虚拟计算机602是为了执行任务2B614,而由VM启动部651以第I虚拟计算机601为母虚拟计算机通过分叉方式生成的虚拟计算机。 此外,第3虚拟计算机603是为了执行任务3C615,而由VM启动部651以第I虚拟计算机601为母虚拟计算机通过分叉方式生成的虚拟计算机。任务2B614是伴随着第2虚拟计算机602的生成而基于任务2A612生成的任务,任务2A612所利用的存储区域和任务2B所利用的存储区域由COW处理部663以写时复制
方式进行管理。任务3C615是伴随着第3虚拟计算机603的生成而基于任务3A613生成的任务,任务3A613所利用的存储区域和任务3C所利用的存储区域由COW处理部663以写时复制
方式进行管理。0S1B622和0S1C623是与第I虚拟计算机601的0S1A621对应的操作系统,0S1B622伴随着第2虚拟计算机602的生成而生成,0S1C623伴随着第3虚拟计算机603的生成而生成,0S1A621所利用的存储区域、0S1B622所利用的存储区域、0S1C623所利用的存储区域由COW处理部663以写时复制方式进行管理。以上那样构成的虚拟计算机系统100按照以下所示的存储器102的存储区域的利用方法,利用存储器102的存储区域。<存储器102的存储区域的利用方法>在此,使用

虚拟计算机系统100中的存储器102的存储区域的利用方法。图11是表示在时刻t0对于存储器102的存储区域中的被划分为规定的区域的各个存储区域的利用方法的、存储器102的存储区域图。在该图中,管理器分配区域1101是区域ID310 (參照图3)为“I”的规定的存储区域,与图5中的区域A501对应。此外,该区域被预先设定为管理器630的代码被容纳的区域、或由管理器630利用的存储区域。此外,根据由保护设定信息保持部661存储的访问许可信息1000中的原始访问信息的部分,对所有虚拟计算机预先设定既不可以读出也不可以写入的区域。操作系统分配区域1102是区域ID310为“2”的规定的存储区域,与图5中的区域B502对应。而且,该区域被预先设定为成为处理器101的执行对象的操作系统的代码被容纳的区域、或由成为处理器101的执行对象的操作系统利用的存储区域。此外,该区域被预先设定为仅能够由管理员模式220的处理器101访问的区域。此外,根据由保护设定信息保持部661存储的访问许可信息1000中的原始访问信息的部分,预先设定为对VMID1020为“O”的虚拟计算机(S卩,作为所有其他虚拟计算机的母虚拟计算机的第I虚拟计算机601)既可以读出也可以写入的区域,对该虚拟计算机以外的所有虚拟计算机可以读出但不可以写入的区域。第I种程序分配区域1103是区域ID310为“3”的规定的存储区域,与图5中的区域C503对应。而且,该区域预先设定为属于应用组ID为“I”的应用程序组的程序(以后称为“第I种程序”)被容纳的区域、或由第I种程序利用的存储区域。此外,根据由保护设定信息保持部661存储的访问许可信息1000中的原始访问信息的部分,预先设定为对VMID1020为“O”的虚拟计算机既可以读出也可以写入的区域,对VMID1020为“I”的虚拟计算机可以读出但不可以写入的区域,对其以外的所有虚拟计算机既不可以读出也不可以写入的区域。第2种程序分配区域1104是区域ID310为“4”的规定的存储区域,与图5中的区域D504对应。而且,该区域预先设定为属于应用组ID为“2”的应用程序组的程序(以后称为“第2种程序”)被容纳的区域、或由第2种程序利用的存储区域。此外,根据由保护设定信息保持部661存储的访问许可信息1000中的原始访问信息的部分,预先设定为对VMID1020 为“O”的虚拟计算机既可以读出也可以写入的区域,对VMID1020为“2”的虚拟计算机可以读出但不可以写入的区域,对其以外的所有虚拟计算机既不可以读出也不可以写入的区域。第3种程序分配区域1105是区域ID310为“5”的规定的存储区域,与图5中的区域E505对应。而且,该区域预先设定为属于应用组ID为“3”的应用程序组的程序(以后称为“第3种程序”)被容纳的区域、或由第3种程序利用的存储区域。此外,根据由保护设定信息保持部661存储的访问许可信息1000中的原始访问信息的部分,预先设定为对VMID1020为“O”的虚拟计算机既可以读出也可以写入的区域,对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为“O”的虚拟计算机,将IO区域1106至1108预先设定为既可以读出又可以写入的区域,对于该虚拟计算机以外的所有虚拟计算机,为了使IO区域1106成为用于实现读出和写入共享的区域,预先设定既不可以读出又不可以写入的区域,为了使IO区域1107成为实现仅写入共享的区域,预先设定可以读出但是不可以写入的区域,为了使IO区域1108成为实现仅读出共享的区域,预先设定不可以读出但可以写入的区域。第2种程序的第I虚拟计算机用分配区域1111是区域ID310为“N”的规定的存储区域,与图5中的区域N511对应。该区域是通过由COW处理部663进行第2种程序的基于写时复制方式的访问管理,而对第I虚拟计算机601新分配的区域,通过COW处理部663更新由保护设定信息保持部661存储的访问许可信息1000来进行设定。
第2种程序的第2虚拟计算机用分配区域1112是区域ID310为“N + I”的规定的存储区域,与图5中的区域N+ I (512)对应。该区域是通过由COW处理部663进行第2种程序的基于写时复制方式的访问管理,而对第2虚拟计算机602新分配的区域,通过COW处理部663更新由保护设定信息保持部661存储的访问许可信息1000来进行设定。第3种程序的第I虚拟计算机用分配区域1113是区域ID310为“N + 2”的规定的存储区域,与图5中的区域N+2 (513)对应。该区域是通过由COW处理部663进行第3种程序的基于写时复制方式的访问管理,而对第I虚拟计算机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为“I”的应用程序组(參照应用组管理表700 (參照图7)),所以被VMID810为“I”的虚拟计算机(以下称为“虚拟计算机I”)执行(參照虚拟计算机管理表800 (參照图8))。在执行记事簿的虚拟计算机I中,记事簿中包含的恶意软件被执行时,该恶意软件尝试使邮箱启动。但是,邮箱及由邮箱利用的数据容纳在区域ID1010为“5”的规定的区域中,来自虚拟计算机I的访问被存储器保护单元107禁止(參照图10的访问许可信息1000)。因此,恶意软件无法使邮箱启动,或将邮箱篡改,或访问由邮箱利用的数据。因此,恶意软件不会使记录在地址簿中的个人信息向外部流出。这样,本实施方式I的虚拟计算机系统100,即使在作为虚拟计算机的执行对象的应用程序中包含恶意软件,也能够比以往更低地抑制由该恶意软件攻击不想被恶意软件攻击的应用程序的危险性。<实施方式2>< 概要 >以下,作为本发明的虚拟计算机系统的ー个实施方式,说明将实施方式I中的虚拟计算机系统100的一部分变形后的虚拟计算机系统1500。实施方式2的虚拟计算机系统1500的 硬件构成从实施方式I的虚拟计算机系统100部分变形,此外,执行的软件的一部分从实施方式I的虚拟计算机系统100部分变形。实施方式I的虚拟计算机系统100是具备对向存储器102的存储区域的访问进行控制的存储器保护单元107的构成的例子,但是实施方式2是以下情况的例子虚拟计算机系统1500不具备作为硬件的存储器保护单元,由处理器执行的管理器具有对向存储器102的存储区域的访问进行控制的功能。以下,參照

本实施方式2的虚拟计算机系统1500的构成,重点说明与实施方式I的虚拟计算机系统100的构成的不同点。<硬件构成>图15是表示虚拟计算机系统1500的主要的硬件构成的框图。如该图所示,虚拟计算机系统1500与虚拟计算机系统100同样,作为硬件是计算机装置,从实施方式I的虚拟计算机系统100将集成电路110变形为集成电路1510。<程序模块构成>图16是表示在某时刻t0在处理器101上成为执行对象的模块的框图。在该图中,模块群1600是在处理器101中成为执行对象的模块的集合,模块群1600所包含的模块分别为对应的程序容纳在存储器102的存储区域中。虚拟计算机系统1500中的模块群1600从实施方式I的虚拟计算机系统100中的模块群600将管理器630变更为管理器1630。管理器1630从实施方式I的管理器630将VM存储器管理部660变更为VM存储器管理部1660。VM存储器管理部1660相对于实施方式I的VM存储器管理部660,变形为追加了虚拟MMU1670和存储器保护部1680。虚拟MMU1670与MMU106协作,具有用于指定存储器102的物理存储区域的地址的物理地址与用于指定处理器101所利用的逻辑存储区域的地址的逻辑地址的变换功能。虚拟计算机系统1500设定为,对每个虚拟计算机単独分配逻辑存储区域而使虚拟计算机执行(以下,将对每个虚拟计算机単独分配的逻辑存储区域称为“一次逻辑存储区域”,将一次逻辑存储区域的地址称为“一次逻辑地址”),并且设定为,由MMU106将该一次逻辑地址变换为存储器102所利用的物理地址。该虚拟MMU1670所具有的功能是指,将各虚拟计算机在本虚拟计算机内利用的逻辑存储地址(以下将该虚拟计算机在本虚拟计算机内利用的逻辑存储区域称为“二次逻辑存储区域”,将二次逻辑存储区域的地址称为“二次逻辑地址”)变换为上述一次逻辑地址。存储器保护部1680具有在内部存储存储器保护表300 (參照图3)和存储器保护信息400 (參照图4)的功能;以及參照存储的存储器保护表300和存储器保护信息400,对虚拟计算机使用一次逻辑地址进行的向存储器102的物理存储区域的访问进行控制的功倉^:。在此,存储器保护部1680的、參照存储器保护表300和存储器保护信息400进行的向存储器102的存储区域的访问控制,与实施方式I的存储器保护单元107所进行的向存储器102的存储区域的访问的控制(參照实施方式I中的<存储器访问处理>项目)相同,将存储器保护单元107置換为存储器保护部1680而成。因此,在此省略其说明。上述构成的虚拟计算机系统1500与实施方式I的虚拟计算机系统100同样,即使在成为虚拟计算机的执行对象的应用程序中包含有恶意软件,与以往相比,能够更加抑制原本不想执行的应用程序被执行的危险性。<实施方式3>< 概要 >以下,作为本发明的虚拟计算机系统的ー个实施方式,说明将实施方式I中的虚拟计算机系统100的一部分变形后的变形虚拟计算机系统。实施方式3的变形虚拟计算机系统的硬件构成与实施方式I的虚拟计算机系统100相同,但是执行的软件的一部分从实施方式I的虚拟计算机系统100部分变形。
该变形虚拟计算机系统是如下构成的虚拟计算机系统的例子在执行多个虚拟计算机的情况下,也仅由执行的虚拟计算机中的I个虚拟计算机(在此为第I虚拟计算机)直接控制显示器、键盘等器件,其以外的虚拟计算机通过向第I虚拟计算机委托器件的控制,间接地对器件进行控制。以下,參照

本实施方式3的变形虚拟计算机系统的构成,重点说明与实施方式I的虚拟计算机系统100的构成的不同点。图17是表示在某时刻t0在处理器101上成为执行对象的模块的框图。在该图中,模块群1700是在处理器101中成为执行对象的模块的集合,模块群1700所包含的模块分别为对应的程序容纳在存储器102的存储区域中。变形虚拟计算机系统中的模块群1700从实施方式I的虚拟计算机系统100中的模块群600将第I虚拟计算机601变更为第I虚拟计算机1701,将第2虚拟计算机602变更为第2虚拟计算机1702,将第3虚拟计算机603变更为第3虚拟计算机1703。第I虚拟计算机1701是VMID1020为“O”的、其他所有虚拟计算机的母虚拟计算机,从实施方式I中的第I虚拟计算机601将0S1A621变形为包含器件驱动器1731的0S1A1721。第2虚拟计算机1702是为了执行任务2B614,由VM启动部651以第I虚拟计算机1701为母虚拟计算机通过分叉方式生成的虚拟计算机,从实施方式I中的第2虚拟计算机602将0S1B622变更为包含器件驱动器1732的0S1B1722。第3虚拟计算机1703是为了执行任务3C615,由VM启动部651以第I虚拟计算机1701为母虚拟计算机通过分叉方式生成的虚拟计算机,从实施方式I中的第3虚拟计算机603将0S1C623变更为包含器件驱动器1733的0S1C1723。器件驱动器1731由前端部1741、后端部1742、本地(native)部1743构成。另外,器件驱动器是指所谓的对器件进行控制的程序,但是在此还包含器件控制处理、文件系统处理、进程间通信处理、虚拟计算机间通信处理等实现虚拟计算机的输入输出功能的程序。本地部1743由用于直接控制成为对象的器件的命令代码等构成,具有对器件进行控制的功能。容纳有该程序的存储器102的存储区域通过由保护设定信息保持部661存储的访问许可信息1000(參照图10),而设定为仅对第I虚拟计算机1701来说访问信息为R/W,对其他虚拟计算机来说访问信息为NA。由此,本地部1743不会被第I虚拟计算机1701以外的虚拟计算机执行。后端部1742具有在包含自身的虚拟计算机所包含的前端部及包含自身的虚拟计算机以外的虚拟计算机所包含的前端部与服务器客户端模型(server client model)之间进行通信的功能;从通信的前端部受理本地部1743的操作指令,并将受理的本地部1743的操作指令输出至本地部1743的功能;以及受理从本地部1743输出的数据,井向通信的前端部输出受理的数据的功能。容纳有该程序的存储器102的存储区域通过由保护设定信息保持部661存储的访问许可信息1000,而设定为仅对第I虚拟计算机1701来说访问信息为R/W,对其他虚拟计算机来说访问信息为NA。由此,后端部1742不会被第I虚拟计算机1701以外的虚拟计算机执行。前端部1741具有在后端部1742和服务器客户端模型之间进行通信的功能;向通信的后端部1742发送本地部1743的操作指令的功能;受理从通信的后端部输出的数据的功能。 容纳有该程序的存储器102的存储区域通过由保护设定信息保持部661存储的访问许可信息1000,设定为仅对第I虚拟计算机1701来说访问信息为R/W,对其他虚拟计算机来说访问信息为R0。由此,前端部能够被所有虚拟计算机执行(与图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的变形虚拟计算机系统,即使在多个虚拟计算机成为执行对象的情况下,仅第I虚拟计算机1701的本地部1743对器件进行直接控制,能够排他性地进行器件控制。
< 补充 >以上,作为本发明的虚拟计算机系统的ー实施方式,在实施方式I、实施方式2、实施方式3中说明了 3个虚拟计算机系统的例子,但是也可以如以下那样变形,本发明当然不限于上述实施方式所示的虚拟计算机系统。(I)在实施方式I中,说明了虚拟计算机系统100具备I个处理器的情况的例子,但是只要管理器能够进行多个虚拟计算机的执行控制,则处理器的数量并不限于I个,例如也可以是2个、3个等多个。处理器的数量为多个的情况下,管理器并不是必须以分时来执行虚拟计算机,也可以是并行地执行多个虚拟计算机的结构。(2)在实施方式I中,说明了将处理器101、存储器102、高速缓冲存储器105、MMU106、存储器保护单元107、计时器108、DMAC109、内部总线120、第I接ロ 121、第2接ロ122、第3接ロ 123集成在I个集成电路110中的情况的例子,但是这些电路并不是必须集成在I个集成电路中。例如,也可以将处理器101和高速缓冲存储器105集成在第I集成电路中,将其他电路集成在第2集成电路中,例如还可以是将各电路集成在相互不同的集 成电路中的结构。(3)在实施方式I中,以处理器101具备2个动作模式的构成的情况为例进行了说明,但是只要构成为能够以比执行应用程序的模式和执行操作系统的模式更高的特权模式来执行管理器,动作模式的数并不限于2个,例如也可以是3个以上。这种情况下,能够将执行管理器的动作模式设为比执行操作系统更高的特权模式,能够大幅减轻管理器中的虚拟MMU处理、I/O仿真处理的系统开销。(4)在实施方式I中,以第I虚拟计算机601成为其他所有虚拟计算机的母虚拟机的构成的情况为例进行了说明,对于生成的各个子虚拟计算机,只要能够实现向存储器102的存储区域的访问限制,成为母虚拟机的虚拟计算机并不限于第I虚拟计算机601,例如成为某虚拟计算机的子虚拟计算机的虚拟计算机也可以成为其他虚拟计算机的母虚拟机。(5)在实施方式I中,举出了以分叉方式生成虚拟计算机的构成的情况来进行说明。这是因为,通过以分叉方式来生成虚拟计算机,能够有效地利用存储器102的存储区域。但是,如果允许存储器102的存储区域的利用效率的非效率性,则基于成为母虚拟机的虚拟计算机来生成子虚拟计算机的情况下,并不限于以分叉形式进行。作为一例,可以想到以对成为母虚拟机的虚拟计算机分配的所有存储区域和对新
生成的虚拟计算机分配的所有存储区域--对应的方式,将对成为母虚拟机的虚拟计算机
分配的存储区域拷贝到新生成的虚拟计算机的存储区域,从而生产新的虚拟计算机的形式
坐寸ο此外,这样,在子虚拟计算机的存储区域是从母虚拟计算机的存储区域拷贝而来的情况下等,这些存储区域并不需要以写时复制方式来管理。(6)在实施方式2中,以具有进行二次逻辑地址与一次逻辑地址的变换的功能的虚拟MMU1670包含在管理器1630的内部的情况为例进行了说明,但是只要能够实现二次逻辑地址与一次逻辑地址的变换的功能,虚拟MMU1670并不一定要包含在管理器1630的内部,例如也可以构成为在集成电路1510内具备具有进行二次逻辑地址与一次逻辑地址的变换的功能的硬件。
(7)以下,进ー步说明本发明的ー实施方式的虚拟计算机系统的构成及其变形例和各效果。(a)本发明的ー实施方式的虚拟计算机系统的特征在于具备存储装置;处理器,与该存储装置连接;以及管理器(hypervisor ),在该处理器上执行,使该处理器进行多个虚拟计算机的执行控制;该虚拟计算机系统具备访问控制部,对从虚拟计算机向所述存储装置的存储区域的访问进行控制;所述存储装置包括容纳第I种程序的第I存储区域和容纳第2种程序的第2存储区域;所述管理器包括启动请求受理部,用于从虚拟计算机受理第I种程序或第2种程序的启动请求;以及虚拟计算机生成部,在由所述处理器执行的所述启动请求受理部受理了第I种程序的启动请求时,生成用于执行该第I种程序的虚拟计算机,并将该生成的虚拟计算机作为第I种虚拟计算机来管理,在受理了第2种程序的启动请求吋,生成用于执行该第2种程序的虚拟计算机,并将该生成的虚拟计算机作为第2种虚拟计算机来管理;所述访问控制部以如下方式进行所述访问的控制禁止从由所述处理器执行的所述虚拟计算机生成部作为所述第I种虚拟计算机来管理的虚拟计算机向所述第2存储区域的访问。根据具备上述构成的本实施方式的虚拟计算机系统,将未认证应用程序作为第I 种程序容纳在第I存储区域中,将已认证应用程序作为第2种程序容纳在第2存储区域中,从而执行未认证应用程序的虚拟计算机无法访问已认证应用程序。因此,在成为虚拟计算机的执行对象的应用程序中,即使同时存在已认证应用程序和未认证应用程序,与以往相比,也能够抑制由于未认证应用程序所包含的恶意软件被执行而已认证应用程序被攻击的危险性。图18是上述变形例中的虚拟计算机系统1800的概略构成图。如该图所示,虚拟计算机系统1800由处理器1801、访问控制部1802、存储装置1803构成。并且,存储装置1803包含第I存储区域1811、第2存储区域1812,加载有管理器1813。此外,管理器1813包含启动请求受理部1822和虚拟计算机生成部1822。处理器1801是经由访问控制部1802与存储装置1803连接的处理器。作为一例,作为实施方式I中的处理器101 (參照图I)实现。存储装置1803包含第I存储区域1811和第2存储区域1812。作为一例,作为实施方式I中的存储器102 (參照图I)实现。第I存储区域1811是容纳第I种程序的存储区域。该第I存储区域1811作为ー例,作为实施方式I中的区域C503 (參照图5)实现。此外,第I种程序作为一例,作为实施方式I中的记事簿(參照图7)实现。第2存储区域1812是容纳第2种程序的存储区域。该第2存储区域1812作为ー例,作为实施方式I中的区域E505 (參照图5)实现。此外,第2种程序作为一例,作为实施方式I中的邮箱(參照图7)实现。管理器1813在处理器1801上执行,是使处理器1801进行多个虚拟计算机的执行控制的管理器,包含启动请求受理部1822和虚拟计算机生成部1822。该管理器1813作为一例,作为实施方式I中的管理器630 (參照图6)实现。启动请求受理部1822是从虚拟计算机受理第I种程序或第2种程序的启动请求的代码群。作为一例,作为实施方式I中的请求受理部654实现。
虚拟计算机生成部1823是用于进行以下处理的代码群在由1801处理器执行的启动请求受理部1822受理了第I种程序的启动请求的情况下,生成用于执行该第I种程序的虚拟计算机,并将该生成的虚拟计算机作为第I种虚拟计算机来管理,在受理了第2种程序的启动请求的情况下,生成用于执行该第2种程序的虚拟计算机,将该生成的虚拟计算机作为第2种虚拟计算机来管理。作为一例,作为实施方式I中的VM启动部651和VM执行部652来实现。访问控制部1802具有如下功能将从虚拟计算机向存储装置1803的存储区域的访问控制为,禁止从由处理器1801执行的虚拟计算机生成部1823作为所述第I种虚拟计算机管理的虚拟计算机向所述第2存储区域的访问。作为一例,作为实施方式I中的存储器保护单元107 (參照图I)实现。(b)此外,也可以是,所述访问控制部具有第2区 域确定信息存储部,用于存储确定所述第2存储区域的地址的第2区域确定信息,所述访问控制部參照存储在所述第2区域确定信息存储部中的所述第2区域确定信息,进行所述访问的控制。 通过采用这样的构成,访问控制部不用參照访问控制部的外部,就能够确定第2存储区域的地址。(C)此外,也可以是,所述存储装置包含程序对应信息存储区域,该程序对应信息存储区域用于存储程序对应信息,该程序对应信息将确定程序的信息和确定程序的种类的信息建立对应,所述虚拟计算机生成部包含程序种类确定部,该程序种类确定部在由所述处理器执行的所述启动请求受理部从虚拟计算机受理了程序的启动请求的情况下,基于存储在所述程序对应信息存储区域中的程序对应信息,确定该程序是哪个种类的程序,该虚拟计算机生成部基于由所述程序种类确定部确定的程序的种类,在由所述处理器执行的所述启动请求受理部受理了第I种程序的启动请求的情况下,对所述生成的虚拟计算机进行作为第I种虚拟计算机的管理,在由所述处理器执行的所述启动请求受理部受理了第2种程序的启动请求的情况下,对所述生成的虚拟计算机进行作为第2种虚拟计算机的管理。通过采用这样的构成,虚拟计算机生成部能够基于存储在程序对应信息存储区域中的程序对应信息,进行虚拟计算机的种类管理。(d)此外,也可以是,所述虚拟计算机生成部在由所述处理器执行的所述启动请求受理部从虚拟计算机受理了第I种程序或第2种程序的启动请求的情况下,在生成虚拟计算机时,以基于对所述启动请求的请求源虚拟计算机分配的所述存储装置中的存储区域的分叉方式,对该生成的虚拟计算机进行所述存储装置中的存储区域的分配。通过采用这样的构成,以分叉方式进行新的虚拟计算机的生成,所以能够提高存储装置的存储区域的利用效率。(e)此外,也可以是,在所述管理器包含写时复制执行控制部,该写时复制执行控制部在由所述处理器执行的所述虚拟计算机生成部以基于对第2虚拟计算机分配的所述存储装置中的存储区域的分叉方式对第I虚拟计算机进行存储区域的分配的情况下,以通过写时复制方式进行由所述第I虚拟计算机和所述第2虚拟计算机进行的向所述存储装置中的存储区域的访问的方式,控制从虚拟计算机向所述存储装置中的存储区域的访问。通过采用这样的构成,以写时复制方式进行母虚拟计算机向存储区域的访问和基于母虚拟计算机以分叉方式生成的子虚拟计算机向存储区域的管理,所以能够提高存储装置的存储区域的利用效率。(f)此外,也可以是,所述第I存储区域还包含存储由虚拟计算机执行所述第I种程序而利用的数据的存储区域,所述第2存储区域还包含由虚拟计算机执行所述第2种程序而利用的数据的存储区域。通过采用这样的构成,能够使执行第I种程序的虚拟计算机无法利用执行第2种程序的虚拟计算机所利用的数据。(g)此外,也可以是,所述存储装置还包含器件驱动器存储区域,存储器件驱动器;以及器件控制程序存储区域,存储器件控制程序,通过由执行存储在所述器件驱动器存储区域中的所述器件驱动器的虚拟计算机以外的虚拟计算机执行该器件控制程序,与执行所述器件驱动器的虚拟计算机进行通信,使执行所述器件驱动器的虚拟计算机进行器件的控制;所述访问控制部以如下方式进行所述访问的控制仅限作为执行控制对象的虚拟计算机中的I个虚拟计算机,许可向所述器件驱动器存储区域的访问。 通过采用这样的构成,能够排他性地进行由多个虚拟计算机进行的器件控制。エ业实用性本发明能够广泛应用于虚拟计算机系统。标记说明100虚拟计算机系统110集成电路101处理器102存储器103R0M104RAM105高速缓冲存储器106MMU107存储器保护单元108计时器109DMAC120内部总线600模块群601第I虚拟计算机602第2虚拟计算机603第3虚拟计算机630管理器640VM管理表保持部650VM执行控制部65IVM 启动部652VM 执行部653VM 结束部654请求受理部
660VM存储器管理部661保护设定信息保持部662保护设定部 663C0W 处理部。
权利要求
1.一种虚拟计算机系统,其特征在于,具备 存储装置; 处理器,与该存储装置连接;以及 管理器,在该处理器上执行,使该处理器进行多个虚拟计算机的执行控制; 该虚拟计算机系统具备访问控制部,该访问控制部对从虚拟计算机向所述存储装置的存储区域的访问进行控制; 所述存储装置包括容纳第I种程序的第I存储区域和容纳第2种程序的第2存储区域; 所述管理器包括 启动请求受理部,用于从虚拟计算机受理第I种程序或第2种程序的启动请求;以及 虚拟计算机生成部,在由所述处理器执行的所述启动请求受理部受理了第I种程序的启动请求时,生成用于执行该第I种程序的虚拟计算机,并将该生成的虚拟计算机作为第I种虚拟计算机来管理,在由所述处理器执行的所述启动请求受理部受理了第2种程序的启动请求时,生成用于执行该第2种程序的虚拟计算机,并将该生成的虚拟计算机作为第2种虚拟计算机来管理; 所述访问控制部以如下方式进行所述访问的控制禁止从由所述处理器执行的所述虚拟计算机生成部作为所述第I种虚拟计算机来管理的虚拟计算机向所述第2存储区域的访问。
2.如权利要求I所述的虚拟计算机系统,其特征在于, 所述访问控制部具有第2区域确定信息存储部,该第2区域确定信息存储部用于存储第2区域确定信息,该第2区域确定信息用于确定所述第2存储区域的地址,所述访问控制部参照存储在所述第2区域确定信息存储部中的所述第2区域确定信息,进行所述访问的控制。
3.如权利要求2所述的虚拟计算机系统,其特征在于, 所述存储装置包含程序对应信息存储区域,该程序对应信息存储区域用于存储程序对应信息,该程序对应信息将用于确定程序的信息与用于确定程序的种类的信息建立对应, 所述虚拟计算机生成部包含程序种类确定部,该程序种类确定部在由所述处理器执行的所述启动请求受理部从虚拟计算机受理了程序的启动请求的情况下,基于存储在所述程序对应信息存储区域中的程序对应信息,确定该程序是哪个种类的程序, 所述虚拟计算机生成部基于由所述程序种类确定部确定的程序的种类,在由所述处理器执行的所述启动请求受理部受理了第I种程序的启动请求的情况下将所述生成的虚拟计算机作为第I种虚拟计算机来管理,在由所述处理器执行的所述启动请求受理部受理了第2种程序的启动请求的情况下,将所述生成的虚拟计算机作为第2种虚拟计算机来管理。
4.如权利要求3所述的虚拟计算机系统,其特征在于, 所述虚拟计算机生成部在由所述处理器执行的所述启动请求受理部从虚拟计算机受理了第I种程序或第2种程序的启动请求的情况下,在生成虚拟计算机时,以基于对所述启动请求的请求源虚拟计算机分配的所述存储装置中的存储区域的分叉方式,对该生成的虚拟计算机进行所述存储装置中的存储区域的分配。
5.如权利要求4所述的虚拟计算机系统,其特征在于,所述管理器包括写时复制执行控制部,该写时复制执行控制部在由所述处理器执行的所述虚拟计算机生成部以基于对第2虚拟计算机分配的所述存储装置中的存储区域的分叉方式对第I虚拟计算机进行存储区域的分配的情况下,以通过写时复制方式进行由所述第I虚拟计算机和所述第2虚拟计算机进行的向所述存储装置中的存储区域的访问的方式,对从虚拟计算机向所述存储装置中的存储区域的访问进行控制。
6.如权利要求5所述的虚拟计算机系统,其特征在于, 所述第I存储区域还包含存储由虚拟计算机执行所述第I种程序而利用的数据的存储区域, 所述第2存储区域还包含由虚拟计算机执行所述第2种程序而利用的数据的存储区域。
7.如权利要求5所述的虚拟计算机系统,其特征在于, 所述存储装置还包含 器件驱动器存储区域,存储器件驱动器;以及 器件控制程序存储区域,存储器件控制程序,由除了执行存储在所述器件驱动器存储区域中的所述器件驱动器的虚拟计算机以外的虚拟计算机执行该器件控制程序,从而与执行所述器件驱动器的虚拟计算机进行通信,使执行所述器件驱动器的虚拟计算机进行器件的控制; 所述访问控制部以如下方式进行所述访问的控制仅许可作为执行控制对象的虚拟计算机中的I个虚拟计算机向所述器件驱动器存储区域访问。
8.—种虚拟计算机控制方法,对虚拟计算机系统进行控制,其特征在于,该虚拟计算机系统具备 存储装置; 处理器,与该存储装置连接;以及 管理器,在该处理器上执行,使该处理器进行多个虚拟计算机的执行控制; 该虚拟计算机系统具备访问控制部,该访问控制部对从虚拟计算机向所述存储装置的存储区域的访问进行控制; 所述存储装置包括容纳第I种程序的第I存储区域和容纳第2种程序的第2存储区域; 所述虚拟计算机控制方法包括 启动请求受理步骤,所述管理器受理第I种程序或第2种程序的启动请求; 虚拟计算机生成步骤,在所述管理器在所述启动请求受理步骤中受理了第I种程序的启动请求时,生成用于执行该第I种程序的虚拟计算机,并将该生成的虚拟计算机作为第I种虚拟计算机来管理,在所述管理器在所述启动请求受理步骤中受理了第2种程序的启动请求时,生成用于执行该第2种程序的虚拟计算机,并将该生成的虚拟计算机作为第2种虚拟计算机来管理;以及 访问控制步骤,所述访问控制部以如下方式进行所述访问的控制禁止从由所述处理器执行的所述虚拟计算机生成部作为所述第I种虚拟计算机来管理的虚拟计算机向所述第2存储区域的访问。
9.一种虚拟计算机控制程序,用于对虚拟计算机系统进行控制,其特征在于,该虚拟计算机系统具备 存储装置; 处理器,与该存储装置连接;以及 管理器,在该处理器上执行,使该处理器进行多个虚拟计算机的执行控制; 该虚拟计算机系统具备访问控制部,该访问控制部对从虚拟计算机向所述存储装置的存储区域的访问进行控制; 所述存储装置包括容纳第I种程序的第I存储区域和容纳第2种程序的第2存储区域; 所述虚拟计算机控制程序包括 启动请求受理步骤,所述管理器受理第I种程序或第2种程序的启动请求;以及虚拟计算机生成步骤,在所述管理器在所述启动请求受理步骤中受理了第I种程序的启动请求时,生成用于执行该第I种程序的虚拟计算机,并将该生成的虚拟计算机作为第I种虚拟计算机来管理,在所述管理器在所述启动请求受理步骤中受理了第2种程序的启动请求时,生成用于执行该第2种程序的虚拟计算机,并将该生成的虚拟计算机作为第2种虚拟计算机来管理;以及 访问控制步骤,所述访问控制部以如下方式进行所述访问的控制禁止从由所述处理器执行的所述虚拟计算机生成部作为所述第I种虚拟计算机来管理的虚拟计算机向所述第2存储区域的访问。
10.一种半导体集成电路,其特征在于,具备 存储装置; 处理器,与该存储装置连接;以及 管理器,在该处理器上执行,使该处理器进行多个虚拟计算机的执行控制; 该半导体集成电路具备访问控制部,该访问控制部对从虚拟计算机向所述存储装置的存储区域的访问进行控制; 所述存储装置包括容纳第I种程序的第I存储区域和容纳第2种程序的第2存储区域; 所述管理器包括 启动请求受理部,用于从虚拟计算机受理第I种程序或第2种程序的启动请求;以及虚拟计算机生成部,在由所述处理器执行的所述启动请求受理部受理了第I种程序的启动请求时,生成用于执行该第I种程序的虚拟计算机,并将该生成的虚拟计算机作为第I种虚拟计算机来管理,在由所述处理器执行的所述启动请求受理部受理了第2种程序的启动请求时,生成用于执行该第2种程序的虚拟计算机,并将该生成的虚拟计算机作为第2种虚拟计算机来管理; 所述访问控制部以如下方式进行所述访问的控制禁止从由所述处理器执行的所述虚拟计算机生成部作为所述第I种虚拟计算机来管理的虚拟计算机向所述第2存储区域的访问。
全文摘要
具备存储器保护单元,该存储器保护单元进行从虚拟计算机向存储器区域的访问控制,通过由处理器执行的管理器和存储器保护单元协同动作,对于各个虚拟计算机,将向存储器的存储区域的访问控制为,分别禁止向规定的区域的访问。由此,各个虚拟计算机无法访问容纳在被禁止访问的区域中的程序、数据等。
文档编号G06F12/14GK102859502SQ20118002049
公开日2013年1月2日 申请日期2011年9月12日 优先权日2011年3月2日
发明者谷川忠雄 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1