CN102867061A - ***管理方法和装置 - Google Patents

***管理方法和装置 Download PDF

Info

Publication number
CN102867061A
CN102867061A CN201210353549XA CN201210353549A CN102867061A CN 102867061 A CN102867061 A CN 102867061A CN 201210353549X A CN201210353549X A CN 201210353549XA CN 201210353549 A CN201210353549 A CN 201210353549A CN 102867061 A CN102867061 A CN 102867061A
Authority
CN
China
Prior art keywords
procedure set
version
dynamic link
link library
library file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201210353549XA
Other languages
English (en)
Other versions
CN102867061B (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.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201210353549.XA priority Critical patent/CN102867061B/zh
Publication of CN102867061A publication Critical patent/CN102867061A/zh
Application granted granted Critical
Publication of CN102867061B publication Critical patent/CN102867061B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

本发明公开了一种***管理方法和装置,涉及计算机软件开发领域,解决了现有方案***精简的效率较低以及适用范围较窄的问题。本发明实施例提供的一种***管理方法,包括:在存在不同版本的程序集的情况下,将第一版本程序集重定向到第二版本程序集,其中,第一版本程序集和第二版本程序集为同一种程序集的不同版本;删除第一版本程序集中的动态链接库文件;在删除的动态链接库文件的位置,为该删除的动态链接库文件建立指向与该删除的动态链接库文件对应的第二版本程序集中的动态链接库文件的关联。本发明实现了一种适用范围广的、高效的精简***的方案,提高了***资源的利用率。

Description

***管理方法和装置
技术领域
本发明涉及计算机软件开发领域,特别涉及一种***管理方法和装置。
背景技术
Window***从XP版本开始支持允许同一个程序集(Assembly)的不同版本共存于同一***中的机制,如SxS(Side-by-Side,并行)机制。
由于高版本的程序集通常是在低版本程序集的基础上开发得到的,不同版本的程序集共存时,会出现数据重复的问题等,为提高资源利用率,需要对***进行精简,或称之为***瘦身。
已有的一种***瘦身方案中利用文件大小及文件哈希值,遍历磁盘上的每个文件,找出磁盘上内容完全相同的重复文件,删除冗余文件,相同的文件只保留一份,从而减少磁盘占用,另一种方案中针对特定应用场景对***组件进行裁剪,将***在特定应用场景下所不需要的组件进行卸载,从而精简操作***的规模。
现有方案至少存在如下缺陷:
现有方案要么需要对磁盘上的每个文件逐个计算文件哈希值,分别比对各个文件,从而导致计算量较大、精简效率较低,要么仅适用于特定应用场景,适用范围较窄,亟待一种不局限于特定应用场景、高效的***精简方案。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的***管理方法和装置。
依据本发明的一个方面,提供了一种***管理方法,包括:
在存在不同版本的程序集的情况下,将第一版本程序集重定向到第二版本程序集,其中,第一版本程序集和第二版本程序集为同一种程序集的不同版本;
删除第一版本程序集中的动态链接库文件;
在删除的动态链接库文件的位置,为该删除的动态链接库文件建立指向与该删除的动态链接库文件对应的第二版本程序集中的动态链接库文件的关联。
可选地,上述将第一版本程序集重定向到第二版本程序集包括:
通过修改第一版本程序集的策略配置文件,将第一版本程序集重定向到第二版本程序集。
可选地,在删除的动态链接库文件的位置,为该删除的动态链接库文件建立指向与该删除的动态链接库文件对应的第二版本程序集中的动态链接库文件的关联的同时或之后,上述方法还包括:
将第一版本程序集的描述文件中删除的动态链接库文件的文件哈希值,修改为该删除的动态链接库文件对应的第二版本程序集中动态链接库文件的文件哈希值。
可选地,在将第一版本程序集重定向到第二版本程序集之前,上述方法还包括:
通过下列方式,确定第一版本程序集和第二版本程序集:
在每种具有不同版本的程序集中选取两个程序集,将两个程序集中版本级别高的程序集作为第二版本程序集,将两个程序集中版本级别低的程序集作为第一版本程序集;或者,
在每种具有不同版本的程序集中,将版本级别最高的程序集作为第二版本程序集,并将版本级别小于该第二版本程序集的所有程序集都作为第一版本程序集。
可选地,在确定上述第一版本程序集和第二版本程序集之前,上述方法还包括:
通过下列方式,获知每种具有不同版本的程序集:
扫描操作***的安装程序集的目录下的所有程序集,查找是否存在同名的程序集;
如果存在同名的程序集,则确认存在具有不同版本的程序集,且同名的程序集为同一种程序集的不同版本;
如果不存在同名的程序集,则确认不存在具有不同版本的程序集。
可选地,上述通过修改第一版本程序集的策略配置文件,将第一版本程序集重定向到第二版本程序集包括:
将第一版本程序集的策略配置文件中的绑定重定向节点中的新版本信息,修改为第二版本程序集的版本号。
根据本发明的另一方面,提供了一种***管理装置,包括:
重定向单元,适于在存在不同版本的程序集的情况下,将第一版本程序集重定向到第二版本程序集,其中,第一版本程序集和第二版本程序集为同一种程序集的不同版本;
删减单元,适于删除第一版本程序集中的动态链接库文件,并在删除的动态链接库文件的位置,为该删除的动态链接库文件建立指向与该删除的动态链接库文件对应的第二版本程序集中的动态链接库文件的关联。
可选地,上述重定向单元,适于通过修改第一版本程序集的策略配置文件,将第一版本程序集重定向到第二版本程序集。
可选地,上述删减单元,适于在删除的动态链接库文件的位置,为该删除的动态链接库文件建立指向与该删除的动态链接库文件对应的第二版本程序集中的动态链接库文件的关联的同时或之后,将第一版本程序集的描述文件中删除的动态链接库文件的文件哈希值,修改为该删除的动态链接库文件对应的第二版本程序集中动态链接库文件的文件哈希值。
可选地,上述装置还包括程序集选取单元,
上述程序集选取单元,适于通过下列方式,确定第一版本程序集和第二版本程序集:在每种具有不同版本的程序集中选取两个程序集,将两个程序集中版本级别高的程序集作为第二版本程序集,将两个程序集中版本级别低的程序集作为第一版本程序集;或者,在每种具有不同版本的程序集中,将版本级别最高的程序集作为第二版本程序集,并将版本级别小于该第二版本程序集的所有程序集都作为第一版本程序集。
可选地,上述装置还包括程序集获知单元,
上述程序集获知单元,适于通过下列方式,获知每种具有不同版本的程序集:扫描操作***的安装程序集的目录下的所有程序集,查找是否存在同名的程序集,如果存在同名的程序集,则确认存在具有不同版本的程序集,且同名的程序集为同一种程序集的不同版本;如果不存在同名的程序集,则确认不存在具有不同版本的程序集。
可选地,上述重定向单元,适于将第一版本程序集的策略配置文件中的绑定重定向节点中的新版本信息,修改为第二版本程序集的版本标识。
由上所述,本发明实施例通过删除第一版本程序集中的动态链接库文件的技术特征,能够在程序集层次进行文件的删除,一次删除操作即可删除程序集下的多个动态链接库文件,避免了现有方案中逐个计算各文件的文件哈希值并分别比对而导致的精简效率较低的问题,能够显著减少精简***时需要的计算量,提高精简***的效率;
并且,本发明实施例通过将第一版本程序集重定向到第二版本程序集、以及为该删除的动态链接库文件建立指向与其对应的第二版本程序集中的动态链接库文件的关联的技术特征,当需要运行已删除的动态链接库文件时,能够自动调用关联的第二版本程序集中的动态链接库文件,保证了精简后的***的正常运行。
再次,本发明实施例适用于所有存在不同版本的程序集的情况下的各种应用场景,解决了现有方案针对特定应用场景,适用范围较窄的问题,因而本发明实施例提供了一种适用范围广的、高效的精简***的实现方案。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的***管理方法流程图;
图2示出了根据本发明又一个实施例的***管理方法流程图;以及
图3示出了根据本发明一个实施例的***管理装置的结构示意图;
图4示出了根据本发明又一个实施例的***管理装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在本发明的一个实施例中,提供了一种***管理方法,参见图1,包括:
S100:在存在不同版本的程序集的情况下,将第一版本程序集重定向到第二版本程序集,其中,第一版本程序集和第二版本程序集为同一种程序集的不同版本;
S102:删除第一版本程序集中的动态链接库文件,并在删除的动态链接库文件的位置,为该删除的动态链接库文件建立指向与该删除的动态链接库文件对应的第二版本程序集中的动态链接库文件的关联。
程序集通常是一组动态链接库(Dynamic Link Library,DLL)文件的组合,一个程序集中包括多个动态链接库文件,动态链接库文件主要包括以dll为扩展名的文件,也包括以其他(如so)为扩展名的文件等。多数情况下,第一版本程序集的版本级别高于第二版本程序集的版本级别。通过上述步骤S100和S102,利用上述的重定向操作和建立的关联,在需要加载运行第一版本程序集时,利用为删除的动态链接库文件建立指向与其对应的第二版本程序集中的动态链接库文件的关联,能够自动加载运行第二版本程序集中的动态链接库文件,从而在删除第一版本程序集以精简***的同时,保证了***的正常运行。
由上所述,本发明实施例通过删除第一版本程序集中的动态链接库文件的技术特征,能够在程序集层次进行文件的删除,一次删除操作即可删除程序集下的多个动态链接库文件,避免了现有方案中逐个计算各文件的文件哈希值并分别比对而导致的精简效率较低的问题,能够显著减少精简***时需要的计算量,提高精简***的效率;
并且,本发明实施例通过将第一版本程序集重定向到第二版本程序集、以及为该删除的动态链接库文件建立指向与其对应的第二版本程序集中的动态链接库文件的关联的技术特征,当需要运行已删除的动态链接库文件时,能够自动调用关联的第二版本程序集中的动态链接库文件,保证了精简后的***的正常运行。
再次,本发明实施例适用于所有存在不同版本的程序集的情况下的各种应用场景,解决了现有方案针对特定应用场景,适用范围较窄的问题,因而本发明实施例提供了一种适用范围广的、高效的精简***的实现方案。
在本发明又一个实施例中,以在采用SxS机制下存在多个不同版本的程序集的***为例,来对本方案提供的一种***管理方法进行说明。可以理解,本方案并不局限于SxS机制,还可以适用于其他存在不同版本的程序集的情况。
参见图2,本实施例提供的***管理方法,包括如下处理:对存在多个不同版本的程序集的***,首先获知***下每种具有不同版本的程序集,然后确定第一版本程序集和第二版本程序集,第一版本程序集为需要删减的程序集,通常为低版本的程序集,第二版本程序集通常为高版本的程序集,这是由于高版本程序集通常是向下兼容的,能够包含运行第一版本程序集所需要的所有资源,从而能够在第一版本程序集中的动态链接库文件删除后,提供***运行所需的资源,则通过修改第一版本程序集的策略配置文件,将第一版本程序集重定向到第二版本程序集,从而保证了当精简后的***需要运行已删除的第一版本程序集中的动态链接库文件时,能够加载并运行第二版本程序集中关联的动态链接库文件。
再次,删除第一版本程序集中的动态链接库文件,以对***进行精简,并且,在删除的动态链接库文件的位置为该删除的动态链接库文件建立指向与该删除的动态链接库文件对应的第二版本程序集中的动态链接库文件的关联。建立这一关联的目的主要在于当需要运行已删除的动态链接库文件时,能够自动调用关联的第二版本程序集中的动态链接库文件,保证了精简后的***的正常运行。
并且,本实施例还将第一版本程序集的描述文件中删除的动态链接库文件的文件哈希值,修改为删除的动态链接库文件所对应的第二版本程序集中动态链接库文件的文件哈希值。这种修改避免了精简后的***在加载第一版本程序集时,因为描述文件中的文件哈希值所指示的动态链接库文件与实际加载的第二版本程序集中的动态链接库文件不一致而导致的加载失败的问题,进一步保证了重定向的第一版本程序集能够被成功加载和运行。
上述处理的具体描述如下:
S200:获知每种具有不同版本的程序集。
扫描操作***的安装程序集的目录下的所有程序集,查找是否存在同名的程序集;如果存在同名的程序集,则确认存在具有不同版本的程序集,且所述同名的程序集为同一种程序集的不同版本;如果不存在同名的程序集,则确认不存在具有不同版本的程序集。
由于在SxS机制下,通常将不同版本的程序集安装在“%windir%\winsxs”目录下,所以扫描“%windir%\winsxs”目录下的所有程序集,通过各程序集的描述文件得到程序集的名称、版本号和程序集中包含的全部动态链接库文件。上述程序集的描述文件是一种记载了程序集的描述信息的文件,这些描述信息包括程序集的名称、版本号和程序集中包含的全部动态链接库文件等。
上述“扫描程序集的描述文件”的一种方式为解析描述文件中所包括的各项信息,获取所关注信息内容,如解析描述文件中包含程序集名称的信息时,可以得到该程序集的名称。在下文中对描述文件的具体内容进行说明。
上述描述文件可以为声明(manifests)文件,例如,以WinXP操作***下的VC++8 CRT应用***为例,该VC++8 CRT应用***安装了程序集“Microsoft.VC80.CRT”,通过扫描%windir%\winsxs\manifests目录下的声明文件,得知该程序集在***中存在下列版本号的三个不同的版本:
版本1:8.0.50727.3079
版本2:8.0.50727.42
版本3:8.0.50727.762
将上述版本号中的各位数字进行比较,获知各个版本的版本级别的高低,在上面的例子中,版本级别的从高到低的顺序为:版本1>版本3>版本2。
上述三个版本程序集的动态链接库文件所在的目录可以如下所示:
版本1:
%windir%\winsxs\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.3079_x-ww_b811a94e
版本2:
%windir%\winsxs\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_0de06acd
版本3:
%windir%\winsxs\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700
程序集“Microsoft.VC80.CRT”的版本1的程序集的描述文件的示例为x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.3079_x-ww_b811a94e.manifest,其具体内容可以如下:
Figure BDA00002169695600091
Figure BDA00002169695600101
上述XML(Extensible Markup Language,可扩展标记语言)格式的描述文件描述了程序集的名称为Microsoft.VC80.CRT,版本号为8.0.50727.307。该程序集包括的动态链接库文件有msvcr80.dll、msvcp80.dll和msvcm80.dll该动态链接库文件的文件哈希值分别为"7f21b93e4121607a2d2498940b4620f4782d5dca"、"96eb66c2659b4bba2ca4c9722e8ff9d2a3ac2e20"和"6aa50e61ef24d4514fd2b7c3d8acc5c162d493e9"。
程序集“Microsoft.VC80.CRT”的版本2的程序集的描述文件的示例为x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_0de06acd.manifest,其具体内容可以如下:
Figure BDA00002169695600102
Figure BDA00002169695600111
上述XML格式的描述文件描述了程序集的名称为Microsoft.VC80.CRT,版本号为8.0.50727.42。该程序集包括的动态链接库文件有msvcr80.dll、msvcp80.dll和msvcm80.dll。该动态链接库文件的文件哈希值分别为"2a0d797a8c5eac76e54e98db9682e0938c614b45"、"cc4ca55fb6aa6b7bb8577ab4b649ab77e42f8f91"和"55e8e87bbde00d1d96cc119ccd94e0c02c9a2768"。
程序集“Microsoft.VC80.CRT”的版本3的程序集的描述文件的示例为x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700.manifest,其具体内容可以如下:
Figure BDA00002169695600121
Figure BDA00002169695600131
上述XML格式的描述文件描述了程序集的名称为Microsoft.VC80.CRT,版本号为8.0.50727.762。该程序集包括的动态链接库文件有msvcr80.dll、msvcp80.dll和msvcm80.dll。该动态链接库文件的文件哈希值分别为"10f4cb2831f1e9288a73387a8734a8b604e5beaa"、″b2082dfd3009365c5b287448dcb3b4e2158a6d26"和"542490d0fcf8615c46d0ca487033ccaeb3941f0b"。
S202:确定第一版本程序集和第二版本程序集。
由于高版本程序集通常向下兼容低版本的程序集,高版本程序集中的动态链接库文件能够支持低版本程序集的运行,所以本实施例中第一版本程序集通常为版本级别较低的低版本程序集,第二版本程序集中为版本级别较高的高版本程序集,然而,本方案并不局限于此,一些场景中,第一版本程序集可以为高版本程序集,第二版本程序集可以为低版本程序集。
通过下列方式,确定第一版本程序集和第二版本程序集:
一种可选的方式为:在每种具有不同版本的程序集中选取两个程序集,将两个程序集中版本级别高的程序集作为第二版本程序集,将两个程序集中版本级别低的程序集作为第一版本程序集;仍以上述示例说明,对程序集“Microsoft.VC80.CRT”,选取版本1的程序集和版本2的程序集,将版本2的程序集作为第一版本程序集,将版本1的程序集作为第二版本程序集。若对于除了这两个版本之外的其他不同版本也需要进行精简处理的话,按照上述相同的处理方式处理即可,即在具有不同版本的程序集中,每次选取两个程序集,将两个程序集中版本级别低的程序集作为第一版本程序集,将两个程序集中版本级别高的程序集作为第二版本程序集,对选取的两个程序集进行***精简操作之后,若还存在三个以上不同版本程序集,则在剩余的程序集中再选取两个程序集,重复上述操作,直至剩下两个不同版本的程序集。
又一种可选的方式为:在每种具有不同版本的程序集中,将版本级别最高的程序集作为第二版本程序集,并将版本级别小于该第二版本程序集的所有程序集都作为第一版本程序集。仍以上述示例说明,对程序集“Microsoft.VC80.CRT”,将版本1的程序集作为第二版本程序集,将剩余的程序集(包括版本2的程序集和版本3的程序集)都作为第一版本程序集。
S204:通过修改第一版本程序集的策略配置文件,将第一版本程序集重定向到第二版本程序集。
操作***中的策略(policy)配置文件是一种规定了程序在加载以及运行动态链接库时需要遵照的策略的文件。该文件通常保存在%windir%\winsxs\policies目录下(对于Vista及其以上的操作***不存在这个目录,需要从注册表中获取策略配置文件)。策略配置文件通过绑定重定向节点<bindingRedirect>节点指定了低版本向高版本的重定向策略,该重定向策略指示当应用程序要加载低版本的动态链接库文件时,***将低版本的动态链接库文件重定向到高版本的动态链接库文件从而加载高版本的动态链接库文件,即当某个应用程序要加载低版本的动态链接库文件时,***根据此处策略配置文件中配置的策略,可以将其重定向到高版本的动态链接库文件从而加载高版本的动态链接库文件。
“Microsoft.VC80.CRT”的版本2的程序集的策略配置文件的一个示例为8.0.50727.42.policy,具体内容可以如下:
Figure BDA00002169695600151
“Microsoft.VC80.CRT”的版本3的程序集的策略配置文件的一个示例为8.0.50727.762.policy,具体内容可以如下:
Figure BDA00002169695600152
Figure BDA00002169695600161
“Microsoft.VC80.CRT”的版本3的程序集的策略配置文件的一个示例为8.0.50727.3079.policy,具体内容可以如下:
Figure BDA00002169695600162
Figure BDA00002169695600171
本实施例中,当将版本2的程序集作为第一版本程序集,将版本1的程序集作为第二版本程序集时,需要将版本2的程序集的策略配置文件中的<bindingRedirect>节点中的新版本信息(newVersion)修改为版本1的程序集的版本号。对于将版本2的程序集和版本3的程序集都作为第一版本程序集的情况,采用上述相同的修改操作,同时对版本2的程序集的策略配置文件和版本3的程序集的策略配置文件进行修改。
S206:删除第一版本程序集中的动态链接库文件,并在删除的动态链接库文件的位置为该删除的动态链接库文件建立指向与该删除的动态链接库文件对应的第二版本程序集中的动态链接库文件的关联。
在删除的动态链接库文件的位置,即在删除的动态链接库文件原来所在的目录下,建立上述关联,这种关联可以包括与删除的动态链接库文件对应的第二版本程序集中的动态链接库文件的地址或者指向该地址的信息等。
本实施例中上述关联可以由符号链接文件实现,该符号链接文件中具有与该删除的动态链接库文件对应的第二版本程序集中的动态链接库文件的关联,例如该符号链接文件中具有与该删除的动态链接库文件对应的第二版本程序集中的动态链接库文件的地址。
S208:将第一版本程序集的描述文件中删除的动态链接库文件的文件哈希值,修改为删除的动态链接库文件所对应的第二版本程序集中动态链接库文件的文件哈希值。
本实施例不对各个步骤执行的具体次序进行严格限定,如步骤S206和S208可以同时执行,或者步骤S208可以在步骤S206之后执行。
例如,对将“Microsoft.VC80.CRT”的版本1的程序集作为第二版本程序集,将版本2的程序集作为第一版本程序集的情况,将版本2的程序集的XML描述文件中各动态链接库文件的文件哈希值分别修改为版本1的程序集的XML描述文件的各动态链接库文件的文件哈希值。这种修改进一步保证了重定向的第一版本程序集能够被成功加载和运行。
通过上述步骤S200至S208的操作,本实施例能够对具有不同版本程序集的操作***以及各种应用进行精简,该精简操作删除了第一版本程序集中的动态链接库文件,减少了磁盘占用,达到***瘦身的目的;且上述方法操作简单,***性能开销小。
本发明一个实施例还提供了一种***管理装置,参见图3,包括:
重定向单元300,适于在存在不同版本的程序集的情况下,将第一版本程序集重定向到第二版本程序集,其中,该第一版本程序集和第二版本程序集为同一种程序集的不同版本;
删减单元302,适于删除第一版本程序集中的动态链接库文件,并在删除的动态链接库文件的位置,为该删除的动态链接库文件建立指向与该删除的动态链接库文件对应的第二版本程序集中的动态链接库文件的关联。
多数情况下,第一版本程序集的版本级别高于第二版本程序集的版本级别。通过上述重定向单元300和删减单元302,利用重定向操作和建立的关联,在需要加载运行第一版本程序集时,利用为删除的动态链接库文件建立指向与其对应的第二版本程序集中的动态链接库文件的关联,能够自动加载运行第二版本程序集中的动态链接库文件,从而在删除第一版本程序集以精简***的同时,保证了***的正常运行。
本发明装置实施例中各单元的具体工作方式可以参见本发明的方法实施例,在此不再赘述。
本发明的又一个实施例提供的一种***管理装置,参见图4,包括:
重定向单元300,适于在存在不同版本的程序集的情况下,将第一版本程序集重定向到第二版本程序集,其中,该第一版本程序集和第二版本程序集为同一种程序集的不同版本;
删减单元302,适于删除第一版本程序集中的动态链接库文件,并在删除的动态链接库文件的位置,为该删除的动态链接库文件建立指向与该删除的动态链接库文件对应的第二版本程序集中的动态链接库文件的关联。
其中,重定向单元300,适于通过修改第一版本程序集的策略配置文件,将第一版本程序集重定向到第二版本程序集。例如,重定向单元300,具体适于将第一版本程序集的策略配置文件中的绑定重定向节点中的新版本信息,修改为第二版本程序集的版本标识。
上述删减单元302,适于在删除的动态链接库文件的位置,为该删除的动态链接库文件建立指向与该删除的动态链接库文件对应的第二版本程序集中的动态链接库文件的关联的同时或之后,将第一版本程序集的描述文件中删除的动态链接库文件的文件哈希值,修改为该删除的动态链接库文件对应的第二版本程序集中动态链接库文件的文件哈希值。
可选的,上述装置还包括程序集选取单元402,适于通过下列方式,确定第一版本程序集和第二版本程序集:在每种具有不同版本的程序集中选取两个程序集,将两个程序集中版本级别高的程序集作为第二版本程序集,将两个程序集中版本级别低的程序集作为第一版本程序集;或者,在每种具有不同版本的程序集中,将版本级别最高的程序集作为第二版本程序集,并将版本级别小于该第二版本程序集的所有程序集都作为第一版本程序集。
可选的,上述装置还包括程序集获知单元400,适于通过下列方式,获知每种具有不同版本的程序集:扫描操作***的安装程序集的目录下的所有程序集,查找是否存在同名的程序集,如果存在同名的程序集,则确认存在具有不同版本的程序集,且同名的程序集为同一种程序集的不同版本;如果不存在同名的程序集,则确认不存在具有不同版本的程序集。
本发明装置实施例中各单元的具体工作方式可以参见本发明的方法实施例,在此不再赘述。
由上所述,本发明实施例通过删除第一版本程序集中的动态链接库文件的技术特征,能够在程序集层次进行文件的删除,一次删除操作即可删除程序集下的多个动态链接库文件,避免了现有方案中逐个计算各文件的文件哈希值并分别比对而导致的精简效率较低的问题,能够显著减少精简***时需要的计算量,提高精简***的效率;
并且,本发明实施例通过将第一版本程序集重定向到第二版本程序集、以及为该删除的动态链接库文件建立指向与其对应的第二版本程序集中的动态链接库文件的关联的技术特征,当需要运行已删除的动态链接库文件时,能够自动调用关联的第二版本程序集中的动态链接库文件,保证了精简后的***的正常运行。
再次,本发明实施例适用于所有存在不同版本的程序集的情况下的各种应用场景,解决了现有方案针对特定应用场景,适用范围较窄的问题,因而本发明实施例提供了一种适用范围广的、高效的精简***的实现方案。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的***管理装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (12)

1.一种***管理方法,包括:
在存在不同版本的程序集的情况下,将第一版本程序集重定向到第二版本程序集,其中,所述第一版本程序集和第二版本程序集为同一种程序集的不同版本;
删除所述第一版本程序集中的动态链接库文件;
在删除的动态链接库文件的位置,为该删除的动态链接库文件建立指向与该删除的动态链接库文件对应的第二版本程序集中的动态链接库文件的关联。
2.根据权利要求1所述的方法,其中,所述将第一版本程序集重定向到第二版本程序集包括:
通过修改第一版本程序集的策略配置文件,将第一版本程序集重定向到第二版本程序集。
3.根据权利要求2所述的方法,其中,在删除的动态链接库文件的位置,为该删除的动态链接库文件建立指向与该删除的动态链接库文件对应的第二版本程序集中的动态链接库文件的关联的同时或之后,所述方法还包括:
将第一版本程序集的描述文件中删除的动态链接库文件的文件哈希值,修改为该删除的动态链接库文件对应的第二版本程序集中动态链接库文件的文件哈希值。
4.根据权利要求3所述的方法,其中,在将第一版本程序集重定向到第二版本程序集之前,所述方法还包括:
通过下列方式,确定所述第一版本程序集和第二版本程序集:
在每种具有不同版本的程序集中选取两个程序集,将两个程序集中版本级别高的程序集作为所述第二版本程序集,将两个程序集中版本级别低的程序集作为所述第一版本程序集;或者,
在每种具有不同版本的程序集中,将版本级别最高的程序集作为所述第二版本程序集,并将版本级别小于该第二版本程序集的所有程序集都作为第一版本程序集。
5.根据权利要求4所述的方法,其中,在确定所述第一版本程序集和第二版本程序集之前,所述方法还包括:
通过下列方式,获知每种具有不同版本的程序集:
扫描操作***的安装程序集的目录下的所有程序集,查找是否存在同名的程序集;
如果存在同名的程序集,则确认存在具有不同版本的程序集,且所述同名的程序集为同一种程序集的不同版本;
如果不存在同名的程序集,则确认不存在具有不同版本的程序集。
6.根据权利要求2至5任一项所述的方法,其中,所述通过修改第一版本程序集的策略配置文件,将第一版本程序集重定向到第二版本程序集包括:
将第一版本程序集的策略配置文件中的绑定重定向节点中的新版本信息,修改为第二版本程序集的版本号。
7.一种***管理装置,包括:
重定向单元,适于在存在不同版本的程序集的情况下,将第一版本程序集重定向到第二版本程序集,其中,所述第一版本程序集和第二版本程序集为同一种程序集的不同版本;
删减单元,适于删除所述第一版本程序集中的动态链接库文件,并在删除的动态链接库文件的位置,为该删除的动态链接库文件建立指向与该删除的动态链接库文件对应的第二版本程序集中的动态链接库文件的关联。
8.根据权利要求7所述的装置,其中,
所述重定向单元,适于通过修改第一版本程序集的策略配置文件,将第一版本程序集重定向到第二版本程序集。
9.根据权利要求8所述的装置,其中,
所述删减单元,适于在删除的动态链接库文件的位置,为该删除的动态链接库文件建立指向与该删除的动态链接库文件对应的第二版本程序集中的动态链接库文件的关联的同时或之后,将第一版本程序集的描述文件中删除的动态链接库文件的文件哈希值,修改为该删除的动态链接库文件对应的第二版本程序集中动态链接库文件的文件哈希值。
10.根据权利要求9所述的装置,其中,所述装置还包括程序集选取单元,
所述程序集选取单元,适于通过下列方式,确定所述第一版本程序集和第二版本程序集:在每种具有不同版本的程序集中选取两个程序集,将两个程序集中版本级别高的程序集作为所述第二版本程序集,将两个程序集中版本级别低的程序集作为所述第一版本程序集;或者,在每种具有不同版本的程序集中,将版本级别最高的程序集作为所述第二版本程序集,并将版本级别小于该第二版本程序集的所有程序集都作为第一版本程序集。
11.根据权利要求10所述的装置,其中,所述装置还包括程序集获知单元,
所述程序集获知单元,适于通过下列方式,获知每种具有不同版本的程序集:扫描操作***的安装程序集的目录下的所有程序集,查找是否存在同名的程序集,如果存在同名的程序集,则确认存在具有不同版本的程序集,且所述同名的程序集为同一种程序集的不同版本;如果不存在同名的程序集,则确认不存在具有不同版本的程序集。
12.根据权利要求8至11任一项所述的装置,其中,所述重定向单元,适于将第一版本程序集的策略配置文件中的绑定重定向节点中的新版本信息,修改为第二版本程序集的版本标识。
CN201210353549.XA 2012-09-20 2012-09-20 ***管理方法和装置 Active CN102867061B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210353549.XA CN102867061B (zh) 2012-09-20 2012-09-20 ***管理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210353549.XA CN102867061B (zh) 2012-09-20 2012-09-20 ***管理方法和装置

Publications (2)

Publication Number Publication Date
CN102867061A true CN102867061A (zh) 2013-01-09
CN102867061B CN102867061B (zh) 2015-08-19

Family

ID=47445930

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210353549.XA Active CN102867061B (zh) 2012-09-20 2012-09-20 ***管理方法和装置

Country Status (1)

Country Link
CN (1) CN102867061B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104049984A (zh) * 2013-03-12 2014-09-17 ***通信集团公司 一种Android终端的中间件、终端及其应用方法
CN106055372A (zh) * 2016-06-30 2016-10-26 乐视控股(北京)有限公司 一种卸载应用程序的方法和装置
CN106844431A (zh) * 2016-12-12 2017-06-13 北京猎豹移动科技有限公司 文件存储方法、装置及其电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1535417A (zh) * 2000-06-28 2004-10-06 通过散列的绑定
US20060168588A1 (en) * 2004-12-03 2006-07-27 Microsoft Corporation Enabling inter-subsystem resource sharing
CN101645745A (zh) * 2009-08-19 2010-02-10 厦门敏讯信息技术股份有限公司 综测仪控制设备及测试方法
CN102081516A (zh) * 2009-11-30 2011-06-01 英业达股份有限公司 依据储存资源提供相应数据存取的***及其方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1535417A (zh) * 2000-06-28 2004-10-06 通过散列的绑定
US20060168588A1 (en) * 2004-12-03 2006-07-27 Microsoft Corporation Enabling inter-subsystem resource sharing
CN101645745A (zh) * 2009-08-19 2010-02-10 厦门敏讯信息技术股份有限公司 综测仪控制设备及测试方法
CN102081516A (zh) * 2009-11-30 2011-06-01 英业达股份有限公司 依据储存资源提供相应数据存取的***及其方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SUN: "《Windows 下也能创建硬链接和软链接(符号链接)》", 《HTTP://WWW.BLOGJAVA.NET/UNMI/ARCHIVE/2007/11/26/163055.HTML》, 12 July 2009 (2009-07-12), pages 1 - 3 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104049984A (zh) * 2013-03-12 2014-09-17 ***通信集团公司 一种Android终端的中间件、终端及其应用方法
CN106055372A (zh) * 2016-06-30 2016-10-26 乐视控股(北京)有限公司 一种卸载应用程序的方法和装置
CN106844431A (zh) * 2016-12-12 2017-06-13 北京猎豹移动科技有限公司 文件存储方法、装置及其电子设备

Also Published As

Publication number Publication date
CN102867061B (zh) 2015-08-19

Similar Documents

Publication Publication Date Title
KR101376916B1 (ko) 소프트웨어 애플리케이션을 신규 버전의 소프트웨어 애플리케이션으로 점진적으로 업그레이드하기 위한 방법, 기계 판독가능 저장 매체를 포함하는 제품 및 장치
US10140461B2 (en) Reducing resource consumption associated with storage and operation of containers
US7757226B2 (en) Method and mechanism for performing a rolling upgrade of distributed computer software
CN102946436B (zh) 一种下载***
US9218137B2 (en) System and method for providing data migration services
US20100095289A1 (en) Patching of multi-level data containers storing portions of pre-installed software
US20110246617A1 (en) Virtual Application Extension Points
CN103577552A (zh) 网页图片处理方法及装置
CN102982162B (zh) 网页信息的获取***
US20040158602A1 (en) Resource repository and technique for populating same
CN104036011A (zh) 网页元素的显示方法以及浏览器装置
CN111240892B (zh) 数据备份方法及装置
CN103577546A (zh) 一种数据备份的方法、设备及分布式集群文件***
US8903874B2 (en) File system directory attribute correction
CN103365996A (zh) 文件管理及处理方法、装置和***
CN105630818A (zh) 一种批量文件重命名的方法及装置
US20110197183A1 (en) System and method for runtime class extracting
CN102867061B (zh) ***管理方法和装置
CN102053855B (zh) 一种软件的生成***及方法
CN102932476A (zh) 网络存储同步***
CN103544254B (zh) 一种数据管理方法及装置
CN103095698B (zh) 客户端软件的修复方法、装置和通信***
CN115080114B (zh) 应用程序的移植处理方法、装置和介质
CN112612489A (zh) 软件的升级包构建方法、装置和电子设备
CN103530155A (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220711

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co., Ltd