CN101551756B - 基于操作系统层的虚拟方法及虚拟装置 - Google Patents

基于操作系统层的虚拟方法及虚拟装置 Download PDF

Info

Publication number
CN101551756B
CN101551756B CN2009100810559A CN200910081055A CN101551756B CN 101551756 B CN101551756 B CN 101551756B CN 2009100810559 A CN2009100810559 A CN 2009100810559A CN 200910081055 A CN200910081055 A CN 200910081055A CN 101551756 B CN101551756 B CN 101551756B
Authority
CN
China
Prior art keywords
system resource
path
call request
redirected
request
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.)
Expired - Fee Related
Application number
CN2009100810559A
Other languages
English (en)
Other versions
CN101551756A (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.)
Chengdu Huawei Technology Co Ltd
Original Assignee
Huawei Symantec Technologies 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 Huawei Symantec Technologies Co Ltd filed Critical Huawei Symantec Technologies Co Ltd
Priority to CN2009100810559A priority Critical patent/CN101551756B/zh
Publication of CN101551756A publication Critical patent/CN101551756A/zh
Application granted granted Critical
Publication of CN101551756B publication Critical patent/CN101551756B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例涉及一种基于操作系统层的虚拟方法及装置,通过在系统调用层截获对系统资源的调用请求;将所述系统资源的主机路径重定向为虚拟机目录下对应的路径;可以实现基于操作系统层的虚拟化,由于不需要硬件抽象层的支持,所以在满足了故障容忍和入侵容忍系统的需求下,还具有占用系统资源少、灵活性高、启动延迟少的特点。

Description

基于操作系统层的虚拟方法及虚拟装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于操作系统层的虚拟方法及虚拟装置。
背景技术
随着计算机和互联网的普及,安全威胁事件逐年攀升,恶意程序造成的危害越来越严重,对故障容忍和入侵容忍系统的需求也不断提高。这类系统要求具有在现实环境中执行不安全程序时,不会遭受永久性伤害的能力。
虚拟机技术能够完美地满足上述需求,因为它提供了与主机系统隔离的可执行环境。虚拟机技术是在一个物理主机上创建一个或多个可执行环境的技术。每个虚拟机代表了一个潜在的物理主机的实例,并且互不干扰。这种隔离的属性使虚拟机可以成为安全系统和错误容忍应用程序的基石。
发明人在实现本发明过程中发现,现有虚拟机系统大部分为硬件层虚拟机系统,虚拟机技术需要硬件抽象层的支持,虚拟机建立的环境相当于整个实际的操作环境,初始化这样的虚拟机可能需要耗费大量的硬盘空间,而且,现有的虚拟机系统在具体实现过程中,经常需要占用大量的系统资源,并存在对系统性能造成损耗的可能。对于频繁要求启动和终止虚拟机的应用程序来讲,显得不够灵活,且有些现有虚拟机系统操作速度过于缓慢,不适合实际应用。
发明内容
本发明实施例提供了一种基于操作系统层的虚拟方法及虚拟装置,在满足故障容忍和入侵容忍系统的需求下,具有占用系统资源少、灵活性高、启动延迟少的优点。。
本发明实施例提供了一种基于操作系统层的虚拟方法,包括:
在系统调用层截获对系统资源的调用请求;
根据所述调用请求,将所述系统资源的主机路径重定向为虚拟机目录下对应的路径;
根据重定向后的路径,对所述系统资源执行调用请求。
本发明实施例还提供了一种基于操作系统层虚拟装置,包括:
拦截模块,用于在系统调用层截获对系统资源的调用请求;
重定向模块,用于根据所述拦截模块截获的调用请求,将所述系统资源的主机路径重定向为虚拟机目录下对应的路径;
执行模块,用于根据所述重定向模块重定向后的路径,对所述系统资源执行调用请求。
由上述本发明实施例提供的技术方案可以看出,本发明实施例中,通过在系统调用层截获对系统资源的调用请求;将所述系统资源的主机路径重定向为虚拟机目录下对应的路径;可以实现基于操作系统层的虚拟化,由于不需要硬件抽象层的支持,所以在满足了故障容忍和入侵容忍系统的需求下,还具有占用系统资源少、灵活性高、启动延迟少的特点。
附图说明
图1为本发明实施例提供的所述方法流程示意图一;
图2为本发明实施例提供的所述方法流程示意图二;
图3为本发明实施例提供的所述方法流程示意图三;
图4为本发明实施例提供的所述方法流程示意图四;
图5为本发明实施例提供的所述方法流程示意图五;
图6为本发明实施例提供的所述方法流程示意图六;
图7为本发明实施例提供的所述方法流程示意图七;
图8为本发明实施例提供的所述方法流程示意图八;
图9为本发明实施例提供的所述方法流程示意图九;
图10为本发明实施例提供的所述方法流程示意图十;
图11为本发明实施例提供的所述方法流程示意图十一;
图12为本发明实施例提供的所述方法流程示意图十二;
图13为本发明实施例提供的所述方法流程示意图十三;
图14为本发明实施例提供的所述方法流程示意图十四;
图15为本发明实施例提供的所述系统结构示意图一;
图16为本发明实施例提供的所述系统结构示意图二;
图17为本发明实施例提供的所述系统结构示意图三;
图18为本发明实施例提供的所述执行模块结构示意图。
具体实施方式
本发明实施例提供了一种基于操作系统层的虚拟方法,如附图1所示,该方法具体可以包括:
步骤0101,在系统调用层截获对系统资源的调用请求。
步骤0102,根据调用请求,将系统资源的主机路径重定向为虚拟机目录下对应的路径。
步骤0103,根据重定向后的路径,对系统资源执行调用请求。
本发明实施例中,还可以对系统资源进行写时拷贝操作,具体为:
如果调用请求为读取系统资源,则向主机系统发送调用请求;
如果调用请求为更改系统资源,则将主机系统中的系统资源拷贝至重定向后路径,并对拷贝后的系统资源进行调用操作。
本发明实施例中所涉及的重定向,具体可以为将系统资源的主机路径重定向为虚拟机目录下对应的路径。
本发明实施例所提供的基于操作系统层的虚拟方法,通过在系统调用层截获对系统资源的调用请求;将所述系统资源的主机路径重定向为虚拟机目录下对应的路径;可以实现基于操作系统层的虚拟化,由于不需要硬件抽象层的支持,所以在满足了故障容忍和入侵容忍系统的需求下,还具有占用系统资源少、灵活性高、启动延迟少的特点。
由于用户进程在运行时,可能访问或修改各种系统资源,为实现轻量级的真实并隔离的操作系统层虚拟执行环境,本发明实施例提供的基于操作系统层的虚拟机方法采用了命名空间虚拟化和写时拷贝技术。
本发明实施例所涉及的命名空间虚拟化技术是指在系统调用层(SystemCall Level)上截获调用请求,在用户进程请求访问各种系统资源时控制这些被访问的系统资源的命名,这些系统资源包括文件系统、注册表、内核对象等。通过重定向系统资源路径或重命名系统资源,使得最终被调用的系统资源对请求的用户进程是正常的,但是对于主机系统可能是不存在(系统资源是虚拟出来的),或者仅仅是主机系统资源的拷贝。这样就可以达到以进程为单元,将对系统资源的虚拟化进程与主机操作系统隔绝开的目的。
此外,为了使虚拟机既共享主机系统的资源和环境,又能将自身对系统资源的更改与主机系统隔绝开,本发明实施例中还采用了写时拷贝(Copy-On-Write)机制。具体为当虚拟机被创建时,它共享主机系统中的系统资源。当运行在虚拟机中的进程仅仅是请求读取某个系统资源时,该进程的读请求被发送给主机操作系统,完成读取操作,此时虚拟机并不占用任何系统资源;但当进程请求更改某个系统资源时,虚拟机会拷贝一个原系统资源到虚拟机目录中,该更改请求实际操作的是经拷贝后虚拟机中的系统资源,而不会影响主机系统中原有的系统资源。
需要说明的是,对于不同类型的系统资源,读写调用请求是基于系统资源的句柄来实现的,这些句柄在先前由虚拟机中执行的进程创建或打开系统资源时生成。虚拟机只需在创建或打开这些系统资源时重定向调用请求,当后续再有对这些系统资源的读写调用请求发生时,相关的句柄已经是被重定向版本,该类读写调用请求无需再被重定向。
需要说明的是,本发明实施例提供的虚拟方法,在执行对不同类型系统资源的虚拟操作之前,还可以先加载并安装各种驱动程序,完成虚拟机启动操作。
为了便于对本发明实施例提供的技术方案的理解,下面结合附图,对本发明实施例提供的基于操作系统层的虚拟方法,对不同类型系统资源,包括文件系统、注册表、内核对象以及服务进程进行虚拟操作的过程进行详细说明。
(一)文件系统
本发明实施例中所涉及的文件系统,具体可以包括普通磁盘文件(文件、目录)和特殊设备文件(命名管道、油槽)。
为了提高虚拟机性能,本发明实施例可以采用以单个对象(普通磁盘文件或特殊设备文件)为单位的写时拷贝机制。
本发明实施例中,首先在核心态虚拟层拦截并控制与文件系统相关的调用请求。当截获到与文件系统相关的调用请求时,首先检查发起该调用请求的进程是否为被虚拟化的进程。如果不是,则将该调用请求直接传递到主机系统调用函数,由主机系统调用函数负责后续处理;否则,则根据不同的调用请求,对文件系统资源进行不同的处理。
具体可以包括:
1)若调用请求为创建文件请求,则本发明实施例的具体操作过程如附图2所示,包括:
步骤0201,将文件路径重定向为虚拟机目录下路径。
若调用请求为创建文件请求,则将需要创建的文件路径修改、即重定向为虚拟机根目录下对应的路径,此过程即为重定向过程。
例如当主机系统上的“C:\WINDOWS\infector.exe”文件被打开时,可以将其拷贝至为“C:\VMStore\HardVolume1\WINDOWS\infector.exe”。其中,“C:\VMStore”为虚拟机根目录。
步骤0202,使用重定向后的路径创建文件。
根据创建文件请求,使用重定向后的路径,即虚拟机根目录下对应的路径创建文件,可称这时创建的文件为虚拟文件。
在一个具体实施例中,可以使用ZwCreateFile()函数创建文件,ZwCreateFile()函数中的ObjectAttributes参数中有需要创建的目标文件的路径,这时,可以修改ObjectAttributes参数中目标文件中的路径为定向后的路径,使其在虚拟机根目录下对应的路径创建文件。
步骤0203,记录重定向后路径与文件句柄之间的对应信息。
由于后续对文件系统的操作中,文件以及目录都是由句柄来标识的(句柄在文件系统被创建时已由系统自动生成),因此,需要记录重定向后的路径与该文件句柄之间的对应信息,使得当后续需要对该文件进行读写类调用时,可以根据句柄来访问创建的虚拟文件。
需要说明的是,在执行上述步骤时,可能会因某一步骤的出错而导致整个创建过程失败,为了提示用户及对出错位置进行快速定位,可在每个步骤后执行判断此步骤是否成功,如果失败,则给出创建失败的提示信息。对文件系统的其它操作以及对其它系统资源的操作都可以采用类似的处理方法,在此不再赘述。
另外,失败提示操作,也可以使用于对文件系统的其他调用操作,比如打开、删除等。
2)若调用请求为打开文件请求,则本发明实施例的具体操作过程如附图3所示,包括:
步骤0301,将文件的路径重定向为虚拟机目录下路径。
步骤0302,判断是否可以使用重定向后的路径打开文件,若成功,执行步骤0307;若失败,则执行步骤0303。
步骤0303,判断打开文件请求的访问权限是否为只读权限,若是,则执行步骤0304,打开文件请求使用主机文件路径打开文件,后续执行步骤0307;否则,执行步骤0305。
步骤0305,将文件拷贝至虚拟机目录下,此时文件的路径指向虚拟机目录,那么,此时文件路径即可理解为重定向后的路径。
步骤0306,打开文件请求使用重定向后的路径打开文件。
在一个具体实施例中,可以使用ZwOpenFile()函数打开文件,ZwOpenFile()函数中的ObjectAttributes参数中有需要打开的目标文件的路径,这时,可以修改ObjectAttributes参数中目标文件中的路径为定向后的路径,使其在虚拟机根目录下对应的路径创建文件。
步骤0307,记录文件重定向后的路径与文件句柄之间的对应信息。
3)若调用请求为查询文件请求,则本发明实施例的具体操作过程如附图4所示,包括:
步骤0401,获取查询文件请求中包含的句柄。
由于查询文件请求所查询的文件是已经建立的文件,因此,该查询文件请求中包含有与建立该文件时所采用的重定向路径相对应的句柄,获取查询文件请求中包含的句柄信息。
步骤0402,根据句柄信息,获取对应的重定向后的路径信息。
根据查询文件请求中包含的句柄信息,通过查询记录,获取与该句柄对应的重定向后的路径信息。
步骤0403,查询文件请求使用重定向后的路径信息查询文件。
查询文件请求使用与查询文件请求中包含的句柄信息对应的、重定向后的路径信息,查询文件的相关信息。
在一个具体实施例中,可以ZwQueryInformationFile()函数查询文件,并通过ZwQueryDirectoryFile()函数返回查询结果。
4)若调用请求为重命名文件请求,则本发明实施例为防止对主机系统的破坏,实现一个隔离的执行环境,需要做特殊处理。该处理如附图5所示,包括:
步骤0501,判断文件是否被写时拷贝(Copy-On-Write),若是,则执行步骤0502;否则,执行步骤0503。
步骤0502、将重命名请求传递给主机系统调用函数,后续执行步骤0505。
步骤0503,对文件进行拷贝操作,将文件拷贝至虚拟机目录下,并重定向该文件的路径。
步骤0504,重命名请求使用重定向后的路径对文件进行重命名操作。
步骤0505,记录此次重命名操作。
在一个具体实施例中,可以使用NtSetInformationFile()函数对文件进行重命名操作。
5)若系统调用请求为删除文件请求,则本发明实施例的处理过程如附图6所示,包括:
步骤0601,判断文件是否被写时拷贝,若是,则执行步骤0602,将该删除文件请求传递给主机系统调用函数,后续执行步骤0604,记录此次删除操作;否则,执行步骤0603,删除文件请求直接删除文件,然后执行步骤0604,记录此次删除操作。
在一个具体实施例中,可以使用NtSetInformationFile()函数对文件进行删除操作。
(二)注册表
注册表的数据存放和操作方式与文件系统类似。因此,注册表虚拟化可以使用与文件系统虚拟化类似的方式,即同样采用命名空间虚拟化和写时拷贝机制。在发生写时拷贝时,注册表键及其子键和键值会一同拷贝到虚拟机新创建的键下,如\HKEY_CURRENT_USER\VM根键下。
本发明实施例中,首先在核心态虚拟层拦截并控制与注册表相关的调用请求。当截获到与注册表相关的调用请求时,首先检查发起该调用请求的进程是否为被虚拟化的进程。如果不是,则将该调用请求直接传递到主机系统调用函数,由主机系统调用函数负责后续处理;否则,则根据不同的调用请求,对注册表系统资源进行不同的处理。
需要说明的是,对于注册表系统资源的调用操作所适用的相关函数,与文件系统类似,具体可参照文件系统的相关描述,在此不再追述。
对于注册表的具体操作过程可以包括:
1)若调用请求为创建注册表键请求时,则本发明实施例的具体操作过程如附图7所示,包括:
步骤0701,将注册表键的路径重定向为虚拟机目录下路径。
若调用请求为创建注册表键请求时,将需要创建的注册表键路径修改、即重定向为虚拟机根目录下对应的路径。
步骤0702,根据创建注册表键请求使用重定向后的路径创建注册表键。
根据创建注册表键请求使用重定向后的路径,即虚拟机根目录下对应的路径,创建注册表键。
步骤0703,记录重定向后路径与注册表键句柄之间的对应信息。
由于后续对注册表键的操作中,注册表键是由句柄来标识的,因此,记录重定向后路径与注册表键句柄之间的对应信息。
2)若调用请求为打开注册表键请求时,则本发明实施例的具体操作过程如附图8所示,包括:
步骤0801,将注册表键的路径重定向为虚拟机目录下对应的路径。
步骤0802,判断是否可以使用重定向后的路径打开注册表键,若成功,执行步骤0807;若失败,则执行步骤0803。
步骤0803,判断打开注册表键请求的访问权限是否为只读权限,若是,则执行步骤0804,根据打开注册表键请求使用主机注册表键路径打开注册表键,后续执行步骤0807;否则,执行步骤0805。
步骤0805,将主机注册表键拷贝至虚拟目录下。
此时注册表键的路径指向虚拟机目录,那么,此时注册表键的路径即可理解为重定向后的路径。
步骤0806,根据打开注册表键请求使用重定向后的路径打开注册表键。
步骤0807,记录重定向后路径与注册表键句柄之间的对应信息。
3)若调用请求为查询注册表键请求,则本发明实施例的具体操作过程如附图9所示,包括:
步骤0901,获取查询注册表键请求中包含的句柄信息。
步骤0902,根据句柄信息,获取对应的重定向后的路径信息。
步骤0903,根据查询注册表键请求使用重定向后的路径,查询注册表键。
4)若调用请求为重命名注册表键请求,则本发明实施例的处理如附图10所示,包括:
步骤1001,判断注册表键是否被写时拷贝,若是,则执行步骤1002,将重命名注册表键请求传递给主机系统调用函数,后续执行步骤1005,记录此次重命名操作;否则,执行步骤1003。
步骤1003,将主机注册表键拷贝至虚拟机目录下,并重定向该注册表键的路径。
步骤1004,根据重命名请求使用重定向后的路径对注册表键进行重命名操作。
步骤1005,记录此次重命名操作。
5)若调用请求为删除注册表键请求,则本发明实施例的处理过程如附图11所示,包括:
步骤1101,判断注册表键是否被写时拷贝,若是,则执行步骤1102,将删除注册表键请求传递给主机系统调用函数,后续执行步骤1103,记录此次删除操作;否则,则直接执行步骤1103,记录此次删除操作。
(三)内核对象
现存的主机操作系统,如Windows,在内核中提供了多种命名对象,包括互斥对象,事件对象,信号量对象,定时器对象,区域对象,端口对象等,上述对象属于全局对象,为多个进程所使用。为避免虚拟机操作内核对象而对主机系统带来影响,需要对内核对象进行虚拟化处理。
内核对象通常情况下以目录的方式层次管理,所有内核对象共有一个根目录,不同类的对象有不同的目录,与文件系统、注册表虚拟化操作类似,也可以采用重定向内核对象根目录的方法,实现内核对象的虚拟化。
本发明实施例中,首先在核心态虚拟层拦截并控制与内核对象相关的调用请求。当截获到与内核对象相关的调用请求时,首先检查发起该调用请求的进程是否为被虚拟化的进程。如果不是,则将该调用请求直接传递到主机系统调用函数,由主机系统调用函数负责后续处理;否则,则根据不同的调用请求,对内核对象资源进行不同的处理。
需要说明的是,对于内核对象系统资源的调用操作所适用的相关函数,与文件系统类似,具体可参照文件系统的相关描述,在此不再追述。
下面以事件对象为例,分别对本发明实施例对不同调用请求进行处理的过程进行详细表述:
1)若调用请求为创建事件对象请求时,则本发明实施例的处理过程如附图12所示,具体可以包括:
步骤1201,判断目标事件对象是否存在。若目标事件对象不存在,则执行步骤1202;否则,执行步骤1205,将创建事件请求传递至主机系统的创建事件对象系统调用。
步骤1202,将该事件对象的路径重定向到虚拟机内核对象根目录,后续执行步骤1203。
步骤1203,使用重定向后的路径创建事件对象。
步骤1204,记录该事件对象重定向后的路径与句柄之间的对应关系。
步骤1205,将创建事件请求传递至主机系统的创建事件对象系统调用。
若该事件对象已经存在,则该事件对象可能是系统关键进程(例如服务)创建的,而该事件对象是进程运行所必需的资源,由于事件对象不能像文件和注册表那样被复制,因此,如果创建事件对象请求所要创建的事件对象已经存在于主机系统中,则需将创建事件请求传递至主机系统的创建事件对象系统调用。
2)若调用请求为打开事件对象请求,则本发明实施例的处理过程如附图13所示,具体可以包括:
步骤1301,重定向事件对象路径到虚拟机的内核对象根目录。
步骤1302,判断使用重定向后的路径是否能够打开事件对象。如果成功,则执行步骤1304,返回该事件对象的句柄。否则,执行步骤1303。
步骤1303,根据打开事件对象请求尝试打开请求的事件对象。如果成功,则执行步骤1304,返回该事件对象的句柄;否则执行1305,返回失败信息。
各种内核对象的虚拟处理方式与事件对象相似,因此不再进行描述。
(四)服务进程
主机系统中的程序可以通过在服务控制管理器(SCM:Service ControlManager)中添加服务名来安装一个服务进程,相应的服务进程镜像路径被写入SCM数据库。SCM是关键系统进程,与操作系统组件有复杂的关联,不能复制到虚拟机中。因此,虚拟机与主机系统共享SCM和SCM数据库。
服务进程的虚拟化过程具体可以包括创建服务进程和启动服务进程两步:在创建服务进程时,可以采用与文件系统和注册表相同的虚拟化操作来实现;在启动服务进程时,由于系统是依据服务进程的名称来启动服务进程的,所以在启动服务进程时,需要将服务进程重定向为新的虚拟的服务名称。
本发明实施例中,首先在核心态虚拟层拦截并控制与服务进程相关的调用请求。当截获到与服务进程相关的调用请求时,首先检查发起该调用请求的进程是否为被虚拟化的进程。如果不是,则将该调用请求直接传递到主机系统调用函数,由主机系统调用函数负责后续处理;否则,则根据不同的调用请求,对内核对象资源进行不同的处理。
具体可以包括:
1)若调用请求为创建服务进程请求,则本发明实施例的处理过程如附图14所示,包括:
步骤1401,对所要创建的服务进程进行重命名及重定向程序路径操作。
例如,如果所要创建的服务进程名为Service,程序路径为/a/b.exe,则可以将写入SCM数据库的服务名重命名为Service-VM,将程序路径重定向为VM/a/b.exe。
步骤1402,将该服务进程文件拷贝至虚拟机下。
2)若调用请求为启动服务请求,则可以将该启动服务请求重定向至之前已经进行重命名后的服务进程。
本发明实施例中,对于文件系统、注册表以及内核对象的操作,具体可以在操作系统和应用程序之间虚拟层的用户态虚拟层完成,而对于服务进程的操作,则可以在虚拟层的内核态虚拟层完成。
通过上述描述可以看出,本发明实施例提供的基于操作系统层的虚拟方法,在操作系统和应用程序之间部署虚拟层,能够使得虚拟机中的进程访问不修改主机系统资源,而对资源的修改结果保存在虚拟机中,用户在实际操作过程不会感知虚拟过程的存在,因此,这种虚拟方法对主机系统是透明的。并且,本发明实施例提供了基于操作系统层的虚拟方法,由于不需要硬件抽象层的支持,与当前采用硬件虚拟技术实现的虚拟机相比,在满足了故障容忍和入侵容忍系统的需求下,还具有占用系统资源少、灵活性高、启动延迟少的特点。该方法对操作系统绝大多数资源虚拟化,实现了一个轻量级的,真实并隔离的虚拟操作环境,能够安全地执行恶意程序和非恶意程序,并记录程序的行为,满足故障容忍和入侵容忍系统的需求。
本发明实施例还提供了一种基于操作系统层的虚拟装置,如附图15所示,该装置包括:
拦截模块1501,用于在系统调用层截获对系统资源的调用请求。
重定向模块1502,用于根据拦截模块1501截获的调用请求,将系统资源的主机路径重定向为虚拟机目录下对应的路径。
重定向模块1 502具体可以将系统资源在主机系统中的目录,重定向至虚拟机根目录下。
比如,将“C:\infector.exe”重定向为
“C:\VMStore\HardVolume1\infector.exe”,其中,“C:\VMStore”为虚拟机根目录。
执行模块1503,用于根据重定向模块1502重定向后的路径,对系统资源执行调用请求。
在本发明实施例提供的虚拟装置的一个具体实施例中,如附图16所示,进一步还可以包括启动模块1504,用于加载并安装各种驱动程序,完成虚拟机装置启动。
在本发明实施例提供的虚拟装置的一个具体实施例中,如附图17所示,进一步还可以包括写时拷贝模块1505,用于当拦截模块1501截获的调用请求为读取系统资源时,向主机系统发送该调用请求;当拦截模块1501截获的调用请求为更改系统资源时,拷贝原系统资源至重定向后路径,即拷贝至虚拟根目录下。
本发明实施例所涉及的执行模块1503,具体可如附图18所示,包括:
第一执行单元1801,用于根据拦截模块1501截获的调用请求,采用重定向模块1502重定向后的路径,对文件系统、或者注册表、或者内核系统资源执行调用请求;
第二执行单元1802,用于根据拦截模块1501截获调用请求,采用重定向模块1502重定向后的路径,对服务进程系统资源执行调用请求。
且所述第一执行单元应用于所述核心态虚拟层,所述第二执行单元应用于所述用户态虚拟层。
本发明实施例中所涉及功能模块的具体操作流程,可以参照本发明方法实施例中的相关部分,这里不再赘述。
通过上述描述可以看出,本发明实施例提供的基于操作系统层的虚拟装置,在操作系统和应用程序之间部署虚拟层,能够使得虚拟机中的进程访问不修改主机系统资源,而对资源的修改结果保存在虚拟机中,用户在实际操作过程不会感知虚拟过程的存在,因此,该虚拟装置对主机系统是透明的。并且,本发明实施例提供了基于操作系统层的虚拟装置,由于不需要硬件抽象层的支持,与当前采用硬件虚拟技术实现的虚拟机相比,在满足了故障容忍和入侵容忍系统的需求下,还具有占用系统资源少、灵活性高、启动延迟少的特点。该装置对操作系统绝大多数资源虚拟化,实现了一个轻量级的,真实并隔离的虚拟操作环境,能够安全地执行恶意程序和非恶意程序,并记录程序的行为,满足故障容忍和入侵容忍系统的需求。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (13)

1.一种基于操作系统层的虚拟方法,其特征在于,包括:
在核心态虚拟层截获对系统资源的调用请求;
根据所述调用请求,将所述系统资源的主机路径重定向为虚拟机目录下对应的路径;
根据重定向后的路径,对所述系统资源执行调用请求。
2.根据权利要求1所述的方法,其特征在于,所述在核心态虚拟层截获对系统资源的调用请求包括:
判断所述调用请求所属进程是否为虚拟化进程;
若所述调用请求所属进程为虚拟化进程,则根据所述调用请求,对系统资源进行虚拟化处理;否则,则将所述调用请求传递至主机系统调用函数。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:对所述系统资源进行写时拷贝操作;
所述写时拷贝操作包括:
如果所述调用请求为读取所述系统资源,则向主机系统发送所述调用请求;
如果所述调用请求为更改所述系统资源,则将主机系统中的系统资源拷贝至所述重定向后路径,对所述拷贝后的系统资源进行调用操作。
4.根据权利要求3所述的方法,其特征在于,若所述调用请求为创建或打开第一系统资源请求,所述第一系统资源包括文件系统、或者注册表、或者内核对象时,则所述根据重定向后的路径,对所述系统资源执行调用请求包括:
使用重定向后的路径创建或打开所述第一系统资源;
记录所述重定向后的路径与所述第一系统资源的句柄之间的对应关系。
5.根据权利要求4所述的方法,其特征在于,所述使用重定向后的路径创建或打开所述第一系统资源具体为:
若打开所述第一系统资源失败,则判断所述打开第一系统资源请求是否为只读权限;
若判断结果为是,则采用所述系统资源主机路径打开所述第一系统资源,否则,则将所述第一系统资源拷贝至虚拟机目录下,重定向所述第一系统资源的路径,并使用重定向后的路径打开所述拷贝后的第一系统资源。
6.根据权利要求4述的方法,其特征在于,若所述调用请求为查询系统资源请求,则所述根据重定向后的路径,对所述系统资源执行调用请求包括:
根据所述查询系统资源请求中包含的句柄信息,获取在创建或打开所述第一系统资源时,与所述句柄信息建立对应关系的重定向后的路径信息;
使用所述重定向后的路径信息查询所述第一系统资源。
7.根据权利要求4所述的方法,其特征在于,若所述调用请求为重命名所述第一系统资源请求,则所述根据重定向后的路径,对所述系统资源执行调用请求包括:
判断所述第一系统资源是否被写时拷贝;
若所述第一系统资源被写时拷贝,则将重命名请求发送至主机系统调用函数,并记录此次重命名操作;
若所述第一系统资源没有被写时拷贝,则将所述第一系统资源拷贝至虚拟机目录下,重定向所述第一系统资源的路径,并使用重定向后的路径对所述拷贝后的第一系统资源进行重命名操作,并记录此次重命名操作。
8.根据权利要求4所述的方法,其特征在于,若所述调用请求为删除系统资源请求,则所述根据重定向后的路径,对所述系统资源执行调用请求包括:
判断所述第一系统资源是否被写时拷贝;
若所述第一系统资源被写时拷贝,则将所述删除请求发送至主机系统调用函数,并记录此次删除操作;
若所述第一系统资源没有被写时拷贝,则将记录所述删除操作。
9.根据权利要求3所述的方法,其特征在于,若所述系统资源为第二系统资源,所述第二系统资源包括服务进程时,则所述根据重定向后的路径,对所述系统资源执行调用请求包括:
若所述调用请求为创建服务进程请求时,对所述服务进程进行重命名和重定向路径操作,并将所述服务进程拷贝至虚拟机目录下;
若所述调用请求为启动服务进程请求时,将所述启动服务进程请求重定向为重命名后的所述服务进程。
10.一种基于操作系统层的虚拟装置,其特征在于,包括:
拦截模块,用于在核心态虚拟层截获对系统资源的调用请求;
重定向模块,用于根据所述拦截模块截获的调用请求,将所述系统资源的主机路径重定向为虚拟机目录下对应的路径;
执行模块,用于根据所述重定向模块重定向后的路径,对所述系统资源执行调用请求。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
启动模块,用于加载和安装驱动程序,完成虚拟机装置的启动。
12.根据权利要求10所述的装置,其特征在于,所述装置还包括:
写时拷贝模块,用于当所述拦截模块截获的调用请求为读取所述系统资源时,向主机系统发送所述调用请求;当所述拦截模块截获的调用请求为更改所述系统资源时,拷贝原系统资源到所述重定向后路径,对所述拷贝后的系统资源进行调用操作。
13.根据权利要求10或12所述的装置,所述执行模块包括:
第一执行单元,用于根据所述拦截模块截获的调用请求,采用所述重定向模块重定向后的路径,对文件系统、或者注册表、或者内核对象系统资源执行调用请求;
第二执行单元,用于根据所述拦截模块截获的调用请求,采用所述重定向模块重定向后的路径,对服务进程系统资源执行调用请求。
CN2009100810559A 2009-03-31 2009-03-31 基于操作系统层的虚拟方法及虚拟装置 Expired - Fee Related CN101551756B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100810559A CN101551756B (zh) 2009-03-31 2009-03-31 基于操作系统层的虚拟方法及虚拟装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100810559A CN101551756B (zh) 2009-03-31 2009-03-31 基于操作系统层的虚拟方法及虚拟装置

Publications (2)

Publication Number Publication Date
CN101551756A CN101551756A (zh) 2009-10-07
CN101551756B true CN101551756B (zh) 2012-02-15

Family

ID=41156007

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100810559A Expired - Fee Related CN101551756B (zh) 2009-03-31 2009-03-31 基于操作系统层的虚拟方法及虚拟装置

Country Status (1)

Country Link
CN (1) CN101551756B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2575039B1 (de) 2011-09-28 2016-12-14 Siemens Aktiengesellschaft Verfahren und Anordnung zur Nutzung einer Ressource einer Hardware-Plattform mit zumindest zwei virtuellen Maschinen
CN102567078B (zh) * 2011-12-28 2014-12-24 华为数字技术(成都)有限公司 一种注册表虚拟化方法及装置
CN102609299B (zh) * 2012-01-13 2015-03-11 深圳市深信服电子科技有限公司 虚拟化系统及其创建方法、装置
CN103309690B (zh) * 2012-03-12 2016-08-17 联想(北京)有限公司 处理数据的方法和电子设备
CN102880513B (zh) * 2012-08-10 2015-05-13 小米科技有限责任公司 一种移植rom的方法及装置
CN103428582B (zh) * 2013-09-02 2016-09-28 贝壳网际(北京)安全技术有限公司 播放视频的方法、装置和客户端
CN104050017B (zh) * 2014-07-01 2017-05-03 龙芯中科技术有限公司 运行虚拟机的控制方法和装置
US11275861B2 (en) * 2014-07-25 2022-03-15 Fisher-Rosemount Systems, Inc. Process control software security architecture based on least privileges
CN104182684A (zh) * 2014-08-15 2014-12-03 浪潮电子信息产业股份有限公司 一种安全进程运行环境的设计解决方法
CN106909437B (zh) * 2015-12-23 2021-01-29 华为技术有限公司 虚拟机内核的保护方法及装置
CN106169048B (zh) * 2016-06-29 2019-03-12 珠海豹趣科技有限公司 文件删除方法、装置及电子设备
CN107832145B (zh) * 2017-10-24 2021-08-06 中安云科科技发展(山东)有限公司 一种基于虚拟机的系统资源释放方法
US11334364B2 (en) 2019-12-16 2022-05-17 Microsoft Technology Licensing, Llc Layered composite boot device and file system for operating system booting in file system virtualization environments
US20210382739A1 (en) * 2020-06-04 2021-12-09 Microsoft Technology Licensing, Llc Partially Privileged Lightweight Virtualization Environments
US20220129541A1 (en) * 2020-10-23 2022-04-28 Red Hat, Inc. Containers system auditing through system call emulation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1468395A (zh) * 2000-08-09 2004-01-14 英特尔公司 无头系统内存访问的重定向
CN1791037A (zh) * 2005-12-26 2006-06-21 北京航空航天大学 一种实现Web服务自动化测试的方法
US7275136B1 (en) * 2002-09-06 2007-09-25 Vmware, Inc. Virtualization system for computers with a region-based memory architecture

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1468395A (zh) * 2000-08-09 2004-01-14 英特尔公司 无头系统内存访问的重定向
US7275136B1 (en) * 2002-09-06 2007-09-25 Vmware, Inc. Virtualization system for computers with a region-based memory architecture
CN1791037A (zh) * 2005-12-26 2006-06-21 北京航空航天大学 一种实现Web服务自动化测试的方法

Also Published As

Publication number Publication date
CN101551756A (zh) 2009-10-07

Similar Documents

Publication Publication Date Title
CN101551756B (zh) 基于操作系统层的虚拟方法及虚拟装置
US10162722B2 (en) Virtual machine aware replication method and system
US9804929B2 (en) Centralized management center for managing storage services
US6618736B1 (en) Template-based creation and archival of file systems
US8555278B2 (en) Method and system for migrating a selected set of virtual machines between volumes
US20180254951A1 (en) Migration of an existing computing system to new hardware
US11216341B2 (en) Methods and systems for protecting databases of a database availability group
CN102541658B (zh) 将机器转换为虚拟机
CN102662741B (zh) 虚拟桌面的实现方法、装置和系统
KR101606212B1 (ko) 하이퍼바이저 파일 시스템
US8930654B1 (en) Method and apparatus for mapping virtual drives
KR101437122B1 (ko) Os 가상화를 이용하여 서비스를 제공하는 장치 및 방법
US10496601B1 (en) Efficient file system parsing using snap based replication
CN102214127A (zh) 一种基于操作系统虚拟化原理的数据集中存储及备份方法
NZ565717A (en) Archiving data in a virtual application environment
US9858149B2 (en) Accessing overlay media over a network connection
CN109906439B (zh) 通过存储控制器向对象存储云的时间点备份
US11397650B1 (en) Methods and systems for protecting virtual machine data in networked storage systems
US20140082275A1 (en) Server, host and method for reading base image through storage area network
US20200089411A1 (en) Reduction of processing overhead for point in time copy to allow access to time locked data
US20240056482A1 (en) Expedited recovery based on data storage management integration with cyber threat deception
CN115878374B (zh) 针对指派给租户的命名空间备份数据
US11726664B2 (en) Cloud based interface for protecting and managing data stored in networked storage systems
US10303782B1 (en) Method to allow multi-read access for exclusive access of virtual disks by using a virtualized copy of the disk
CN115485677A (zh) 在分布式数据存储环境中的安全数据复制

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: HUAWEI DIGITAL TECHNOLOGY (CHENGDU) CO., LTD.

Free format text: FORMER NAME: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES CO., LTD.

CP01 Change in the name or title of a patent holder

Address after: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Patentee after: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd.

Address before: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Patentee before: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right

Effective date of registration: 20220916

Address after: No. 1899 Xiyuan Avenue, high tech Zone (West District), Chengdu, Sichuan 610041

Patentee after: Chengdu Huawei Technologies Co.,Ltd.

Address before: 611731 Qingshui River District, Chengdu hi tech Zone, Sichuan, China

Patentee before: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120215

CF01 Termination of patent right due to non-payment of annual fee