CN103064724A - 虚拟机构建方法及装置 - Google Patents
虚拟机构建方法及装置 Download PDFInfo
- Publication number
- CN103064724A CN103064724A CN2012105446823A CN201210544682A CN103064724A CN 103064724 A CN103064724 A CN 103064724A CN 2012105446823 A CN2012105446823 A CN 2012105446823A CN 201210544682 A CN201210544682 A CN 201210544682A CN 103064724 A CN103064724 A CN 103064724A
- Authority
- CN
- China
- Prior art keywords
- virtual
- virtual machine
- program
- user
- session
- 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.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供一种虚拟机的构建方法及装置,该虚拟机包括:虚拟显示与输入控制系统、虚拟操作系统以及虚拟周边设备。其构建方法包括:针对目标虚拟机,在本机操作系统中,配置一个专属的使用者会话;在所述的使用者会话中,创建虚拟机专属的虚拟显示与输入控制系统,创建目标虚拟机专属的虚拟操作系统;创建出目标虚拟机的虚拟周边设备。虚拟机的构建装置包括:虚拟显示与输入控制模块、创建模块、载入模块、注入模块、虚拟操作系统模拟器、虚拟设备模块。依据本发明的虚拟机不需要安装额外的操作系统,加快了虚拟机的创建速度,节省了CPU、内存、存储空间等资源,周边设备可以跨虚拟机共享,且支持热插拔,便于虚拟机使用与管理。
Description
技术领域
本发明实施例涉及计算机虚拟技术领域,尤其涉及一种轻型虚拟机构建方法及装置。
背景技术
在目前的虚拟机技术中,最普遍的方式,是通过模拟完整计算机硬件环境的方式,来建立虚拟的计算机硬件机器。由于这种虚拟机技术所创建的虚拟机,非常的消耗计算机的系统资源,所以又称为重型虚拟机(Heavy-Weight Virtual Machine;以下简称:HWVM)。图1是现有重型虚拟机技术的工作原理示意图,如图1所示,如果要在重型虚拟机(HWVM)上安装并运行应用程序,必须先在HWVM上重新安装一套操作系统(即,Guest OS),然后才能在此Guest OS上,正常的安装并运行应用程序(Guest App)。图2是现有的重型虚拟机的运行模式示意图,如图2所示,由于HWVM是模拟一个空的硬件机器,所以在HWVM里运行的应用程序,在需要调用系统资源时(例如,读写文件、显示窗体等),下达的每一个指令,都必须透过层层多次指令转换与指令传达后,才能正确执行。以下为具体的指令转换与传达过程:
1)首先使用者应用程序(Guest App)将高阶指令传递给Guest OS。
2)接着,Guest OS将高阶指令转换成对硬件调用的低阶指令,并传送给虚拟硬件层(Virtual Hardware Platform)。
3)接着,虚拟硬件层将接收到的低阶硬件调用指令转换成对虚拟机管理模块(VirtualMachine Manager;以下简称VMM)的调用,并将Guest OS的调用请求传达给VMM。
4)接着,VMM判断接收到的指令是否是关于CPU、内存的调用,如果是,则VMM模拟CPU与内存,并执行所接收到的CPU、内存的调用指令。
5)如果不是,则VMM将虚拟硬件层的调用指令通过虚拟机扩展(VMX)传递给虚拟机应用处理程序(VM App)。
6)VM App将VMM传达过来的调用指令转换成对本机操作系统(Host OS)的高阶指令,并透过对Host OS的调用将Guest OS的调用请求传送给本机的Host OS。
7)Host OS需要再将高阶的调用指令,透过驱动程序转换成硬件低阶指令,最终调用对应的实体硬件设备(Device)。
因此,在图1重型虚拟机中的应用程序如果需要使用周边硬件设备时,不管是虚拟设备还是主机的实体设备,都必须由Virtual Hardware Platform提供相应的硬件接口,再由虚拟机内的Guest OS提供高阶的软件服务接口后,应用程序才能使用该设备。
在实现本发明过程中,发明人发现上述现有的技术中,至少存在如下问题:1、在重型虚拟机(HWVM)中,如果要安装并运行应用程序(Guest Application),就必须先在虚拟机上,配置各种硬件设备的参数、并重新安装一套操作系统(即Guest OS),然后才能正常的安装并运行应用程序,这使得建立虚拟机的过程极为复杂,需要较多的专业知识,且需要付出极多的时间成本;2、在虚拟机中再安装一套Guest OS,使得系统需要运行两层操作系统,这会造成系统资源的严重浪费,也会对系统的整体效能造成非常不利的影响;3、由于应用程序下达的每一个指令,都必须透过层层反复的多次转换、传达,最后才能正确运行。因此,应用程序的运行效能很差,并占用了大量的系统资源。4、每个重型虚拟机都需要自己独立的虚拟硬件(Virtual Hardware Platform)层,因此,不管是虚拟的还是实际的周边硬件设备,都无法跨虚拟机共用,而且也无法实现完整的设备热插拔功能。
发明内容
本发明实施例,提供一种轻型虚拟机(Light-Weight Virtual Machine;以下简称:LWVM)的构建方法,用以解决现有的虚拟机技术中,所创建的虚拟机过于笨重、创建需要的时间长、创建过程复杂、消耗系统资源过大、以及运行速度过慢等问题。
本发明实施例,所提供的轻型虚拟机构建方法,包括:在本机操作系统中,配置目标虚拟机专属的使用者会话;在所配置的使用者会话中,创建虚拟显示与输入控制系统;在所配置的使用者会话中,以本机操作系统(Host OS)为基础,创建目标虚拟机专属的虚拟操作系统;利用本机操作系统虚拟周边设备驱动程序,创建出目标虚拟机的虚拟周边设备;最后,完成一个虚拟机的创建。
其中,在本机操作系统(Host OS)中,创建虚拟显示与输入控制系统指的是:创建可以显示目标虚拟机的桌面环境与运行在虚拟机中,的所有程序(包含应用程序、服务程序、与驱动程序等)所显示内容与画面的一种虚拟屏幕,以及可供使用者操作所述目标虚拟机的专属输入控制系统。其中,所述的虚拟显示屏幕,可以将目标虚拟机所属的桌面环境,以及运行其中的所有的程序的显示内容与画面,呈现在使用者指定的本机的屏幕的显示窗口(Window)画面上,或通过网络,呈现在使用者指定的远程服务器或终端设备(TerminalDevice例如,包含但不限于,各类的手机、平板电脑、瘦客户机等终端设备)的屏幕的显示窗口(Window)画面上;其中,所述专属的输入控制设系统,则会接收本机输入控制设备(例如,包含但不限于,鼠标、键盘、触控屏、遥控器等)的输入控制指令,或接收透过网络传输过来的,远端输入控制设备的输入控制指令,并将输入控制指令传送给虚拟机中相应的程序。因此,在本发明实施例的轻型虚拟机中,使用者除了可以在运行虚拟机的本机(VM Host)上,操作所述的轻型虚拟机外,也可以通过网络,远程操作所述的轻型虚拟机。
其中,以本机操作系统为基础,创建目标虚拟机专属虚拟操作系统指的是:以本机操作系统的功能为基础,在目标虚拟机中,模拟出的其他操作系统(可以是跟本机操作系统相同或相容的操作系统,也可以是不同的操作系统)的功能,此模拟出来的操作系统,又可称为虚拟操作系统(Virtual OS),或操作系统中的操作系统(OS on OS);接着,将在所述虚拟操作系统中,运行的所有的应用程序、服务程序、驱动程序的显示内容与画面,都输出到所述虚拟操作系统所属的目标虚拟机专属的虚拟显示屏幕上。因此,在本发明实施例的轻型虚拟机中,使用者并不需要像使用现有重量级虚拟机一样,需要安装额外的操作系统(GuestOS),这极大的加快了虚拟机的创建速度,并极大的方便了虚拟机的使用与管理;而且,系统也无需为运行额外的操作系统而付出巨大的,如CPU、内存、存储空间等,宝贵的系统资源,从而极大的加快了虚拟机的运行效能,并节省了大量的服务器成本。
其中,利用本机操作系统的虚拟周边设备驱动程序,创建出目标虚拟机的虚拟周边设备指的是:将所述虚拟周边设备驱动程序载入到本机操作系统中,藉以模拟出多个实体周边设备实例(Instance),或模拟出虚拟的周边设备,再由目标虚拟机内的虚拟操作系统,调用本机操作系统内的虚拟周边设备驱动程序功能,以模拟出所述目标虚拟机中的虚拟周边设备。因此,在本发明实施例的轻型虚拟机中,周边设备是可以跨多个虚拟机共享的,而且可以支持热插拔。并且,只要是本机操作系统能支持的周边设备,在本发明实施例的轻型虚拟机内都能使用,不存在现有重量级虚拟机技术,因无法模拟硬件接口而导致无法在虚拟机内使用该设备的问题。
本发明提供了:
一种虚拟机的构建方法,其特征在于包括以下步骤:
A)在本机操作系统中,针对每个目标虚拟机,配置一个专属的使用者会话;
B)在所述使用者会话中,创建目标虚拟机专属的虚拟显示与输入控制系统;
C)在所述使用者会话中,以本机操作系统为基础,创建目标虚拟机专属的虚拟操作系统;
D)利用本机操作系统的虚拟周边设备驱动程序,创建出目标虚拟机的虚拟周边设备。
如上任一所述的方法,其特征在于:
在所述步骤A中,如果本机操作系统支持多使用者会话,则分别针对每个目标轻型虚拟机,创建专属的使用者会话,如果本机操作系统不支持多使用者会话,则可以利用多虚拟桌面功能,模拟出多使用者会话的效果。
如上任一所述的方法,其特征在于:
所述步骤B具体包括,针对所述目标虚拟机,创建可以显示目标虚拟机的桌面环境,与所有运行在目标虚拟机中的应用程序、服务程序、与驱动程序所显示内容与画面的一种虚拟屏幕,以及可供使用者操作所述目标虚拟机的输入控制系统。
如上任一所述的方法,其特征在于:
在所述步骤B中,在所述的使用者会话中,载入虚拟显示驱动程序,从而为这个使用者会话建立专属的虚拟显卡;其次,在所述的使用者会话中,载入输入控制设备驱动程序,从而为这个使用者会话建立专属的输入控制系统;从而完成创建目标虚拟机专属的虚拟显示与输入控制系统。
如上任一所述的方法,其特征在于:
在所述步骤B中,所载入的虚拟显卡驱动程序实例,会将所述使用者会话内,所有应用程序、服务程序、与驱动程序传送过来的显示内容与画面,呈现在使用者指定的运行虚拟机的服务器的屏幕的显示窗口画面上;或者是,通过网络,将所述显示内容与画面呈现在使用者指定的远程服务器或终端设备的屏幕的显示窗口画面上。
如上任一所述的方法,其特征在于:
在所述步骤B中,所载入的输入控制驱动程序实例,接受来自运行虚拟机的服务器分接的输入与控制设备的输入与控制信号,或者是接受来自网络传输过来的远端输入与控制设备的输入与控制信号,并将输入与控制信号传送给目标虚拟机中相应的程序。
如上任一所述的方法,其特征在于:
在所述步骤C中,以本机操作系统的功能为基础,在所述的使用者会话中,利用虚拟操作系统模拟器,创建出的虚拟操作系统,是跟本机操作系统相同的操作系统,或者是不同的操作系统。
如上任一所述的方法,其特征在于:
在所述步骤C中,将虚拟操作系统模拟器,分别注入到壳层程序、服务管理程序和驱动管理程序中,使虚拟操作系统模拟器接管壳层程序、服务管理程序、以及驱动管理程序对操作系统与驱动程序的调用与通信;并接管壳层程序启动应用程序、服务管理程序启动服务程序、与驱动管理程序启动驱动程序的请求;以及,在壳层程序启动应用程序、服务管理程序启动服务程序、和驱动管理程序启动驱动程序时,将虚拟操作系统模拟器,注入新启动的应用程序、服务程序、与驱动程序中,接管上述新启动的程序对操作系统与驱动程序的调用与通信。
如上任一所述的方法,其特征在于:
在步骤C中包括,创建程序容器;针对每种虚拟操作系统模拟器,都有一个对应的专属程序载入器与载入模块;当在程序容器创建后,专属程序载入器会调用专属的载入模块,将壳层程序、服务管理程序,以及驱动管理程序,启动并载入到所述的使用者会话并置于所述的程序容器中;虚拟操作系统模拟器接收到目标程序创建新程序的请求时,会调用所述的相应虚拟操作系统的专属程序载入模块,将新程序启动并载入到所属的使用者会话中,并置于所属的程序容器中。
如上任一所述的方法,其特征在于:
在步骤D中,将所述虚拟周边设备驱动程序载入到本机操作系统中,藉以模拟出多个实体周边设备实例(Instance),或模拟出虚拟的周边设备实例,再由目标虚拟机内的虚拟操作系统,调用本机操作系统内的虚拟周边设备驱动程序所提供的功能,模拟出所述目标虚拟机中的虚拟周边设备。
如上任一所述的方法,其特征在于:
在步骤D中,首先,将需要模拟或分享的周边设备的虚拟设备驱动程序启动并载入到本机的操作系统中;其次,从本机操作系统中,获取使用所述虚拟设备驱动程序提供的功能所需的软件调用接口;其次,将取得的所述的软件调用接口,传给目标虚拟机内的专属虚拟操作系统;最后,由所述目标虚拟机内的专属虚拟操作系统,调用传入的所述的调用虚拟设备驱动程序功能的软件接口,从而完成所述虚拟机中所述虚拟周边设备功能的模拟。
如上任一所述的方法,其特征在于:
在每个所述的虚拟操作系统中,都至少载入一个周边设备配置数据库,用以记录目标虚拟机内的虚拟周边设备的种类、特性、个数、权限、以及对应的本机操作系统内的虚拟周边设备驱动程序实例;透过修改所述的周边设备配置数据库的内容,可以达成动态、及时的新增或移除目标虚拟机内的虚拟周边设备。
如上任一所述的方法,其特征在于:
由于本机操作系统的虚拟设备驱动程序,可以透过创建多个设备实例(Instance)的方式,来模拟多个相同的周边设备,从而分享单一的实体周边设备;因此,透过让不同虚拟机的虚拟操作系统的所述的周边设备配置数据库,对应到相同实体周边设备的虚拟设备驱动程序所创建的不同设备实例,从而达成单一的实体周边设备跨虚拟机分享。
本发明还提供了:
一种虚拟机的构建装置,其特征在于包括以下模块:
虚拟显示与输入控制模块、创建模块、载入模块、注入模块、虚拟操作系统模拟器、虚拟设备模块;
虚拟显示与输入控制模块为构建的虚拟机创建并配置一个虚拟显示与输入控制环境;
创建模块用于在本机操作系统内存中创建一个程序容器;
载入模块,用于将壳层程序、服务管理程序以及驱动管理程序载入所述使用者会话并置于程序容器中;
注入模块将虚拟操作系统模拟器分别注入壳层程序、服务管理程序和驱动管理程序;
虚拟操作系统模拟器接管壳层程序、服务程序和驱动程序对本机操作系统与驱动程序的调用,并接管由壳层程序启动的应用程序、由服务管理程序启动的服务程序和驱动管理程序启动的驱动程序;
虚拟设备模块利用本机操作系统模拟出虚拟周边设备,以供虚拟操作系统访问。
如上任一所述的装置,其特征在于:
所述载入模块还用于将至少一个配置数据库载入内存,其中,配置数据库用于记录虚拟机的子系统的配置数据、使用者数据存放位置、以及使用者在相应的虚拟机中进行操作的记录存放位置;所述子系统包括以下至少之一:文件子系统、注册表子系统、字形子系统、输入法子系统、服务控制子系统、事件子系统。
如上任一所述的装置,其特征在于:
所述虚拟操作系统模拟器包括:
第一运行模块,运行壳层程序,以使壳层程序运行使用者指定的应用程序;
第一接管模块,通过壳层程序接管应用程序对本机操作系统的调用;
第二运行模块,运行服务管理程序,以使服务管理程序运行使用者指定的服务程序;
第二接管模块,通过服务管理程序接管服务程序对本机操作系统的调用;
第三运行模块,运行驱动管理程序,以使驱动管理程序运行使用者指定的驱动程序;
第三接管模块,通过驱动管理程序接管驱动程序对本机操作系统的调用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中重型虚拟机的工作原理示意图;
图2是现有技术中重型虚拟机的运行模式示意图;
图3是本发明实施例的轻型虚拟机构建方法的流程图;
图4是本发明实施例的轻型虚拟机工作原理的示意图;
图5是本发明实施例的应用程序调用系统资源与服务的示意图;
图6是本发明实施例的轻型虚拟机构建方法的详细处理的流程图;
图7是本发明实施例的轻型虚拟机构建装置的示意图。
具体实施方式
下面结合附图和具体实施例进一步说明本发明实施例的技术方案。
根据本发明的实施例,提供了一种轻型虚拟机构建方法,图3是本发明实施例的轻型虚拟机构建方法的具体流程图,如图3所示,根据本发明实施例的轻型虚拟机构建方法包括:
第一步301,在本机操作系统(Host OS)中创建至少一个专属的使用者会话(UserSession)。
在执行第一步的同时,为了记录使用者在相应的虚拟机中进行的操作,还需要将至少一个配置数据库载入内存,其中,配置数据库用于记录虚拟机的子系统的配置数据、使用者数据存放位置、以及所述使用者在相应的虚拟机中进行操作的记录存放位置。
在实际的应用中,如果构建多个虚拟机,可以为每个虚拟机均配置一个配置数据库;也可以仅配置一个配置数据库,并将该配置数据库设置为多个虚拟机共用。在将配置数据库设置为多个虚拟机共用时,在一个虚拟机中的配置可以应用到多个虚拟机。
第二步302,在每个创建的专属使用者会话中,创建虚拟显示与输入控制系统。创建虚拟显示与输入控制系统指的是:创建可以显示目标虚拟机的桌面环境与运行在虚拟机中,所有程序(包含应用程序、服务程序、与驱动程序等)所显示内容与画面的一种虚拟屏幕,以及可供使用者操作所述目标虚拟机的专属输入控制系统。
创建虚拟显示与输入控制系统的方法可以为:在专属的使用者会话中,载入虚拟显示驱动程序,从而为这个使用者会话建立专属的虚拟显卡;在所述的使用者会话中,载入输入控制设备(例如,包含但不限于,鼠标、键盘、触控屏、遥控器等)驱动程序,从而为这个使用者会话建立专属的输入控制系统;从而完成创建目标虚拟机专属的虚拟显示与输入控制系统。
第三步303,在本机操作系统内存中创建至少一个新的逻辑上的程序容器(ProcessContainer);其中,程序容器是指,将一个以上的程序放置在一个容器内,以方便管理,并可同时删除或设置权限。
第四步304,完成虚拟操作系统的构建。
首先,将壳层程序、服务管理程序和驱动管理程序载入使用者会话中并置于所述程序容器中;其中,壳层程序(Shell or Windows Manager)主要是用来让使用者运行其他应用程序的工具程序,例如:Windows中的资源管理器程序、或DOS中command.com程序;服务管理程序(Service Manager or Super Daemon)主要是用来启动并管理服务程序;驱动管理程序(Driver Manager)主要是用来启动并管理驱动程序。在实际应用中,大多数的使用者需要通过壳层程序、服务管理程序和驱动管理程序来运行应用程序、服务程序和驱动程序,从而运行需要的功能。
其次,将虚拟操作系统模拟器,分别注入到壳层程序、服务管理程序和驱动管理程序中,使虚拟操作系统模拟器接管壳层程序、服务管理程序、以及驱动管理程序对操作系统与驱动程序的调用与通信,并接管壳层程序启动应用程序、服务管理程序启动服务程序、与驱动管理程序启动驱动程序的请求;
最后,在壳层程序启动应用程序、服务管理程序启动服务程序、和驱动管理程序启动驱动程序时,将虚拟操作系统模拟器,注入新启动的应用程序、服务程序、与驱动程序中,接管由壳层程序启动的应用程序、由服务管理程序启动的服务程序、以及由驱动管理程序启动的驱动程序,对操作系统与驱动程序的调用与通信,完成至少一个虚拟操作系统的构建。
需要说明的是,上述构建虚拟操作系统的处理过程,大部分可以在用户模式下完成,因此可以极大地提升系统安全性,并可以阻隔病毒木马的干扰。
其中具体地,接管由壳层程序启动的应用程序需要进行如下处理:
运行壳层程序,在运行壳层程序后,使用者通过壳层程序来运行应用程序,虚拟操作系统模拟器就可以通过壳层程序接管应用程序对本机操作系统的调用与通信。
此外,在进行上述操作后或者进行上述操作的同时,还需要接管由服务管理程序和驱动管理程序启动的服务程序和驱动程序。
接管由服务管理程序启动的服务程序,包括如下处理:
运行服务管理程序,在服务管理程序运行后,使用者服务管理程序来运行服务程序,虚拟操作系统模拟器就可以通过服务管理程序接管服务程序对本机操作系统的调用与通信。
接管由驱动管理程序启动的驱动程序,包括如下处理:
运行驱动管理程序,在驱动管理程序运行后,使用者通过驱动管理程序来运行驱动程序;虚拟操作系统模拟器就可以通过驱动管理程序接管驱动程序对本机操作系统以及驱动程序的调用与通信,从而完成一个虚拟操作系统的创建。
第五步,利用本机操作系统,模拟出所述目标虚拟机中的虚拟周边设备的过程为:首先,将需要模拟或分享的周边设备的虚拟设备驱动程序启动并载入到本机的操作系统中;其次,从本机操作系统中,获取所述虚拟驱动程序的软件调用接口;其次,将取得的所述的虚拟设备驱动程序的软件调用接口,传给目标虚拟机内的专属虚拟操作系统;最后,由所述目标虚拟机内的专属虚拟操作系统,调用传入的所述的虚拟设备驱动程序的软件接口,从而完成所述虚拟机中所述虚拟周边设备功能的模拟。
第六步,将虚拟操作系统中显示的内容都输出到虚拟显示系统中,在当前使用者会话中启动虚拟操作系统,最终完成一个虚拟机的构建。
通过上述处理,直接利用本机操作系统完成至少一个虚拟机的构建,图4是本发明实施例的虚拟机工作原理的示意图,如图4所示,在使用者的应用程序之下,是直接用本机操作系统模拟出来的虚拟机,在虚拟机之下,则是本机操作系统,本机操作系统控制实体的硬件设备。因此,在构建的虚拟机中安装运行应用软件,不需要额外安装一套操作系统。并且,在本发明实施例的虚拟机中,周边设备是可以跨多个虚拟机共享的,而且支持热插拔,只要是Host OS能支持的周边设备,在本发明实施例的虚拟机内都能使用,不存在因无法模拟硬件接口,导致无法在虚拟机内使用该设备的问题。
图5是本发明实施例的应用程序调用虚拟机的示意图,如图5所示,当使用者应用程序需要调用硬件资源时具体过程如下:
1)使用者的应用程序(Guest App)利用虚拟操作系统(VOS)提供的高阶指令调用硬件资源。
2)虚拟操作系统(VOS)利用虚拟操作系统模拟器解析程序的意图,以高阶指令格式传送给本机操作系统(Host OS)。
3)本机操作系统接收到了高阶指令后,将高阶指令转换为实体硬件能够执行的低阶指令,并传送给实体硬件设备(Device)。
从上述处理过程可以看出,利用本发明实施例的虚拟机构建方法,是利用Host OS来模拟虚拟设备的,所以本发明实施例中的虚拟设备装置,可以支持热插拔与共享,这使得虚拟设备的使用更加的灵活。对比图5与图2的指令转换过程,可以看出由于本发明轻型虚拟机,不需要将使用者调用的硬件资源高阶指令进行很多次的转换,节省了多次指令转换与传达过程;因此,显著提高了应用程序的运行效能,并节省了大量的系统资源。此外,通过本发明实施例的模拟方式,可以实现多个操作系统的同时创建,并且可以实现多个操作系统之间的切换,也可以使操作系统资源得到共享,减少了对系统资源的占用。
本发明实施例由于不需要修改本机操作系统的内核,因此,不会造成系统的效能低下或崩溃;提高了系统的性能与安全性。此外,由于本发明实施例的虚拟机与内核相隔离,即使本机操作系统进行升级,也不会造成虚拟机的程序无法运行。
以下将结合图6对本发明实施例的虚拟机构建方法的处理过程进行详细说明。图6是本发明实施例的虚拟机构建方法的详细处理的流程图,如图6所示,包括如下处理:
步骤601,在本机操作系统中,建立至少一个新的使用者会话(User Session);
步骤602,在新建的使用者会话中载入虚拟显示驱动程序,从而建立一个专属的虚拟显卡;
步骤603,在所述的使用者会话中,载入输入控制设备驱动程序,从而为这个使用者会话建立专属的输入控制系统;
步骤604,在所述创建的使用者会话中,创建至少一个新的逻辑上的程序容器;
步骤605,将虚拟环境的配置数据库载入内存,并设定为多个虚拟机共用,在实际应用中,也可以为多个虚拟机分别设置配置各自的数据库;
步骤606,将壳层程序载入所述建立的使用者会话环境中,并置于所述逻辑的程序容器中,并将虚拟操作系统模拟器注入壳层程序的内存空间中,虚拟操作系统模拟器接管壳层程序对操作系统的调用,接着,运行壳层程序,使用者通过壳层程序来运行应用程序,从而使虚拟操作系统模拟器接管其他应用程序对操作系统的调用;
步骤607,将服务管理程序载入所述建立的使用者会话环境中,并置于所述逻辑的程序容器中,并将虚拟操作系统模拟器注入服务管理程序的内存空间中,虚拟操作系统模拟器接管服务管理程序对操作系统的调用,接着,运行服务管理程序,服务管理程序运行使用者指定的其他服务程序,从而使虚拟操作系统模拟器接管其他服务程序对操作系统的调用;
步骤608,将驱动管理程序载入所述建立的使用者会话的环境中并置于所述程序容器中,并将虚拟操作系统模拟器注入驱动管理程序的内存空间中,虚拟操作系统模拟器接管驱动管理程序对操作系统以及驱动程序的调用,接着运行驱动管理程序,驱动管理程序运行使用者指定的其他驱动程序,从而使虚拟操作系统模拟器接管其他驱动程序对操作系统的调用;
步骤609,将虚拟操作系统中运行的所有程序的显示内容与画面,都输出到虚拟操作系统所属的使用者会话专属的虚拟显示系统,完成一个虚拟操作系统的构建;
步骤610,将需要模拟或分享的周边设备的虚拟设备驱动程序启动并载入到本机的操作系统;
步骤611,从本机操作系统中,获取所述虚拟驱动程序的软件调用接口并将获取的软件接口传给目标虚拟机内的专属虚拟操作系统;
步骤612,由所述目标虚拟机内的专属虚拟操作系统,调用传入的所述的虚拟设备驱动程序的软件接口,从而完成所述虚拟机中所述虚拟周边设备功能的模拟。
通过上述处理,克服了现有技术中通过虚拟硬件设备安装Guest OS,来构建虚拟机而导致的系统的性能低下、易崩溃、以及安全性低的缺陷,节省了系统的资源、提高了系统的性能与安全性。
需要说明的是,上述处理过程的执行顺序仅是本发明实施例优选的执行顺序之一,在实际应用中,本领域技术人员可以理解,上述处理过程的各执行步骤之间的顺序可以在不存在抵触的情况下更换顺序或者并行执行,并不用于限制本发明实施例的保护范围。
根据本发明的实施例,提供了一种轻量级虚拟机构建装置,图7是本发明实施例的虚拟机构建装置的示意图,如图7所示,根据本发明实施例的虚拟机构建装置包括:虚拟显示与输入控制模块701、创建模块702、载入模块703、注入模块704、虚拟操作系统模拟器705、虚拟设备模块706。以下对本发明实施例的虚拟机构建装置进行详细说明。
具体地,虚拟显示与输入控制模块为构建的虚拟机创建并配置一个虚拟显示与输入控制环境。
创建模块用于在本机操作系统内存中创建一个新的逻辑上的程序容器(ProcessContainer),程序容器是指在操作系统中将一个以上的程序放置在一个容器内,以方便管理,并可同时删除或设置权限。
在创建模块创建相应的程序容器后,为了获取虚拟机的配置、如何载入使用者数据,以及如何记载使用者在相应的虚拟机中进行的操作,载入模块还需要将至少一个配置数据库载入内存,其中,配置数据库用于记录虚拟机的子系统的配置数据、使用者数据存放位置、以及使用者在相应的虚拟机中进行操作的记录存放位置,其中,所述子系统包括但不限于以下至少之一:文件子系统、注册表子系统、字形子系统、输入法子系统、服务控制子系统、事件子系统等。在实际的应用中,如果构建多个虚拟机,可以为每个虚拟机均配置一个配置数据库;也可以仅配置一个配置数据库,并将该配置数据库设置为多个虚拟机共用。
随后,载入模块将壳层程序、服务管理程序以及驱动管理程序载入所述使用者会话并置于程序容器中;在实际应用中,大多数的使用者需要通过壳层程序、服务管理程序和驱动管理程序来运行应用程序、服务程序和驱动程序,从而运行需要的功能。
在载入模块将壳层程序、服务管理程序和驱动管理程序载入使用者会话并置于程序容器中后,注入模块将虚拟操作系统模拟器分别注入壳层程序、服务管理程序和驱动管理程序;随后,虚拟操作系统模拟器接管壳层程序、服务程序和驱动程序对本机操作系统与驱动程序的调用,并接管由壳层程序启动的应用程序、由服务管理程序启动的服务程序和驱动管理程序启动的驱动程序,完成至少一个虚拟操作系统的构建,虚拟设备模块利用本机操作系统模拟出虚拟周边设备,以供虚拟操作系统访问,最终完成虚拟机的构建。
需要说明的是,上述构建虚拟机的处理过程可以在用户模式下完成,因此可以极大地提升系统安全性,并可以阻隔病毒木马的干扰。
具体地,虚拟操作系统模拟器在构建虚拟机中,接管由壳层程序启动的应用程序、由服务管理程序启动的服务程序和驱动管理程序启动的驱动程序时,还包括下述模块进行的处理:
虚拟操作系统模拟器中的第一运行模块运行壳层程序,以使壳层程序运行使用者指定的应用程序;随后,虚拟操作系统模拟器中的第一接管模块通过壳层程序接管应用程序对本机操作系统的调用。
在进行上述操作后或者进行上述操作的同时,虚拟操作系统模拟器中的第二运行模块运行服务管理程序,以使服务管理程序运行使用者指定的服务程序;随后,虚拟操作系统模拟器中的第二接管模块通过服务管理程序接管服务程序对本机操作系统的调用。虚拟操作系统模拟器中的第三运行模块运行驱动管理程序,以使驱动管理程序运行使用者指定的驱动程序;随后,虚拟操作系统模拟器中的第三接管模块通过驱动管理程序接管驱动程序对本机操作系统的调用。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或任意其它形式的存储介质中。
通过本发明实施例的模拟方式,实现了以本地操作系统为基础同时创建多个带操作系统的虚拟机,并且可以实现多个操作系统环境之间的共享,使操作系统资源得到了共享,减少了对系统资源的占用。由于不需要修改本机操作系统的内核,因此,不会造成系统的效能低下或崩溃;提高了系统的性能;由于本发明实施例的虚拟机与内核相隔离,即使本机操作系统进行内核升级,也不会造成虚拟机的程序无法运行、并提高了虚拟机的安全性。
综上所述,借助于本发明实施例的技术方案,实现了精确快速的内存共享管理机制,降低了内存和CPU的使用率。并使得不同虚拟机间的应用程序、服务程序、驱动程序可以互相共享硬件资源,最大限度的利用了计算机中的存储、内存和CPU资源,提高了程序的运行效能,节省了大量的系统资源。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照所述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对所述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种虚拟机的构建方法,其特征在于包括以下步骤:
A)在本机操作系统中,针对每个目标虚拟机,配置一个专属的使用者会话;
B)在所述使用者会话中,创建目标虚拟机专属的虚拟显示与输入控制系统;
C)在所述使用者会话中,以本机操作系统为基础,创建目标虚拟机专属的虚拟操作系统;
D)利用本机操作系统的虚拟周边设备驱动程序,创建出目标虚拟机的虚拟周边设备。
2.根据权利要求1所述的方法,其特征在于:
在所述步骤A中,如果本机操作系统支持多使用者会话,则分别针对每个目标轻型虚拟机,创建专属的使用者会话,如果本机操作系统不支持多使用者会话,则可以利用多虚拟桌面功能,模拟出多使用者会话的效果。
3.根据权利要求1所述的方法,其特征在于:
所述步骤B具体包括,针对所述目标虚拟机,创建可以显示目标虚拟机的桌面环境,与所有运行在目标虚拟机中的应用程序、服务程序、与驱动程序所显示内容与画面的一种虚拟屏幕,以及可供使用者操作所述目标虚拟机的输入控制系统。
4.根据权利要求3所述的方法,其特征在于:
在所述步骤B中,在所述的使用者会话中,载入虚拟显示驱动程序,从而为这个使用者会话建立专属的虚拟显卡;其次,在所述的使用者会话中,载入输入控制设备驱动程序,从而为这个使用者会话建立专属的输入控制系统;从而完成创建目标虚拟机专属的虚拟显示与输入控制系统。
5.根据权利要求4所述的方法,其特征在于:
在所述步骤B中,所载入的虚拟显卡驱动程序实例,会将所述使用者会话内,所有应用程序、服务程序、与驱动程序传送过来的显示内容与画面,呈现在使用者指定的运行虚拟机的服务器的屏幕的显示窗口画面上;或者是,通过网络,将所述显示内容与画面呈现在使用者指定的远程服务器或终端设备的屏幕的显示窗口画面上。
6.根据权利要求4所述的方法,其特征在于:
在所述步骤B中,所载入的输入控制驱动程序实例,接受来自运行虚拟机的服务器分接的输入与控制设备的输入与控制信号,或者是接受来自网络传输过来的远端输入与控制设备的输入与控制信号,并将输入与控制信号传送给目标虚拟机中相应的程序。
7.根据权利要求1所述的方法,其特征在于:
在所述步骤C中,以本机操作系统的功能为基础,在所述的使用者会话中,利用虚拟操作系统模拟器,创建出的虚拟操作系统,是跟本机操作系统相同的操作系统,或者是不同的操作系统。
8.根据权利要求1所述的方法,其特征在于:
在所述步骤C中,将虚拟操作系统模拟器,分别注入到壳层程序、服务管理程序和驱动管理程序中,使虚拟操作系统模拟器接管壳层程序、服务管理程序、以及驱动管理程序对操作系统与驱动程序的调用与通信;并接管壳层程序启动应用程序、服务管理程序启动服务程序、与驱动管理程序启动驱动程序的请求;以及,在壳层程序启动应用程序、服务管理程序启动服务程序、和驱动管理程序启动驱动程序时,将虚拟操作系统模拟器,注入新启动的应用程序、服务程序、与驱动程序中,接管上述新启动的程序对操作系统与驱动程序的调用与通信。
9.根据权利要求1所述的方法,其特征在于:
在步骤C中包括,创建程序容器;针对每种虚拟操作系统模拟器,都有一个对应的专属程序载入器与载入模块;当在程序容器创建后,专属程序载入器会调用专属的载入模块,将壳层程序、服务管理程序,以及驱动管理程序,启动并载入到所述的使用者会话并置于所述的程序容器中;虚拟操作系统模拟器接收到目标程序创建新程序的请求时,会调用所述的相应虚拟操作系统的专属程序载入模块,将新程序启动并载入到所属的使用者会话中,并置于所属的程序容器中。
10.一种虚拟机的构建装置,其特征在于包括以下模块:
虚拟显示与输入控制模块、创建模块、载入模块、注入模块、虚拟操作系统模拟器、虚拟设备模块;
虚拟显示与输入控制模块为构建的虚拟机创建并配置一个虚拟显示与输入控制环境;
创建模块用于在本机操作系统内存中创建一个程序容器;
载入模块,用于将壳层程序、服务管理程序以及驱动管理程序载入所述使用者会话并置于程序容器中;
注入模块将虚拟操作系统模拟器分别注入壳层程序、服务管理程序和驱动管理程序;
虚拟操作系统模拟器接管壳层程序、服务程序和驱动程序对本机操作系统与驱动程序的调用,并接管由壳层程序启动的应用程序、由服务管理程序启动的服务程序和驱动管理程序启动的驱动程序;
虚拟设备模块利用本机操作系统模拟出虚拟周边设备,以供虚拟操作系统访问。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012105446823A CN103064724A (zh) | 2012-12-14 | 2012-12-14 | 虚拟机构建方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012105446823A CN103064724A (zh) | 2012-12-14 | 2012-12-14 | 虚拟机构建方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103064724A true CN103064724A (zh) | 2013-04-24 |
Family
ID=48107358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012105446823A Pending CN103064724A (zh) | 2012-12-14 | 2012-12-14 | 虚拟机构建方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103064724A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103677964A (zh) * | 2013-12-30 | 2014-03-26 | 杭州冰特科技有限公司 | 一种虚拟机控制系统 |
CN105573816A (zh) * | 2015-12-11 | 2016-05-11 | 北京奇虎科技有限公司 | 虚拟输入的方法、装置及系统 |
CN106250202A (zh) * | 2016-07-18 | 2016-12-21 | 北京首都在线科技股份有限公司 | 一种云平台自动化开通虚拟机的装置及方法 |
CN107346240A (zh) * | 2016-05-06 | 2017-11-14 | 同方威视技术股份有限公司 | 安检系统、虚拟安检机及虚拟安检方法 |
CN109885377A (zh) * | 2018-11-23 | 2019-06-14 | 中国银联股份有限公司 | 统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度系统 |
CN110362355A (zh) * | 2018-04-02 | 2019-10-22 | 青岛海信移动通信技术股份有限公司 | 一种应用界面显示方法及装置 |
CN116401017A (zh) * | 2023-04-13 | 2023-07-07 | 摩尔线程智能科技(北京)有限责任公司 | 虚拟显卡的实现方法、装置、设备和存储介质 |
CN117389691A (zh) * | 2023-12-11 | 2024-01-12 | 利尔达科技集团股份有限公司 | 一种基于嵌入式操作系统的虚拟机 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6253224B1 (en) * | 1998-03-24 | 2001-06-26 | International Business Machines Corporation | Method and system for providing a hardware machine function in a protected virtual machine |
CN101645873A (zh) * | 2008-08-07 | 2010-02-10 | 联想(北京)有限公司 | 一种计算机以及虚拟机环境中实现网络隔离的方法 |
-
2012
- 2012-12-14 CN CN2012105446823A patent/CN103064724A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6253224B1 (en) * | 1998-03-24 | 2001-06-26 | International Business Machines Corporation | Method and system for providing a hardware machine function in a protected virtual machine |
CN101645873A (zh) * | 2008-08-07 | 2010-02-10 | 联想(北京)有限公司 | 一种计算机以及虚拟机环境中实现网络隔离的方法 |
Non-Patent Citations (2)
Title |
---|
刘近光: "虚拟操作系统研究及在多核环境下的实现", 《中国优秀硕士学位论文全文数据库信息科技缉》 * |
徐天鸿: "基于虚拟化技术的多桌面系统", 《中国优秀硕士学位论文全文数据库信息科技缉》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103677964A (zh) * | 2013-12-30 | 2014-03-26 | 杭州冰特科技有限公司 | 一种虚拟机控制系统 |
CN103677964B (zh) * | 2013-12-30 | 2017-02-15 | 杭州冰特科技有限公司 | 一种虚拟机控制系统 |
CN105573816B (zh) * | 2015-12-11 | 2018-12-21 | 北京奇虎科技有限公司 | 虚拟输入的方法、装置及系统 |
CN105573816A (zh) * | 2015-12-11 | 2016-05-11 | 北京奇虎科技有限公司 | 虚拟输入的方法、装置及系统 |
CN107346240B (zh) * | 2016-05-06 | 2021-04-20 | 同方威视技术股份有限公司 | 安检系统、虚拟安检机及虚拟安检方法 |
CN107346240A (zh) * | 2016-05-06 | 2017-11-14 | 同方威视技术股份有限公司 | 安检系统、虚拟安检机及虚拟安检方法 |
CN106250202B (zh) * | 2016-07-18 | 2019-09-10 | 北京首都在线科技股份有限公司 | 一种云平台自动化开通虚拟机的装置及方法 |
CN106250202A (zh) * | 2016-07-18 | 2016-12-21 | 北京首都在线科技股份有限公司 | 一种云平台自动化开通虚拟机的装置及方法 |
CN110362355A (zh) * | 2018-04-02 | 2019-10-22 | 青岛海信移动通信技术股份有限公司 | 一种应用界面显示方法及装置 |
CN110362355B (zh) * | 2018-04-02 | 2022-06-28 | 青岛海信移动通信技术股份有限公司 | 一种应用界面显示方法及装置 |
CN109885377A (zh) * | 2018-11-23 | 2019-06-14 | 中国银联股份有限公司 | 统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度系统 |
CN116401017A (zh) * | 2023-04-13 | 2023-07-07 | 摩尔线程智能科技(北京)有限责任公司 | 虚拟显卡的实现方法、装置、设备和存储介质 |
CN116401017B (zh) * | 2023-04-13 | 2023-11-21 | 摩尔线程智能科技(北京)有限责任公司 | 虚拟显卡的实现方法、装置、设备和存储介质 |
CN117389691A (zh) * | 2023-12-11 | 2024-01-12 | 利尔达科技集团股份有限公司 | 一种基于嵌入式操作系统的虚拟机 |
CN117389691B (zh) * | 2023-12-11 | 2024-03-22 | 利尔达科技集团股份有限公司 | 一种基于嵌入式操作系统的虚拟机 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103064724A (zh) | 虚拟机构建方法及装置 | |
KR102105690B1 (ko) | 오픈 소스 가상화 클라우드 환경 기반 네트워크 컴퓨팅 개발 테스트베드 시스템 | |
Singh et al. | Containers & Docker: Emerging roles & future of Cloud technology | |
US7882274B2 (en) | Computer system with multiple terminals | |
CN106843715B (zh) | 用于远程化的应用的触摸支持 | |
CN112099923B (zh) | 一种运行于Linux操作系统上的Android虚拟化系统 | |
CN110196753B (zh) | 基于容器的图形处理器gpu虚拟化方法、装置和可读介质 | |
US8863113B1 (en) | Method and system for unattended installation of guest operating system | |
US12056513B2 (en) | Virtual machine migration using multiple, synchronized streams of state data transferring via file descriptors | |
CN104536802A (zh) | 一种实现应用调用的方法及虚拟机 | |
CN110178357A (zh) | 远程设备可接入的云中基于云的手机服务 | |
US10540294B2 (en) | Secure zero-copy packet forwarding | |
WO2014058989A1 (en) | Virtualization of input devices | |
CN104598294A (zh) | 用于移动设备的高效安全的虚拟化方法及其设备 | |
CN104951694A (zh) | 一种管理虚拟机的隔离方法及装置 | |
CN106844008A (zh) | 一种数据操作的方法、设备及系统 | |
CN105335176A (zh) | 一种调用安装于电子设备上的应用的方法及装置 | |
CN104503825A (zh) | 一种基于kvm混合式设备虚拟化方法 | |
CN111459606A (zh) | 一种虚拟化下快速创建虚拟机的方法及服务器 | |
US10318343B2 (en) | Migration methods and apparatuses for migrating virtual machine including locally stored and shared data | |
CN108304248A (zh) | 一种多系统虚拟化的移动设备 | |
WO2016177261A1 (zh) | 在线升级基于内核虚拟机模块的设备和方法 | |
CN103632090B (zh) | 一种虚拟机运行虚拟防火墙的方法 | |
US9684529B2 (en) | Firmware and metadata migration across hypervisors based on supported capabilities | |
Sun et al. | Performance comparison of multiple containers running artificial intelligence applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130424 |