CN107992355B - 一种部署应用软件的方法、装置及虚拟机 - Google Patents
一种部署应用软件的方法、装置及虚拟机 Download PDFInfo
- Publication number
- CN107992355B CN107992355B CN201711395237.4A CN201711395237A CN107992355B CN 107992355 B CN107992355 B CN 107992355B CN 201711395237 A CN201711395237 A CN 201711395237A CN 107992355 B CN107992355 B CN 107992355B
- Authority
- CN
- China
- Prior art keywords
- file
- path
- registry
- disk
- application program
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本文公开了一种部署应用软件的方法、装置及虚拟机。所述部署应用软件的方法包括:以读写方式挂载目标磁盘,通过文件系统过滤驱动拦截文件操作和注册表操作,将应用程序的实际安装路径重定向至所述目标磁盘的分区上,并通过在所述目标磁盘上创建的注册表文件保存所述应用程序的注册表操作记录;以只读方式挂载承载应用程序安装文件和注册表操作记录的目标磁盘,通过文件系统过滤驱动拦截对应用程序的访问操作并进行重定向处理。本文的技术方案能够精简应用程序部署流程,提高部署效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及的是一种部署应用软件的方法、装置及虚拟机。
背景技术
虚拟桌面基础架构(Virtual Desktop Infrastructure,简称VDI)目前已经得到广泛的应用。VDI不是给每个用户都配置一台运行Windows操作系统的桌面PC,而是为每个用户创建一个Windows桌面映像,不同的用户使用统一的Windows桌面映像可以获得统一的体验。通过网络,可以迅速部署一个通用的桌面环境。一台服务器可以支持许多虚拟桌面,通过各种协议传输提供给最终用户的桌面操作系统。
但是桌面不是目的,最终用户需要的还是桌面上的应用程序(Application,简称APP)。相关技术中,管理员在制作操作系统模板时,在所述模板中嵌入必要软件。虚拟机用户安装操作系统模板的同时完成必要软件的安装。但是,这种方法把应用程序和操作系统绑定,操作系统模板分发给各个虚拟机后,每个用户自己维护升级应用程序,非常不方便。
发明内容
本发明所要解决的技术问题是提供一种部署应用软件的方法、装置及虚拟机,能够精简应用程序部署流程,提高部署效率。
本发明实施例提供一种部署应用软件的方法,包括:
以读写方式挂载目标磁盘,通过文件系统过滤驱动拦截文件操作和注册表操作,将应用程序的实际安装路径重定向至所述目标磁盘的分区上,并通过在所述目标磁盘上创建的注册表文件保存所述应用程序的注册表操作记录;
以只读方式挂载承载应用程序安装文件和注册表操作记录的目标磁盘,通过文件系统过滤驱动拦截对应用程序的访问操作并进行重定向处理。
本发明实施例还提供一种部署应用软件的装置,包括:
磁盘软件包模板制作模块,用于以读写方式挂载目标磁盘,通过文件系统过滤驱动拦截文件操作和注册表操作,将应用程序的实际安装路径重定向至所述目标磁盘的分区上,并通过在所述目标磁盘上创建的注册表文件保存所述应用程序的注册表操作记录;
磁盘软件包模板使用模块,用于以只读方式挂载承载应用程序安装文件和注册表操作记录的目标磁盘,通过文件系统过滤驱动拦截对应用程序的访问操作并进行重定向处理。
本发明实施例还提供一种虚拟机,包括:
存储器、处理器及存储在所述存储器上并可在所述处理器上运行的部署应用软件的程序,所述部署应用软件的程序被所述处理器执行时实现上述部署应用软件的方法的步骤。
本发明实施例还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有部署应用软件的程序,所述部署应用软件的程序被处理器执行时实现上述部署应用软件的方法的步骤。
与相关技术相比,本发明提供一种部署应用软件的方法、装置及虚拟机,通过在一个独立磁盘上统一安装(更新)所有应用程序生成磁盘软件包模板,虚拟机通过只读方式挂载承载应用程序安装文件和注册表操作记录的目标磁盘(磁盘软件包模板所在的独立磁盘),通过文件系统过滤驱动拦截对应用程序的访问操作并进行重定向处理,应用程序实际并没有逐个在虚拟机上安装,只是通过重定向展现出已经安装,因此可以达到秒级的部署安装,从而精简应用程序部署流程,提高部署效率。
附图说明
图1为本发明实施例1的一种部署应用软件的方法流程图;
图2为本发明实施例2的一种部署应用软件的装置示意图;
图3为本发明示例1中一种虚拟桌面基础架构的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
实施例1
如图1所示,本发明实施例提供了一种部署应用软件的方法,包括:
步骤S110,以读写方式挂载目标磁盘,通过文件系统过滤驱动拦截文件操作和注册表操作,将应用程序的实际安装路径重定向至所述目标磁盘的分区上,并通过在所述目标磁盘上创建的注册表文件保存所述应用程序的注册表操作记录;
步骤S120,以只读方式挂载承载应用程序安装文件和注册表操作记录的目标磁盘,通过文件系统过滤驱动拦截对应用程序的访问操作并进行重定向处理。
所述方法还包括下述特点:
在一种实施方式中,以读写方式挂载目标磁盘时,所述目标磁盘分配给虚拟机单独使用;以只读方式挂载承载应用程序安装文件和注册表操作记录的目标磁盘时,所述目标磁盘分配给一个或多个虚拟机共同使用;
在一种实施方式中,所述目标磁盘是移动硬盘;
在一种实施方式中,以读写方式挂载目标磁盘后,所述方法还包括:
在安装或更新应用程序前,通过辅助工具向文件系统过滤驱动发送通知消息,触发所述文件系统过滤驱动工作在磁盘软件包模板制作模式下;
在所有的应用程序安装或更新完毕后,通过辅助工具向文件系统过滤驱动发送通知消息,触发所述文件系统过滤驱动退出磁盘软件包模板制作模式,进入空闲模式;
在一种实施方式中,所述方法还包括:
在所有的应用程序安装或更新完毕后,通过辅助工具收集应用程序安装信息,将所述应用程序安装信息保存在所述目标磁盘上创建的配置文件中;
在一种实施方式中,以只读方式挂载承载应用程序安装文件和注册表操作记录的目标磁盘后,所述方法还包括:
通过辅助工具向文件系统过滤驱动发送通知消息,触发所述文件系统过滤驱动工作在磁盘软件包模板使用模式下;
在一种实施方式中,所述通过文件系统过滤驱动拦截对应用程序的访问操作并进行重定向处理,包括:
读取所述目标磁盘的分区上保存的注册表操作记录,拷贝到系统缓存中创建的注册表备份文件中;
通过文件系统过滤驱动拦截到注册表操作时,将所述操作重定向至系统缓存中创建的注册表备份文件中的注册表记录;
在一种实施方式中,所述通过文件系统过滤驱动拦截对应用程序的访问操作并进行重定向处理,包括:
通过文件系统过滤驱动拦截到对所述应用程序在安装过程中生成的文件进行写操作时,将所述目标磁盘上保存的原始文件拷贝到系统缓存中,将所述写操作重定向至所述系统缓存中的对应文件;
在一种实施方式中,所述通过文件系统过滤驱动拦截对应用程序的访问操作并进行重定向处理,包括:
通过文件系统过滤驱动拦截到对所述应用程序在安装过程中生成的文件进行读操作时,如果系统缓存中存在对应文件,则对所述系统缓存中的对应文件进行读操作,如果系统缓存中不存在所述对应文件,则对所述目标磁盘上的对应文件进行读操作;
实施例2
如图2所示,本发明实施例提供了一种部署应用软件的装置,包括:
磁盘软件包模板制作模块201,用于以读写方式挂载目标磁盘,通过文件系统过滤驱动拦截文件操作和注册表操作,将应用程序的实际安装路径重定向至所述目标磁盘的分区上,并通过在所述目标磁盘上创建的注册表文件保存所述应用程序的注册表操作记录;
磁盘软件包模板使用模块202,用于以只读方式挂载承载应用程序安装文件和注册表操作记录的目标磁盘,通过文件系统过滤驱动拦截对应用程序的访问操作并进行重定向处理。
在一种实施方式中,磁盘软件包模板使用模块,用于采用以下方式通过文件系统过滤驱动拦截对应用程序的访问操作并进行重定向处理:
读取所述目标磁盘的分区上保存的注册表操作记录,拷贝到系统缓存中创建的注册表备份文件中;
通过文件系统过滤驱动拦截到注册表操作时,将所述操作重定向至系统缓存中创建的注册表备份文件中的注册表记录。
在一种实施方式中,磁盘软件包模板使用模块,用于采用以下方式通过文件系统过滤驱动拦截对应用程序的访问操作并进行重定向处理:
通过文件系统过滤驱动拦截到对所述应用程序在安装过程中生成的文件进行写操作时,将所述目标磁盘上保存的原始文件拷贝到系统缓存中,将所述写操作重定向至所述系统缓存中的对应文件。
在一种实施方式中,磁盘软件包模板使用模块,用于采用以下方式通过文件系统过滤驱动拦截对应用程序的访问操作并进行重定向处理:
通过文件系统过滤驱动拦截到对所述应用程序在安装过程中生成的文件进行读操作时,如果系统缓存中存在对应文件,则对所述系统缓存中的对应文件进行读操作,如果系统缓存中不存在所述对应文件,则对所述目标磁盘上的对应文件进行读操作。
在一种实施方式中,以读写方式挂载目标磁盘时,所述目标磁盘分配给虚拟机单独使用;以只读方式挂载承载应用程序安装文件和注册表操作记录的目标磁盘时,所述目标磁盘分配给一个或多个虚拟机共同使用。
实施例3
本发明实施例提供了一种虚拟机,包括:
存储器、处理器及存储在所述存储器上并可在所述处理器上运行的部署应用软件的程序,所述部署应用软件的程序被所述处理器执行时实现上述实施例1中所述的部署应用软件的方法的步骤。
实施例4
本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有部署应用软件的程序,所述部署应用软件的程序被处理器执行时实现上述实施例1中所述的部署应用软件的方法的步骤。
下面通过多个示例说明本申请的部署应用软件的方法。
示例1
如图3所示,本示例提供一种虚拟桌面基础架构VDI系统,至少包括虚拟机资源池和虚拟桌面管理平台。
其中,所述虚拟机资源池是数据中心多台物理机器组成的逻辑实体。在每台物理机上运行虚拟化层应用Hypervisor,Hypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,通过Hypervisor虚拟化硬件,产生多个CPU(Central Processing Unit,中央处理器),GPU(GraphicsProcessing Unit,图形处理器),磁盘,总线等等。
虚拟机操作系统模板,是可以在虚拟硬件上直接启动、运行的操作系统(无需安装),比如windowsXP,windows7等等。VDI的一个优势是基于操作系统模板,快速分配创建新的虚拟机。这里的操作系统模板是基于虚拟硬件安装好的操作系统,并且在物理机上保存于文件中。创建新虚拟机时,通过指定分配模板,新的虚拟机就得到了一个基于模板的副本,此副本中含有可以直接启动的操作系统。本示例中,在操作系统模板中预先安装文件系统过滤驱动。文件系统过滤驱动在操作系统(windows操作系统)模板中安装好以后一直在操作系统后台运行,通过3个模式(空闲模式、制作模式、运行模式)执行不同的处理逻辑。在空闲模式下,文件过滤驱动既不拦截文件系统调用,也不修改接收到的路径。制作模式下,模板机的文件过滤驱动用于制作磁盘软件包模板。比如,拦截发送到文件系统层的消息、注册表消息。安装应用程序过程中,原本路径在第一路径(应用程序默认安装路径)下的文件,自动重定向到第二路径(磁盘软件包模板所在分区的应用程序安装路径)。原本路径在第三路径(默认的注册表保存路径)下的记录,自动重定向到第四路径(磁盘软件包模板所在分区的注册表保存路径)。运行模式下,用户机以只读方式挂载磁盘软件包模板,文件读写或注册表记录读写路径的优先级如下:系统缓存的路径的优先级高于磁盘软件包模板所在分区的路径的优先级,磁盘软件包模板所在分区的路径的优先级高于应用程序的默认安装路径(或默认的注册表保存路径)的优先级。
磁盘软件包模板,用于存放应用程序安装过程(由管理员在制作机器上进行安装)中涉及到的新增文件,修改文件,注册表新增记录,注册表记录修改信息。磁盘软件包模板制作好以后,指派分配给虚拟机使用,与操作系统模板不同的是并不产生任何副本,而是以只读方式同时给多台虚机挂载使用。
系统缓存(可选),用于用户机在以只读方式挂载磁盘软件包模板时,当需要修改磁盘软件包模板中的数据时,文件系统过滤驱动拷贝一份数据到系统缓存中,然后再执行读写操作。
其中,虚拟桌面管理平台包括虚拟桌面管理中心和虚拟桌面后台控制实体。所述虚拟桌面管理中心提供人机交互管理页面,包括查看,创建,指派,修改,更新操作。在制作磁盘软件包模板时,虚拟桌面管理中心控制虚拟桌面后台控制实体新建一个独立磁盘,然后将此独立磁盘指派到某个虚拟机上,此虚拟机角色变更为制作机器,然后进入操作系统进行程序包制作。
示例2
本示例提供一种磁盘软件包模板的制作方法,假设在磁盘软件包模板上安装APP1和APP2,所述模板机执行以下处理:
步骤S101,在制作磁盘软件包模板的虚拟机上安装虚拟机操作系统模板并启动;
其中,所述操作系统模板中包括文件系统过滤驱动。
其中,所述操作系统模板中还包括辅助工具,所述辅助工具用于与文件系统过滤驱动进行通信,设置文件过滤驱动的模式(空闲模式、制作模式、运行模式)
步骤S102,对挂载的磁盘做分区格式化;
比如格式化为NTFS(New Technology File System,新技术文件系统),将该磁盘的盘符设置为F:。
步骤S103,辅助工具运行,在挂载的磁盘分区(比如,F:)上创建根目录FILE(F:\FILE),所述根目录用于重定向应用程序的默认安装目录(比如,C:\)。创建注册表文件(比如,reg),所述注册表文件用于记录安装过程中的注册表记录的修改键值。创建配置文件(比如,vpack.ini)。
其中,配置文件vpack.ini可以包含描述该磁盘软件包模板中各个应用程序的信息,例如版本号,GUID(Globally Unique Identifier,全局唯一标识符)。
其中,辅助工具发送控制消息给文件系统过滤驱动,触发所述文件系统过滤驱动进入制作模式,在所述制作模式下,文件系统过滤驱动拦截所有在应用程序默认安装目录(C:\)上的文件系统调用。
步骤S104,安装两个应用程序APP1和APP2。
安装程序执行的函数、文件操作、和注册表操作都会被文件系统过滤驱动拦截,拦截后,进行查询合并目录操作以及修改目标路径从而重定向。
下面以APP1的安装程序(app1_install)为例,解释文件操作的拦截和重定向:
(一)安装程序(app1_install)向底层发起只读方式的查询,路径c:\programfiles\app1;
文件系统过滤驱动会执行2次查询动作。第一路径c:\program files\app1,第二路径F:\FILE\program files\app1。此时2个路径都不存在,立即返回失败。
(二)安装程序(app1_install)发起写方式的创建目录操作,创建路径为c:\program files\app1。
文件系统过滤驱动收到后仍然执行2次查询。第一路径c:\program files\app1,第二路径F:\FILE\program files\app1。此时由于是写方式的操作。并且第一路径的父目录c:\program files存在。文件系统过滤驱动先创建目录F:\FILE\program files,再将执行路径修改为第二路径F:\FILE\program files\app1。实际创建工作交给文件系统下层,下层创建完成后返回此句柄,重定向完成。返回以后app1_install接收到的就是重定向后的第二路径句柄。
(三)安装程序app1_install发起创建文件操作,要创建的文件是c:\programfiles\app1\file1。
安装程序app1_install查询路径c:\program files\app1。文件系统过滤驱动收到后执行2次查询。第一路径c:\program files\app1,第二路径F:\FILE\program files\app1。此时由于是写方式的操作。并且F:\FILE\program files\app1存在,优先选择第二路径F:\FILE\program files\app1。文件系统过滤驱动然后执行路径修改F:\FILE\programfiles\app1\file1,实际工作交给文件系统下层执行。下层执行返回以后app1_install接收到的就是重定向后的第二路径句柄。此次重定向创建文件完成。
(四)、安装程序app1_install发起枚举指定目录文件操作,所述指定目录是c:\program files。
安装程序app1_install打开目录c:\program files。文件系统过滤驱动依次查询第一路径c:\program files,第二路径F:\FILE\program files。由于第二路径已经存在,按照优先原则,路径修改为第二路径F:\FILE\program files,文件系统下层返回第二路径句柄,重定向完成。接下来app1_install发起枚举目录文件。文件系统过滤驱动接收到路径为刚才打开的句柄路径F:\FILE\program files。此时执行2次枚举目录操作。
第一次c:\program files\返回
第二次F:\FILE\program files\返回
2017/07/11 10:35<DIR>app1
两次结果合并,如果有相同项,优先使用F:路径下的文件信息。
最后返回:
app1_install程序得到了合并的文件列表。
下面以APP1的安装程序(app1_install)为例,解释注册表信息的拦截和重定向:
当辅助工具触发文件系统过滤驱动进入制作模式时,磁盘软件包模板所在分区上的注册表文件(F:\reg)由文件系统过滤驱动挂载到系统注册表路径HLM\SYSTEM\Setup\VPACK上,一开始内容为空,此路径(HLM\SYSTEM\Setup\VPACK)对应注册表的默认根路径(C:\)
(一)安装程序(比如,app1_install)发起只读方式的查询,路径HCU\Software。
文件系统过滤驱动会执行2次查询动作。第一路径HCU\Software,第二路径HLM\SYSTEM\Setup\VPACK\HCU\Software。此时2个路径都不存在,立即返回失败。
(二)安装程序(比如,app1_install)发起写方式的创建操作。创建路径为HCU\Software\app1。
文件系统过滤驱动收到后仍然执行2次查询。
第一路径HCU\Software\app1;
第二路径HLM\SYSTEM\Setup\VPACK\HCU\Software\app1;
此时由于是写方式的操作。并且第一路径的父路径HCU\Software\存在。文件系统过滤驱动此时创建路径项HLM\SYSTEM\Setup\VPACK\HCU\Software\。再将执行路径修改为第二路径HLM\SYSTEM\Setup\VPACK\HCU\Software\app1,系统下层执行创建后返回第二路径句柄,返回以后app1_install接收到的就是重定向后的第二路径句柄。重定向完成。
(三)安装程序app1_install发起创建键值,对HCU\Software\app1\key1进行操作。
首先打开路径HCU\Software\app1。此时由于是写方式的操作。并且HLM\SYSTEM\Setup\VPACK\HCU\Software\app1存在,优先选择路径HLM\SYSTEM\Setup\VPACK\HCU\Software\app1,路径修改后,实际创建工作交给系统下层执行。下层执行返回以后app1_install接收到的就是重定向后的路径句柄。此次重定向创建完成。
(四)、安装程序app1_install发起枚举指定路径子记录操作。
首先app1_install打开注册表项HCU\Software\。文件系统过滤驱动依次查询
第一路径HCU\Software\;
第二路径HLM\SYSTEM\Setup\VPACK\HCU\Software\;
由于第二路径已经存在,按照优先原则,路径修改为第二路径HLM\SYSTEM\Setup\VPACK\HCU\Software,文件系统下层返回第二路径句柄,重定向完成。接下来app1_install发起枚举子记录。文件系统过滤驱动接收到路径为刚才打开的句柄路径
HLM\SYSTEM\Setup\VPACK\HCU\Software\
此时执行2次枚举操作。
第一次HCU\Software\返回
7zip
adobe
第二次HLM\SYSTEM\Setup\VPACK\HCU\Software\返回
app1
两次结果合并,如果有相同项,优先使用第二路径
HLM\SYSTEM\Setup\VPACK\HCU\Software\下的信息。
最后返回:
7zip
adobe
app1
安装程序app1_install得到了合并的列表。
步骤S105,所有应用程序安装完毕后,辅助工具运行,执行安装完成后的辅助操作。
其中,辅助工具发送消息给文件系统过滤驱动通知应用程序安装完毕,文件系统过滤驱动将先前挂载到注册表分支上的节点脱离,注册表修改内容写入到磁盘软件包模板所在磁盘分区的注册表文件(F:\reg)中,然后文件系统过滤驱动进入到空闲状态。
辅助工具还可以清理磁盘软件包模板所在磁盘分区中的无用文件(比如,临时文件),扫描注册表文件(F:\reg)得到安装的应用程序的路径,提取应用程序的图标、版本号、厂商信息等,上报给虚拟桌面管理平台存储。至此磁盘软件包模板制作完成。模板机可以卸载磁盘软件包模板所在的磁盘。
示例3
本示例提供一种磁盘软件包模板的使用方法,假设磁盘软件包模板上安装有应用程序APP1和APP2,用户机通过挂载所述磁盘软件包模板所在的磁盘使用应用程序(比如,APP1),所述用户机执行以下处理:
步骤S101,磁盘软件包模板识别;
当操作系统启动时,磁盘软件包模板挂载消息被文件系统过滤驱动拦截,扫描此分区卷,查找配置文件(比如,vpack.ini)、FILE文件夹,注册表文件(比如,reg)。通过分析配置文件内容,注册表文件内容判断是否是磁盘软件包模板。如果是磁盘软件包模板,则文件系统过滤驱动触发进入运行模式。
步骤S102,以只读方式将注册表文件(F:\reg)的文件内容合并到系统缓存注册表文件(比如,G:\REG)中,如果系统缓存中无此文件则创建一个空的文件。如果系统缓存注册表文件已经是按照某个版本号和GUID匹配合并过则忽略该步操作。合并记录也记录在系统缓存注册表文件(G:\REG)中。然后将系统缓存注册表文件(G:\REG)挂载到系统注册表HLM\SYSTEM\Setup\VPACK\路径上。然后开始拦截文件系统消息和注册表消息。
下面说明文件系统过滤驱动在运行模式下对文件、目录的相关操作。
(一)用户鼠标点击开始菜单。
比如,windows桌面程序explorer.exe发起枚举目录查询。目录路径C:\ProgramData\Microsoft\Windows\Start Menu\Programs。文件系统过滤驱动会执行3次查询动作。
第一路径C:\ProgramData\Microsoft\Windows\Start Menu\Programs返回:
第二路径F:\FILE\ProgramData\Microsoft\Windows\Start Menu\Programs返回:
2017/07/03 16:30<DIR>app1
2017/07/03 15:52<DIR>app2
第三路径G:\FILE\ProgramData\Microsoft\Windows\Start Menu\Programs返回空;其中,G:\FILE\是系统缓存路径;
此时2个路径存在,结果合并为:
explorer.exe程序得到了合并的文件列表。用户可以发现多出的app1和app2程序菜单。
(二)用户鼠标点击app1/app1.exe启动程序。
windows桌面程序explorer.exe发起只读方式打开app1.exe文件流程。文件系统过滤驱动会执行3次查询动作。第一路径C:\Program files\app1。第二路径F:\FILE\Program files\app1。第三路径G:\FILE\Program files\app1;
其中,第二路径已经存在,优先使用此路径。文件系统过滤驱动修改路径为此路径。实际工作由文件系统下层执行,下层执行完毕后返回此路径句柄。explorer.exe得到了重定向后的句柄,开始后续操作。
(三)app1.exe程序修改C:\Program files\app1\file1
文件系统过滤驱动会执行3次查询动作。
第一路径C:\Program files\app1\file1。返回失败不存在。
第二路径F:\FILE\Program files\app1\file1。返回成功存在。
第三路径G:\FILE\Program files\app1\file1。返回失败不存在。
第二路径已经存在,但是由于是修改动作,不能直接修改。拷贝(Copy)文件file1至系统缓存目录。首先依次建立目录G:\FILE\Program files,G:\FILE\Program files\app1\,然后执行copy文件至G:\FILE\Program files\app1\file1。修改路径为此路径,实际工作由文件系统下层执行,下层执行完毕后返回此路径句柄。app1.exe得到了重定向后的句柄,开始后续写操作。
(四)app1.exe程序删除C:\Program files\app1\file1
文件系统过滤驱动会执行3次查询动作。
第一路径C:\Program files\app1\file1。返回失败不存在。
第二路径F:\FILE\Program files\app1\file1。返回成功存在。
第三路径G:\FILE\Program files\app1\file1。返回成功存在。
删除属于修改操作的一种。由于第三路径存在,修改路径为第三路径,但是由于是删除操作。而且第二路径磁盘软件包路径存在。需要特殊处理。给此文件打上删除标记。比如:修改第三路径文件的创建时间为特定的日期的某一秒。立即返回成功而不让下层文件系统实际进行删除。之后遇到文件是这个特殊日期后,接管下层系统的操作,判断为已经删除的文件而返回失败。
下面说明文件系统过滤驱动在运行模式下对注册表的相关操作。
(一)应用程序(比如,app1)发起只读方式的查询,路径HCU\Software。
文件系统过滤驱动会执行2次查询动作。
第一路径HCU\Software
第二路径HLM\SYSTEM\Setup\VPACK\HCU\Software
第二路径存在,并且是只读方式,修改路径为第二路径,实际工作由下层系统完成,返回后得到第二路径句柄,重定向完成。app1得到了第二路径句柄。
(二)app1发起修改键值,路径HCU\Software\app1\key1。
文件系统过滤驱动会执行2次查询动作。
第一路径HCU\Software\app1\key1返回失败不存在;
第二路径HLM\SYSTEM\Setup\VPACK\HCU\Software\app1\key1返回成功;
第二路径存在,虽然是写操作,但是由于使用的系统缓存注册表文件,所以可以直接修改。修改路径为第二路径,实际工作由下层系统完成,返回后得到第二路径句柄,重定向完成。app1得到了第二路径句柄。
(三)app1发起创建键值,对HCU\Software\app1\key1操作。
首先查询路径HCU\Software\app1。
文件系统过滤驱动会执行2次查询动作
第一路径HCU\Software\app1
第二路径HLM\SYSTEM\Setup\VPACK\HCU\Software\app1
此时由于是写方式的操作。并且第二路径存在,优先选择第二路径,路径修改为第二路径下HLM\SYSTEM\Setup\VPACK\HCU\Software\app1\key1,实际创建工作交给系统下层执行。下层执行返回以后app1接收到的就是重定向后的路径句柄。此次重定向创建完成。
(四)app1发起枚举指定路径子记录操作。
app1打开注册表项HCU\Software\。
文件系统过滤驱动依次查询
第一路径HCU\Software\
第二路径HLM\SYSTEM\Setup\VPACK\HCU\Software\
由于第二路径已经存在,按照优先原则,路径修改为第二路径。系统下层返回第二路径句柄,重定向完成。接下来枚举子记录。文件系统过滤驱动接收到路径为刚才打开的第二路径。此时执行2次枚举操作。
第一次HCU\Software\返回
7zip
adobe
第二次HLM\SYSTEM\Setup\VPACK\HCU\Software\返回
app1
app2
2次结果合并,如果有相同项,依次优先使用系统缓存,然后是磁盘软件包模板,最后是系统默认的原始路径;
最后返回:
7zip
adobe
app1
app2
因此,app1程序得到了合并的列表。
(五)app1删除指定路径子记录操作。
app1打开注册表项HCU\Software\。
文件系统过滤驱动依次查询
第一路径HCU\Software\app1\key1
第二路径HLM\SYSTEM\Setup\VPACK\HCU\Software\app1\key1
由于第二路径已经存在,按照优先原则,路径修改为第二路径。系统下层返回第二路径句柄,重定向完成。然后系统执行后续删除操作。此处已经是系统缓存注册表文件,可以直接删除。
示例4
本示例提供一种磁盘软件包模板的更新方法。假设管理员要在模板机上对包含APP1和APP2的磁盘软件包模板进行更新,所述更新涉及:对APP1进行升级、删除APP2,以及新增APP3,在模板机上执行下述处理:
步骤S101,将磁盘软件包模板分配给某台虚拟机。虚拟机启动后由操作系统自动挂载此磁盘。假设此盘符是F:。
步骤S102,在制作磁盘软件包模板的虚拟机上安装好文件系统过滤驱动。安装好辅助工具。此时文件系统过滤驱动工作在空闲模式,既不拦截文件系统调用,也不修改接收到的路径。如果此机器已经安装过文件系统过滤驱动,会自动触发进入使用模式。
步骤S103,辅助工具运行,此时目录FILE,注册表文件reg,配置文件vpack.ini都已经存在。辅助工具不再创建。辅助工具发送控制消息给文件系统过滤驱动程序,触发进入制作模式。此时拦截所有在C:上的文件系统调用。
步骤S104,安装程序开始更新app1,删除app2,安装app3。在安装过程中安装程序执行的函数、文件操作、注册表操作都会被文件系统过滤驱动拦截,查询合并目录操作以及修改目标路径达到重定向。
(一)更新app1:
App1的安装程序app1_install发起修改文件(c:\program files\app1\file1)操作。
app1_install查询路径c:\program files\app1\file1。文件系统过滤驱动收到后执行2次查询。第一路径c:\program files\app1,第二路径F:\FILE\program files\app1。此时由于是写方式的操作。并且F:\FILE\program files\app1存在,优先选择第二路径F:\FILE\program files\app1。文件系统过滤驱动然后执行路径修改F:\FILE\programfiles\app1\file1,实际工作交给文件系统下层执行。下层执行返回以后app1_install接收到的就是重定向后的第二路径句柄。此次重定向文件完成。后续修改写操作也就在此路径文件上完成。
(二)删除app2:
App2的安装程序app2_install发起删除文件(c:\program files\app2\file1)操作。
app2_install查询路径c:\program files\app2\file1。文件系统过滤驱动收到后执行2次查询。第一路径c:\program files\app2,第二路径F:\FILE\program files\app2。此时由于是写方式的操作。并且第二路径存在,优先选择第二路径。文件系统过滤驱动然后执行路径修改为F:\FILE\program files\app2\file1,实际工作交给文件系统下层执行。下层执行返回以后app2_install接收到的就是重定向后的第二路径句柄。此次重定向文件完成。后续删除操作也就在此路径文件上完成。
(三)安装app3:
App3的安装程序app3_install发起创建文件(c:\program files\app3\file1)操作。
app3_install查询路径c:\program files\app3。文件系统过滤驱动收到后执行2次查询。第一路径c:\program files\app3,第二路径F:\FILE\program files\app3。此时由于是写方式的操作。并且第二路径存在,优先选择第二路径。文件系统过滤驱动然后执行路径修改为F:\FILE\program files\app3\file1,实际工作交给文件系统下层执行。下层执行返回以后app3_install接收到的就是重定向后的第二路径句柄。此次重定向文件完成。
步骤S104,所有应用程序安装更新完毕后,辅助工具运行,执行更新完成后的辅助操作。辅助工具发送消息给文件系统过滤驱动。文件系统过滤驱动将先前挂载到注册表分支上的节点脱离。注册表修改内容写入到F:\reg文件中,然后文件系统过滤驱动进入到空闲状态。后续的操作由辅助工具完成并且都在磁盘分区F:中处理:清理无用的文件,扫描注册表文件reg得到安装的应用程序的路径,提取应用程序的图标,版本号,厂商信息。上报给虚拟桌面管理平台存储。至此磁盘软件包模板更新完成。模板机可以卸载此磁盘。
示例5
本示例提供一种脱离VDI系统的实体移动盘上磁盘软件包的制作和使用。
一、制作磁盘软件包。
1、在制作磁盘软件包的物理机上安装好文件系统过滤驱动和辅助工具。此时文件系统过滤驱动工作在空闲模式,既不拦截文件系统调用,也不修改接收到的路径。
2、插入移动硬盘,操作系统自动挂载此硬盘,用户对挂载的磁盘做分区格式化(比如NTFS,假设此盘符是F:)。
3、辅助工具运行,在这个分区上创建空目录FILE,此目录对应于C:\根目录。创建空注册表文件reg用于记录安装过程中的注册表记录的修改键值。创建配置文件vpack.ini,所述配置文件包含描述此软件包的信息,例如版本号,guid唯一标识值。辅助工具发送控制消息给文件系统过滤驱动,触发进入制作模式,文件系统过滤驱动在制作模式下拦截所有在C:上的文件系统调用。
4、开始安装app1,app2。在安装过程中安装程序(比如,app1_install和app2_install)执行的函数、文件操作、注册表操作都会被文件系统过滤驱动拦截。文件系统过滤驱动查询合并目录操作以及修改目标路径达到重定向。
5、结束安装app1,app2。辅助工具发送消息通知文件系统过滤驱动进入空闲模式。辅助工具扫描F:盘中的无用文件。磁盘软件包制作完成。
二、使用磁盘软件包。
1、在某台物理机器上安装好文件系统过滤驱动。此时文件系统过滤程序运行在空闲状态。
2、插入移动硬盘后,文件系统过滤驱动拦截到卷挂载消息,扫描此分区卷,查找配置文件(vpack.ini),FILE文件夹,注册表文件(reg)。通过分析配置文件内容和注册表文件内容判断是否是磁盘软件包。如果是磁盘软件包,文件系统过滤驱动触发进入到运行模式。
3、文件系统过滤驱动以只读方式将移动硬盘上的注册表文件(F:\reg)的内容合并到系统缓存注册表文件(C:\VPACK\REG)中,如果系统缓存中无此文件则创建一个空的文件。如果系统缓存注册表文件已经是按照某个版本号和guid匹配合并过则忽略,合并记录也记录在系统缓存注册表文件中。然后将系统缓存注册表文件挂载到系统注册表路径(HLM\SYSTEM\Setup\VPACK\)上。然后开始拦截文件系统消息和注册表消息。
三、更新磁盘软件包。
1、在某台物理机器上安装好文件系统过滤驱动和辅助工具。如果是已经安装过则无需再次安装。此时文件系统过滤驱动工作在空闲模式。既不拦截文件系统调用,也不修改接收到的路径。
2、插入移动硬盘。由操作系统自动挂载此磁盘。假设此盘符是F:。文件系统过滤驱动会自动触发进入使用模式。
3、辅助工具运行,此时目录FILE,注册表文件reg,配置文件vpack.ini都已经存在。辅助工具不再创建。执行设定模式为制作模式,发送控制消息给文件系统过滤驱动,触发进入制作模式,在制作模式下拦截所有在C:上的文件系统调用。
4、开始更新app1,删除app2,安装app3。在安装过程中安装程序执行的函数、文件操作和注册表操作都会被文件系统过滤驱动拦截,文件系统过滤驱动查询合并目录操作以及修改目标路径达到重定向。
5、结束安装app1,app2。辅助工具发送消息通知文件系统过滤驱动进入空闲模式。辅助工具扫描F:盘中的无用文件。磁盘软件包更新完成。
需要说明的是,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (10)
1.一种部署应用软件的方法,包括:
以读写方式挂载目标磁盘,通过文件系统过滤驱动拦截文件操作和注册表操作,将应用程序的实际安装路径重定向至所述目标磁盘的分区上,并通过在所述目标磁盘上创建的注册表文件保存所述应用程序的注册表操作记录;
以只读方式挂载承载应用程序安装文件和注册表操作记录的目标磁盘,通过文件系统过滤驱动拦截对应用程序的访问操作并进行重定向处理;
其中,所述通过文件系统过滤驱动拦截对应用程序的访问操作并进行重定向处理,包括:
读取所述目标磁盘的分区上保存的注册表操作记录,拷贝到系统缓存中创建的注册表备份文件中;
通过文件系统过滤驱动拦截到注册表操作时,将所述操作重定向至系统缓存中创建的注册表备份文件中的注册表记录;
其中,所述目标磁盘为磁盘软件包模板所在的独立磁盘,以只读方式挂载所述磁盘软件包模板,文件读写或注册表记录读写路径的优先级如下:
所述系统缓存的路径的优先级高于所述磁盘软件包模板所在分区的路径的优先级,所述磁盘软件包模板所在分区的路径的优先级高于应用程序的默认安装路径的优先级,所述磁盘软件包模板所在分区的路径的优先级高于默认的注册表保存路径。
2.如权利要求1所述的方法,其特征在于:
所述通过文件系统过滤驱动拦截对应用程序的访问操作并进行重定向处理,包括:
通过文件系统过滤驱动拦截到对所述应用程序在安装过程中生成的文件进行写操作时,将所述目标磁盘上保存的原始文件拷贝到系统缓存中,将所述写操作重定向至所述系统缓存中的对应文件。
3.如权利要求2所述的方法,其特征在于:
所述通过文件系统过滤驱动拦截对应用程序的访问操作并进行重定向处理,包括:
通过文件系统过滤驱动拦截到对所述应用程序在安装过程中生成的文件进行读操作时,如果系统缓存中存在对应文件,则对所述系统缓存中的对应文件进行读操作,如果系统缓存中不存在所述对应文件,则对所述目标磁盘上的对应文件进行读操作。
4.如权利要求1-3中任一项所述的方法,其特征在于:
以读写方式挂载目标磁盘时,所述目标磁盘分配给虚拟机单独使用;
以只读方式挂载承载应用程序安装文件和注册表操作记录的目标磁盘时,所述目标磁盘分配给一个或多个虚拟机共同使用。
5.一种部署应用软件的装置,包括:
磁盘软件包模板制作模块,用于以读写方式挂载目标磁盘,通过文件系统过滤驱动拦截文件操作和注册表操作,将应用程序的实际安装路径重定向至所述目标磁盘的分区上,并通过在所述目标磁盘上创建的注册表文件保存所述应用程序的注册表操作记录;
磁盘软件包模板使用模块,用于以只读方式挂载承载应用程序安装文件和注册表操作记录的目标磁盘,通过文件系统过滤驱动拦截对应用程序的访问操作并进行重定向处理;
磁盘软件包模板使用模块,用于采用以下方式通过文件系统过滤驱动拦截对应用程序的访问操作并进行重定向处理:
读取所述目标磁盘的分区上保存的注册表操作记录,拷贝到系统缓存中创建的注册表备份文件中;
通过文件系统过滤驱动拦截到注册表操作时,将所述操作重定向至系统缓存中创建的注册表备份文件中的注册表记录;
其中,所述目标磁盘为磁盘软件包模板所在的独立磁盘,以只读方式挂载所述磁盘软件包模板,文件读写或注册表记录读写路径的优先级如下:
所述系统缓存的路径的优先级高于所述磁盘软件包模板所在分区的路径的优先级,所述磁盘软件包模板所在分区的路径的优先级高于应用程序的默认安装路径的优先级,所述磁盘软件包模板所在分区的路径的优先级高于默认的注册表保存路径。
6.如权利要求5所述的装置,其特征在于:
磁盘软件包模板使用模块,用于采用以下方式通过文件系统过滤驱动拦截对应用程序的访问操作并进行重定向处理:
通过文件系统过滤驱动拦截到对所述应用程序在安装过程中生成的文件进行写操作时,将所述目标磁盘上保存的原始文件拷贝到系统缓存中,将所述写操作重定向至所述系统缓存中的对应文件。
7.如权利要求6所述的装置,其特征在于:
磁盘软件包模板使用模块,用于采用以下方式通过文件系统过滤驱动拦截对应用程序的访问操作并进行重定向处理:
通过文件系统过滤驱动拦截到对所述应用程序在安装过程中生成的文件进行读操作时,如果系统缓存中存在对应文件,则对所述系统缓存中的对应文件进行读操作,如果系统缓存中不存在所述对应文件,则对所述目标磁盘上的对应文件进行读操作。
8.如权利要求5-7中任一项所述的装置,其特征在于:
以读写方式挂载目标磁盘时,所述目标磁盘分配给虚拟机单独使用;
以只读方式挂载承载应用程序安装文件和注册表操作记录的目标磁盘时,所述目标磁盘分配给一个或多个虚拟机共同使用。
9.一种虚拟机,包括:
存储器、处理器及存储在所述存储器上并可在所述处理器上运行的部署应用软件的程序,所述部署应用软件的程序被所述处理器执行时实现如权利要求1-4中任一项所述的部署应用软件的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有部署应用软件的程序,所述部署应用软件的程序被处理器执行时实现如权利要求1-4中任一项所述的部署应用软件的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711395237.4A CN107992355B (zh) | 2017-12-21 | 2017-12-21 | 一种部署应用软件的方法、装置及虚拟机 |
PCT/CN2018/102285 WO2019119850A1 (zh) | 2017-12-21 | 2018-08-24 | 一种部署应用软件的方法、装置及虚拟机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711395237.4A CN107992355B (zh) | 2017-12-21 | 2017-12-21 | 一种部署应用软件的方法、装置及虚拟机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107992355A CN107992355A (zh) | 2018-05-04 |
CN107992355B true CN107992355B (zh) | 2021-07-13 |
Family
ID=62038154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711395237.4A Active CN107992355B (zh) | 2017-12-21 | 2017-12-21 | 一种部署应用软件的方法、装置及虚拟机 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107992355B (zh) |
WO (1) | WO2019119850A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107992355B (zh) * | 2017-12-21 | 2021-07-13 | 中兴通讯股份有限公司 | 一种部署应用软件的方法、装置及虚拟机 |
CN109284161B (zh) * | 2018-09-13 | 2021-10-08 | 深圳市青葡萄科技有限公司 | 桌面虚拟化环境下的软件分发方法 |
CN109992207A (zh) * | 2019-03-29 | 2019-07-09 | 深圳市天威视讯股份有限公司 | 一种适用于智能机顶盒的存储空间的优化方法及系统 |
CN110442389B (zh) * | 2019-08-07 | 2024-01-09 | 北京技德系统技术有限公司 | 一种多桌面环境共享使用gpu的方法 |
CN110457871A (zh) * | 2019-08-13 | 2019-11-15 | 杭州安恒信息技术股份有限公司 | 一种基于文件过滤驱动框架的守护进程方法和装置 |
CN111124598B (zh) * | 2019-10-18 | 2024-05-28 | 西安雷风电子科技有限公司 | 一种虚拟桌面软件管理方法及系统 |
CN113806007A (zh) * | 2020-06-15 | 2021-12-17 | 中兴通讯股份有限公司 | 磁盘挂载方法、装置、存储介质以及电子装置 |
CN113946276B (zh) * | 2020-07-16 | 2024-06-04 | 北京达佳互联信息技术有限公司 | 集群中的磁盘管理方法、装置及服务器 |
CN112506451B (zh) * | 2020-12-08 | 2023-04-07 | 西安雷风电子科技有限公司 | 一种打印机信息管理工具包及管理方法 |
CN112506532A (zh) * | 2020-12-10 | 2021-03-16 | 西安雷风电子科技有限公司 | 一种软件安装包的生成方法、安装方法及系统 |
CN114706659B (zh) * | 2022-04-01 | 2022-12-09 | 燕东科技(广东)有限公司 | 一种虚拟机软件部署方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231116A (zh) * | 2011-07-04 | 2011-11-02 | 成都市华为赛门铁克科技有限公司 | 应用程序虚拟化安装及加载方法及装置 |
CN102279748A (zh) * | 2011-08-29 | 2011-12-14 | 焦秀琴 | 远程存储本地执行的软件使用方法、系统、服务器及客户端 |
CN102662741A (zh) * | 2012-04-05 | 2012-09-12 | 华为技术有限公司 | 虚拟桌面的实现方法、装置和系统 |
CN104766007A (zh) * | 2015-03-27 | 2015-07-08 | 杭州安恒信息技术有限公司 | 一种基于文件系统过滤驱动实现沙箱快速恢复的方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10193924B2 (en) * | 2014-09-17 | 2019-01-29 | Acalvio Technologies, Inc. | Network intrusion diversion using a software defined network |
CN105701409B (zh) * | 2015-12-29 | 2019-05-17 | 珠海豹趣科技有限公司 | 一种实现文件虚拟化的方法及装置 |
CN106022100A (zh) * | 2016-05-17 | 2016-10-12 | 北京金山安全软件有限公司 | 一种拦截恶意程序安装的方法、装置及电子设备 |
CN107992355B (zh) * | 2017-12-21 | 2021-07-13 | 中兴通讯股份有限公司 | 一种部署应用软件的方法、装置及虚拟机 |
-
2017
- 2017-12-21 CN CN201711395237.4A patent/CN107992355B/zh active Active
-
2018
- 2018-08-24 WO PCT/CN2018/102285 patent/WO2019119850A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231116A (zh) * | 2011-07-04 | 2011-11-02 | 成都市华为赛门铁克科技有限公司 | 应用程序虚拟化安装及加载方法及装置 |
CN102279748A (zh) * | 2011-08-29 | 2011-12-14 | 焦秀琴 | 远程存储本地执行的软件使用方法、系统、服务器及客户端 |
CN102662741A (zh) * | 2012-04-05 | 2012-09-12 | 华为技术有限公司 | 虚拟桌面的实现方法、装置和系统 |
CN104766007A (zh) * | 2015-03-27 | 2015-07-08 | 杭州安恒信息技术有限公司 | 一种基于文件系统过滤驱动实现沙箱快速恢复的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107992355A (zh) | 2018-05-04 |
WO2019119850A1 (zh) | 2019-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107992355B (zh) | 一种部署应用软件的方法、装置及虚拟机 | |
US9600276B2 (en) | Creating templates of offline resources | |
US7203774B1 (en) | Bus specific device enumeration system and method | |
US6714949B1 (en) | Dynamic file system configurations | |
EP3885903A1 (en) | Cloud desktop upgrade method, device, cloud server, and storage medium | |
US20150046519A1 (en) | Programming model for synchronizing browser caches across devices and web services | |
US10715594B2 (en) | Systems and methods for update propagation between nodes in a distributed system | |
US20070118572A1 (en) | Detecting changes in data | |
JPH11327919A (ja) | オブジェクト指向割込みシステム用の方法およびデバイス | |
CN102799464A (zh) | 虚拟机创建方法及系统、虚拟机重装方法及系统 | |
US11144292B2 (en) | Packaging support system and packaging support method | |
JP2008033483A (ja) | 計算機システム、計算機および計算機動作環境の移動方法 | |
JP2004158012A (ja) | ソフトウェアアプリケーション管理のためのシステムおよび方法 | |
WO2020029995A1 (en) | Application upgrading through sharing dependencies | |
CN102289513A (zh) | 获取虚拟机内部文件的方法及系统 | |
CN111684437B (zh) | 按时间顺序排序的错位更新键-值存储系统 | |
WO2019162829A1 (en) | Fast recovery from failures in a chronologically ordered log-structured key-value storage system | |
JP2001175460A (ja) | プログラム配付管理システム | |
US9910662B2 (en) | Selectively migrating applications during an operating system upgrade | |
CN108089948B (zh) | 一种数据库备份方法及装置 | |
US9910667B2 (en) | Segregating a monolithic computing system into multiple attachable application containers based on application boundaries | |
CN100504787C (zh) | 一种软件安装的虚拟执行方法及系统 | |
US20170315827A1 (en) | Merging application configurations to enhance multi-layer performance | |
CN109597774B (zh) | 一种存储设备功能的控制方法、装置及设备 | |
CN118567657A (zh) | 一种局域网中通用计算机的操作系统部署方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |