一种操作系统层级的特征确定方法、计算设备及存储介质与流程

文档序号:31735880发布日期:2022-10-05 03:39阅读:90来源:国知局
一种操作系统层级的特征确定方法、计算设备及存储介质与流程

1.本发明涉及操作系统领域,特别涉及一种操作系统层级的特征确定方法、计算设备及存储介质。


背景技术:

2.在操作系统发展过程中,操作系统逐渐变得大型化、复杂化。由于现代操作系统的复杂性,从底向上所涉及到的应用在数量和复杂度上呈几何数增长,而依赖关系、层次结构更为错综复杂。为了能让操作系统的结构更加清晰,易于扩充和移植,需要确定操作系统各层级的性质及作用。
3.为此,需要一种操作系统层级的特征确定方法。


技术实现要素:

4.为此,本发明提供一种操作系统层级的特征确定方法,以力图解决或者至少缓解上面存在的问题。
5.根据本发明的一个方面,提供一种操作系统层级的特征确定方法,适于在计算设备中执行,计算设备中运行有操作系统,操作系统包括多个层级,每个层级包括一个或多个应用,方法包括:获取一个或多个应用中每个应用的应用信息,根据应用的应用信息确定应用的特征数据;根据应用的特征数据确定应用的特征;根据层级所包括应用的特征确定操作系统的层级的特征。
6.可选地,在根据本发明的方法中,根据应用的应用信息确定应用的特征数据,包括:对应用的应用信息进行数据清洗,得到应用的一个或多个特征关键词;将一个或多个特征关键词作为应用的特征数据。
7.可选地,在根据本发明的方法中,应用的特征包括类型特征,根据应用的特征数据确定应用的特征,包括:根据预先构建的特征关键词典确定特征关键词所属的应用类型;根据特征数据中特征关键词所属的应用类型确定应用的类型特征。
8.可选地,在根据本发明的方法中,特征关键词典包括一个或多个应用类型,每个应用类型包括一个或多个特征关键词,每个特征关键词具有权重,根据特征数据中特征关键词所属的应用类型确定应用的类型特征,包括:根据特征关键词的权重及所属应用类型,分别确定应用所属每种应用类型的权重;将应用所属每种应用类型的权重中最大值所对应的应用类型,确定应用的类型特征。
9.可选地,在根据本发明的方法中,特征关键词典的构建过程,包括:获取多个应用的应用信息,根据应用的应用信息进行数据清洗得到特征关键词集;确定特征关键词集中每个特征关键词对应的权重和应用类型;根据特征关键词及对应的权重和应用类型构建特征关键词典。
10.可选地,在根据本发明的方法中,应用的特征还包括功能特征,根据应用的特征数据确定应用的特征,还包括:根据预设功能分类列表确定应用的功能特征。
11.可选地,在根据本发明的方法中,还包括:若预设功能分类未记载应用的功能特征,则确定应用的一个或多个依赖包;在应用的一个或多个依赖包中选取同一层级依赖的一个或多个依赖包,作为同级依赖包,得到包括一个或多个同级依赖包的同级依赖包集合;根据同级依赖包中每个同级依赖包的功能特征确定应用具有各功能特征的概率,得到多个概率值;根据各层级的同级依赖包得到的多个概率值确定应用的功能特征。
12.可选地,在根据本发明的方法中,还包括:根据应用的特征数据确定应用的一个或多个功能关键词;将应用的一个或多个功能关键词输入分类模型,得到分类结果,根据分类结果确定应用的功能特征。
13.可选地,在根据本发明的方法中,分类模型的构建方法包括:获取多个应用的应用信息,根据述应用信息确定包括每个应用的功能关键词集,功能关键词集包括一个或多个功能关键词;将每个应用作为一个训练样本,得到包括多个训练样本的训练样本集,每个训练样本包括应用的功能特征及功能关键词集;根据训练样本集训练分类模型。
14.可选地,在根据本发明的方法中,根据层级所包括应用的特征确定操作系统的层级的特征包括:根据层级所包括应用的特征确定操作系统的层级所包括特征的特征集合;根据特征集合中出现最多的特征确定操作系统的层级的特征。
15.根据本发明的另一个方面,提供了一种计算设备,包括:一个或多个处理器;存储器;以及一个或多个程序,其中,一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序包括用于执行根据本发明的操作系统层级的特征确定方法的指令。
16.根据本发明的再一个方面,提供了一种存储一个或多个程序的计算机可读存储介质,一个或多个程序包括指令,该指令当由计算设备执行时,使得计算设备执行根据本发明的操作系统层级的特征确定方法。
17.本发明公开了一种操作系统层级的特征确定方法,适于在计算设备中执行,计算设备中运行有操作系统,操作系统包括多个层级,每个层级包括一个或多个应用方法包括:获取应用的应用信息,根据应用的应用信息确定应用的特征数据;根据应用的特征数据确定应用的特征;根据层级所包括应用的特征信息确定操作系统的层级的特征。本发明通过对操作系统各层级中所包括的各应用的特征进行确定,从而实现根据应用的特征确定层级的特征。
附图说明
18.为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本发明公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
19.图1示出了根据本发明一个示范性实施例的操作系统层级的特征确定方法100的流程示意图;
20.图2示出了根据本发明一个示范性实施例的计算设备200的结构框图;
21.图3示出了根据本发明一个示范性实施例的应用功能分类决策的示意图;
22.图4示出了根据本发明一个示范性实施例的应用功能确定的示意图。
23.图5示出了根据本发明一个示范性实施例的有向有环图的示意图;
24.图6示出了根据本发明一个示范性实施例的有向无环图的示意图;
25.图7示出了根据本发明一个示范性实施例的拓扑序列的示意图;
26.图8示出了根据本发明一个示范性实施例的分层的示意图;
27.图9示出了根据本发明一个示范性实施例的有向无环图的示意图;
28.图10示出了根据本发明一个示范性实施例分层架构图的示意图。
具体实施方式
29.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。相同的附图标记通常指代相同的部件或元素。
30.图1示出了根据本发明一个示范性实施例的操作系统层级的特征确定方法100的流程示意图。本发明的操作系统层级的特征确定方法适于在计算设备中运行。计算设备中运行有操作系统。本发明对计算设备中所运行操作系统的种类不做限制。下面对计算设备进行介绍。操作系统包括多个层级,每个层级包括一个或多个应用。系统的分层架构是典型软件架构之一,其特点是整个系统被划分为多个层,任何一层仅依赖于其相邻的下层,不依赖于其它任何层,任何一层仅向其上层提供接口,不向其它任何层提供接口。层内模块高内聚,层间模块低耦合。每一层单独提供一种功能或者实现一种作用。
31.图2示出了根据本发明一个示范性实施例的计算设备的结构框图。
32.在基本配置中,计算设备200包括至少一个处理单元220和系统存储器210。根据一个方面,取决于计算设备的配置和类型,系统存储器210包括但不限于易失性存储(例如,随机存取存储器)、非易失性存储(例如,只读存储器)、闪速存储器、或者这样的存储器的任何组合。根据一个方面,系统存储器210包括操作系统211。
33.根据一个方面,操作系统211,例如,适合于控制计算设备200的操作。此外,示例结合图形库、其他操作系统、或任何其他应用程序而被实践,并且不限于任何特定的应用或系统。在图2中通过在虚线215内的那些组件示出了该基本配置。根据一个方面,计算设备200具有额外的特征或功能。例如,根据一个方面,计算设备200包括额外的数据存储设备(可移动的和/或不可移动的),例如磁盘、光盘、或者磁带。
34.如在上文中所陈述的,根据一个方面,在系统存储器210中存储程序模块212。根据一个方面,程序模块212可包括一个或多个应用程序,本发明不限制应用程序的类型,例如应用还包括:电子邮件和联系人应用程序、文字处理应用程序、电子表格应用程序、数据库应用程序、幻灯片展示应用程序、绘画或计算机辅助应用程序、网络浏览器应用程序等。
35.根据一个方面,可以在包括分立电子元件的电路、包含逻辑门的封装或集成的电子芯片、利用微处理器的电路、或者在包含电子元件或微处理器的单个芯片上实践示例。例如,可以经由其中在图2中所示出的每个或许多组件可以集成在单个集成电路上的片上系统(soc)来实践示例。根据一个方面,这样的soc设备可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元、以及各种应用功能,其全部作为单个集成电路而被集成(或“烧”)到芯片基底上。当经由soc进行操作时,可以经由在单个集成电路(芯片)上与计算设备200的其他组件集成的专用逻辑来对在本文中所描述的功能进行操作。还可以使用能够执行逻辑操作(例如and、or和not)的其他技术来实践本发明的实施例,所述其他技术包括但不限于机械、光学、流体、和量子技术。另外,可以在通用计算机内或在任何其他任何电路或系统中实践本发明的实施例。
36.根据一个方面,计算设备200还可以具有一个或多个输入设备231,例如键盘、鼠标、笔、语音输入设备、触摸输入设备等。还可以包括输出设备232,例如显示器、扬声器、打印机等。前述设备是示例并且也可以使用其他设备。计算设备200可以包括允许与其他计算设备240进行通信的一个或多个通信连接233。合适的通信连接233的示例包括但不限于:rf发射机、接收机和/或收发机电路;通用串行总线(usb)、并行和/或串行端口。计算设备200可通过通信连接233与其他计算设备240通信连接。
37.本发明实施方式还提供一种非暂态可读存储介质,存储有指令,所述指令用于使所述计算设备执行根据本发明实施方式的方法。本实施例的可读介质包括永久性和非永久性、可移动和非可移动介质,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。可读存储介质的例子包括但不限于:相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非暂态可读存储介质。
38.根据一个方面,通信介质是由计算机可读指令、数据结构、程序模块、或者经调制的数据信号(例如,载波或其他传输机制)中的其他数据实施的,并且包括任何信息传递介质。根据一个方面,术语“经调制的数据信号”描述了具有一个或多个特征集或者以将信息编码在信号中的方式改变的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声学、射频(rf)、红外线的、以及其他无线介质之类的无线介质。
39.需要说明的是,尽管上述计算设备仅示出了处理单元220、系统存储器210、输入设备231、输出设备232、以及通信连接233,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
40.请看图1。如图1所示,首先执行步骤110,获取一个或多个应用中每个应用的应用信息,根据应用的应用信息确定应用的特征数据。根据本发明的一个实施例,每个层级中可包括一个或多个应用。本发明对层级中所包括应用的数量和类型不做限制。操作系统中所包括的应用还可实现为软件包,即操作系统的层级中包括一个或多个软件包,本发明对操作系统中所包括程序的具体种类不做限制。
41.根据应用的应用信息确定应用的特征数据时,对应用的应用信息进行数据清洗,得到应用的一个或多个特征关键词,将一个或多个特征关键词确定为应用的特征数据。
42.根据本发明的一个实施例,应用包括应用信息,其中记载应用的各种描述和数据,包括版本(version)、架构(architecture)、摘要(summary)、描述(description)及依赖(depends)关系等。本发明可通过对应用信息进行解析确定应用的特征数据,本发明对确定
应用的特征数据的具体方式不做限制。
43.根据本发明的一个实施例,应用的特征数据在其对应的应用信息中记载。应用信息可具体实现为自然语言的英文描述。本发明对应用信息的具体呈现方式不做限制。为了便于根据应用信息确定应用的特征,首先需要提取应用的应用信息组成元数据,然后对这些元数据进行规范和清洗,得到特征数据。
44.在进行数据清洗时,通过分箱法对应用信息进行筛选得到筛选数据,所述筛选数据中包括可以确定应用的特征的信息。
45.随后,对筛选数据进行清洗得到一个或多个特征关键词。
46.根据本发明的一个实施例,可通过分箱法将应用的元数据做大致的初筛和清洗,将应用的名称、摘要、描述这三项定义为确定应用特征的筛选数据。但是这些筛选数据还并不能直接使用,其中包含大量的自然语言,需要进行预操作,把筛选数据转化为可以进行特征解析的数据。
47.根据本发明的一个实施例,可通过自然语言处理工具包(nltk)对软件包的筛选数据进行清洗。首先通过nltk将筛选数据进行分句,对分好的句进行分词并标注词性,去除停用词和标点符号。根据分词后的单词词性获取名词、动词、形容词、副词,再进行词频统计,最终获取包括一个或多个特征关键词的特征数据。
48.随后,执行步骤120,根据应用的特征数据确定应用的特征。根据本发明的一个实施例,应用的特征包括类型特征和功能特征。确定类型特征时,根据预先构建的特征关键词典确定特征关键词所属的应用类型;再根据特征数据中特征关键词所属的应用类型确定应用的类型特征。
49.根据本发明的一个实施例,一个应用的应用信息包括:“zlib是一个解/压缩库”。该应用中类型特征为“库”;功能特征为:“解/压缩”。
50.根据本发明的一个实施例,特征关键词典包括一个或多个应用类型,每个应用类型包括一个或多个特征关键词,每个特征关键词具有权重。
51.特征关键词典的构建过程,包括:获取多个应用的应用信息,根据应用的应用信息进行数据清洗得到特征关键词集;确定特征关键词集中每个特征关键词对应的权重和应用类型;根据特征关键词及对应的权重和应用类型构建特征关键词典。
52.根据本发明的一个实施例,特征关键词典中应用类型包括库、服务、应用/工具。本发明对特征关键词典中所包括应用类型的具体数目和形式不做限制。
53.根据本发明的一个实施例,特征关键词典中每个特征关键词的权重可通过标注确定,或根据特征关键词出现的频率进行确定。
54.根据特征数据中特征关键词所属的应用类型确定应用的类型特征时,根据特征关键词的权重及所属应用类型,分别确定应用所属每种应用类型的权重;将应用所属每种应用类型的权重中最大值所对应的应用类型,确定为应用的类型特征。
55.根据本发明的一个实施例,若应用的特征关键词包括库文件、软件服务。其中,库文件为“库”应用类型中的特征关键词,权重为10,软件服务为“服务”应用类型中的特征关键词,权重为80。随后将权重为80对应的应用类型“服务”,作为该应用的应用类型。
56.根据本发明的一个实施例,应用的特征还包括功能特征,根据应用的特征数据确定应用的特征,还包括:根据预设功能分类列表确定应用的功能特征。
57.根据本发明的一个实施例,预设功能分类列表中可包括多种功能及对应的应用类型或应用名称,根据应用类型或应用名称可从预设功能列表中查找到该应用对应的功能分类,从而确定功能特征。
58.根据本发明的一个实施例,功能分类可包括:网络、i/o、存储、安全、压缩/解压缩、数据库、中间件、虚拟化等。本发明对功能分类所包括的具体类型和数目不做限制。
59.根据本发明的一个实施例,若预设功能分类未记载应用的功能特征,则确定应用的一个或多个依赖包;在应用的一个或多个依赖包中选取同一层级依赖的一个或多个依赖包,作为同级依赖包,得到包括一个或多个同级依赖包的同级依赖包集合;根据同级依赖包中每个同级依赖包的功能特征确定应用具有各功能特征的概率,得到多个概率值;根据各层级的同级依赖包得到的多个概率值确定应用的功能特征。
60.根据本发明的一个实施例,软件设计开发过程中,遵循“高内聚低耦合”原则,操作系统也不例外,相似功能的模块高内聚,因此软件包的功能特征解析将围绕这一原则进行展开。在通用操作系统中,一个单独的软件的运行是无法对用户提供服务的,所以解析一个软件包的功能,一要根据其自身的聚合性,二要根据其耦合性,聚合性求自身,耦合性求依赖。
61.因此,根据本发明的一个实施例,本发明可采用knn算法模型确定应用的功能分类。具体的:根据分类决策原则,需要圈定一个与其中一个软件包相似度最高的一个点的范围,从而最终以多数表决原则确定该软件包的功能类别。
62.图3示出了根据本发明一个示范性实施例的应用功能分类决策的示意图。如图3所示:待分类应用a其直接依赖包为b、c、d;依赖包c又对依赖包e和依赖包f构成依赖,依赖包e和依赖包f为依赖包a的间接依赖包,应用a其直接依赖与间接依赖均在圈定范围内,那么应用a的功能分类概率为p(a)=(p(b)+p(c)+p(d))/3,其中d依赖包功能概率p(d)是已知的,p(b)=1,c功能概率p(c)为,p(c)=(p(e)+p(f))/2,其中d依赖包与e依赖包并不存在依赖关系。d、e依赖包功能概率只能从d、e依赖包信息中推断而出。摘要和描述中会存在依赖包的功能描述。使用朴素贝叶斯分类法可以推导出d、e依赖包的分类概率p(d)、p(e)。
63.根据本发明的一个实施例,应用若有k层依赖关系,则根据分层的依赖数据结构将依赖范围作为k的取值范围,以每层依赖的功能的相似度作为距离度量,以每层依赖中所有软件包所代表的特征功能的概率作为分类决策的规则,即在k层依赖范围内,哪一层中某一功能的平均概率越大,则该应用属于哪一功能的概率就越高。
64.根据操作系统依赖分层结构图,假设某一层所代表的所有功能概率为1,此依赖层级共有n个软件包,那其中包涵的每一个软件包的平均概率为1/n,其中k个软件包的功能是已经知晓的,还有x个软件包概率是不知晓的,所以这一层所有软件包的功能概率为:(1*k+x*p(x))/n,整个应用功能的平均概率为:
[0065][0066]
该平均概率即为此应用属于各个功能类别的概率,概率越大表明票数越多,那这个软件包的功能与此功能近似度越高。
[0067]
根据本发明的一个实施例,在确定每一层级依赖中,属于哪一项功能的概率最大后,可对各层级的功能概率进行统计,对各层级属于各项功能类别的概率进行加权,从而最
终确定应用的功能类别。
[0068]
根据本发明的一个实施例,根据应用的第一层级依赖确定该层级中,属于功能类别1的概率为50%。属于功能类别2的概率为50%。根据应用的第二层级确定该层级中,属于功能类别1的概率为20%,属于功能类别2的概率为80%,则确定应用属于功能类别1的权重为0.7,属于功能类别2的权重为1.3,则确定应用的功能特征为功能类别2。
[0069]
图4示出了根据本发明一个示范性实施例的应用功能确定的示意图。如图4所示,以待分类应用为原点,待分类应用的直接依赖为依赖包s1,s2,s3,s4,s5,s6,s7,分别在图4中以点的形式示出,在图中可以看到,点s1,s2,s3属于fun1功能类,点s4,s5属于fun2功能类,假设功能类权重占比是均匀的,范围都在直接依赖范围内,根据knn算法原理,只要计算出直接依赖这七个点中大多数点属于哪个类别就可以判断出待分类软件包的类别,但是其中两个点s6,s7功能类别是不确定的,而这两个点的类别也决定了待分类软件包的类别,所以首先要确定s6,s7这两个点(未知软件包)的功能分类p(x)才能最终确定待分类软件包功能分类。未知依赖包的功能分类可以根据依赖包包的信息进行确定。
[0070]
根据本发明的一个实施例,确定应用的功能特征时,还可根据应用的特征数据确定应用的一个或多个功能关键词;再将应用的一个或多个功能关键词输入分类模型,得到分类结果,根据分类结果确定应用的功能特征。
[0071]
根据本发明的一个实施例,可在无法根据依赖包确定应用的功能特征时,或者应用没有依赖包时根据功能关键词进行确定功能分类。本发明对确定应用的功能分类时的具体应用场景不做限制。
[0072]
根据本发明的一个实施例,分类模型的构建方法包括:获取多个应用的应用信息,根据应用信息确定包括每个应用的功能关键词集,功能关键词集包括一个或多个功能关键词;将每个应用作为一个训练样本,得到包括多个训练样本的训练样本集,每个训练样本包括应用的功能特征及功能关键词集;根据训练样本集训练分类模型。
[0073]
根据本发明的一个实施例,所训练的分类模型可具体为朴素贝叶斯分类模型,本发明对分类模型的具体实现方式不做限制。
[0074]
根据本发明的一个实施例,在构建训练样本集时,可划分多个功能类别。再对多个应用进行功能类别的标注。标注时,可对整个iso/仓库软件包进行功能分类,挑选对应的应用作为分类的基础数据,然后提取每一类应用的特征信息。这一阶段的输入为iso/仓库的分类及数据,输出是特征类别和训练样本。
[0075]
随后,计算每个类别在训练样本中的出现频率及每个功能分类划分对每个类别的条件概率估计,并将结果记录。在这一阶段中将可以得到的应用的信息(如:摘要和描述)中可提取的可能代表其功能类别的名词、动词、形容词、副词作为其关键词,并提取出这些词在摘要和描述中的词频,以关键词加词频作为其进行训练的功能特征,最终以某一功能类的多个软件包的功能特征作为其训练样本。根据本发明的一个实施例,可采用nltk提供的贝叶斯分类器完成输入和训练。
[0076]
根据本发明的一个实施例,在根据训练好的分类模型对应用的功能特征进行确定时,输入分类器应用的功能关键词集,输出是应用在各功能类别内的概率。在这一阶段中可提取待分类应用的摘要和描述信息,并在其中提取可代表其功能的功能关键词集作为分类器的输入,输出则为待分类软件包与各个类别的相似概率。
[0077]
根据本发明的一个实施例,上述分类模型还可用于确定位置功能类型的依赖包的功能类别,输入依赖包的功能关键词进行确定。将未知功能类别的依赖包确定为已知功能类别的依赖包,再根据knn算法模型确定应用的功能分类。
[0078]
最后,执行步骤130,根据层级所包括应用的特征确定操作系统的层级的特征。
[0079]
根据本发明的一个实施例,确定操作系统的层级的特征时,可根据层级所包括应用的特征确定操作系统的层级所包括特征的特征集合;根据特征集合中出现最多的特征确定操作系统的层级的特征。
[0080]
确定特征集合后,可对特征按照出现次数进行排序。出现次数最多的特征即为层级的特征。
[0081]
根据本发明的一个实施例,操作系统的层级的特征包括类型特征和功能特征。
[0082]
本发明公开了一种操作系统层级的特征确定方法,适于在计算设备中执行,计算设备中运行有操作系统,操作系统包括多个层级,每个层级包括一个或多个应用方法包括:获取应用的应用信息,根据应用的应用信息确定应用的特征数据;根据应用的特征数据确定应用的特征;根据层级所包括应用的特征信息确定操作系统的层级的特征。本发明通过对操作系统各层级中所包括各应用的特征进行确定,从而实现根据应用的特征确定层级的特征。
[0083]
根据本发明的一个实施例,操作系统的层级可根据如下步骤进行确定:
[0084]
首先,根据操作系统中所包括的多个应用绘制有向图,有向图用于表征应用之间的依赖关系。
[0085]
根据本发明的一个实施例,操作系统中可包括一个或多个应用。本发明对操作系统中所包括应用的数量和类型不做限制。操作系统中所包括的应用还可实现为软件包,即操作系统中包括一个或多个软件包,本发明对操作系统中所包括应用的种类不做限制。
[0086]
根据本发明的一个实施例,根据操作系统中所包括多个应用之间的依赖关系绘制有向图时,先确定多个应用之间的一条或多条依赖关系;再将每条依赖关系作为有向图中的一条有向边,得到包括多条有向边的有向图。
[0087]
根据本发明的一个实施例,应用之间具有引用或调用的依赖关系。应用包括应用信息,其中记载应用的各种描述和数据,包括版本(version)、架构(architecture)、摘要(summary)、描述(description)及依赖(depends)关系等。本发明可通过对应用信息进行解析确定应用的依赖关系,本发明对确定应用的依赖的具体方式不做限制。
[0088]
一个有向图d是指一个有序三元组(v(d),a(d),ψd),其中ψd)为关联函数,它使a(d)中的每一个元素(称为有向边或弧)对应于v(d)中的一个有序元素(称为顶点、点或节点)对。
[0089]
根据本发明的一个实施例,将每一对依赖关系作为有向图中的依赖关系,将依赖关系中包括的应用作为有向图中的节点,得到有向图。
[0090]
随后,根据有向图生成关于应用的拓扑序列,拓扑序列用于表征多个应用对应节点所依赖的应用;具体的:先确定有向图的种类。根据本发明的一个实施例,有向图可根据有无环图划分为有向无环图和有向有环图。
[0091]
若有向图为有向无环图,则根据有向无环图生成拓扑序列;
[0092]
若有向图为有向有环图,则根据有向有环图生成有向无环图,再根据有向无环图
生成拓扑序列。
[0093]
有向无环图指的是一个无回路(或环路)的有向图。回路或环路是指节点通过有向边能够回到自身。
[0094]
根据本发明的一个实施例,通过应用本身记录的依赖关系,或者通过应用文件之间依赖关系,输出针对整个操作系统的应用的依赖关系,形成一个有向图,该有向图可表示为:
[0095]
g=(v,e)
[0096]
由于操作系统的分层结构中需要遵循单向依赖原则,所以需要对g进行判断,判断g是否为有向无环图,若g为有向无环图(dag),则根据有向无环图生成拓扑序列;若g为有向有环图(dcg),则需要根据环路处理算法,将有向有环图转变为有向无环图。
[0097]
根据有向有环图生成有向无环图时,遍历有向有环图中的有向边,确定有向有环图中包括的一个或多个环路;接着将一个或多个环路作为环路集,生成包括环路集的有向无环图。
[0098]
图5示出了根据本发明一个示范性实施例的有向有环图的示意图。如图5所示,该有向有环图表示各应用之间的依赖关系,即图5为操作系统的依赖关系图。图5中包括多个节点,每个节点代表一个应用。节点与节点之间的有向边代表应用与应用之间的依赖关系。图5中包括多个环路。遍历依赖关系,用用circlen的方式表示环路集:
[0099]
circle0:[glibc,libselinux]
[0100]
circle1:[glibc,libselinux,libsepol]
[0101]
circle2:[glibc,libselinux,pcre2]
[0102]
circle3:[glibc,bash]
[0103]
circle4:[glibc,bash,filesystem]
[0104]
circle5:[glibc,bash,ncurses]
[0105]
circle6:[glibc,basesystem,filesystem,bash]
[0106]
circle7:[glibc,basesystem,filesystem,bash,ncurses]
[0107]
其中,自依赖关系不作为环路处理。
[0108]
接着将代入到有向有环图中,可以将操作系统的依赖关系图中环关系消除,操作系统依赖图将转变为dag,将该dag记为gi。
[0109]
图6示出了根据本发明一个示范性实施例的有向无环图的示意图。如图6所示,该有向无环路中已经不包括环路。
[0110]
根据本发明的一个实施例,根据有向无环图生成拓扑序列时,将有向无环图中被依赖节点作为在前的节点,依赖节点作为在后的节点,对有向无环图中所包括的各节点进行排序,得到拓扑序列。在拓扑序列中,被依赖越多的节点位置越靠后,依赖其他节点越少的节点的位置越靠前。
[0111]
根据本发明的一个实施例,如图6所示,其中,节点readline依赖节点texinfo。节点readline为依赖节点,节点texinfo为被依赖节点。因此,拓扑序列中,将节点readline作为在前的节点,节点texinfo作为在后的节点。
[0112]
图7示出了根据本发明一个示范性实施例的拓扑序列的示意图。如图7所示,图7为图6所示的有向无环图的一个拓扑序列的实例。
[0113]
根据本发明的一个实施例,在确定有向无环图的拓扑序列时,由于每个有向图可能有多种组成拓扑序列的方式,所以需要从中确定一个拓扑序列。生成拓扑序列的过程中,当有多个节点可以选择时,则根据这多个节点被依赖的次数数据进行排序,被依赖数据较高者,在拓扑排序中位置越靠后。
[0114]
最后,根据拓扑序列确定操作系统的多个层级;具体的:根据拓扑序列确定拓扑序列中的关键点集;根据关键点集确定操作系统的多个层级。
[0115]
根据本发明的一个实施例,根据拓扑序列确定所述拓扑序列中的关键点集时,针对拓扑序列中每个节点,确定其在前的节点是否均不对在后的节点产生依赖;若是,则将该节点作为关键点集中的关键节点。
[0116]
若一个节点为关键节点,则该节点在dag的拓扑排序中,可以作为每一层界限的节点,使得各层不会出现跨层依赖,是层次的边界。根据本发明的一个实施例,在gi的拓扑序列中,存在节点集v={v1,v2...,vn},存在于该节点集中任一节点v
x
的所处位置之前的所有节点都不对v
x
节点所处位置之后的节点产生依赖,该节点集称为关键节点集。
[0117]
根据本发明的一个实施例,根据关键节点集确定操作系统的多个层级时,基于关键点集中每个关键节点在拓扑序列中所处的位置,将拓扑序列划分为多段序列;将多段序列中的每一段序列确定为一个层级,得到操作系统的多个层级。
[0118]
将拓扑序列划分为多段序列时,将关键节点与依赖关键节点的其他节点划分为一个层级。
[0119]
根据本发明的一个实施例,图8示出了根据本发明一个示范性实施例的分层的示意图。如图8所示:以readline的有向无环图的拓扑序列进行划分层级,根据关键节点的定义,将有一个关键节点集存在,即为v={circle0~7},这个关键节点集中有一个关键节点存在,将readline的依赖关系分为2层。
[0120]
根据本发明的一个实施例,在该拓扑序列的划分时,令入度节点为0的节点readline单独列为一个层级,在该dag的拓扑序列中,将关键节点抽离后,剩余部分拓扑序列将出现2个层级,形成全序结构,实现对操作系统层级的划分。层次结构有全序和半序之分。各层之间为单向依赖,每层之间模块保持独立,则这种层次结构被称为全序。如果各层之间是单向依赖,但某些层内允许有相互调用的关系,则这种层次结构成为半序。
[0121]
根据本发明的一个实施例,podman的应用依赖关系可绘制依赖关系图。图9示出了根据本发明一个示范性实施例的有向无环图的示意图。如图9所示,图9以有向无环图的形式示出了podman的依赖关系图。
[0122]
随后根据图9生成拓扑序列。根据本发明的一个实施例,在生成拓扑序列中多个同时被依赖的应用或依赖应用在拓扑序列中的次序时,可通过各应用的权重进行排序。
[0123]
得到拓扑序列:
[0124]
[

podman



skopeo



conmon



fuse-overlayfs



containemetworking-plugins



libvarlink



slirp4netns



runc



criu



container-selinux



protobuf-c



libnet

]
[0125]
根据拓扑序列和有向无环图可确定关键节点集:
[0126]
{criu,container-selinux}
[0127]
根据关键节点集进行分层得到分层结果:
[0128]
起始软件包或应用:[

podman

]
[0129]
第三层(level3):[

skopeo



conmon



fuse-overlayfs



containernetworking-plugins



libvarlink



slirp4netns



runc

]
[0130]
第二层(level2):[

criu



container-selinux

]
[0131]
第一层(level1):[

protobuf-c



libnet

]
[0132]
根据分层结果,可得到podman的分层架构图。图10示出了根据本发明一个示范性实施例分层架构图的示意图。如图10所示,图10示出了podman作为云原生子系统的示意图,包括多个层级,每个层级包括多个应用。
[0133]
本发明通过对有向有环图采用缩点方式处理为有向无环图,可以解决操作系统分层分级过程中无法处理循环依赖关系问题,使得操作系统的依赖关系可以形成一个有序的关系。本发明中可使用软件包被依赖数量作为判断权重,解决拓扑序列生成过程中无法确定先后顺序的问题。通过增加关键节点的定义,解决了无法对拓扑序拆分层级的问题。在获取到分层级的数据后,通过textrank、knn、naive bayes等算法提取出层级特征关键字,解决了每个层级的定义问题。通过本发明描述方式,可以设计实现出一套完整的工具,开发者可以使用该工具获得操作系统中任意完整依赖关系的分层分级数据,并可以获得每个层级定义的特征关键字。
[0134]
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0135]
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。
[0136]
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组间可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
[0137]
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组间组合成一个模块或单元或组间,以及此外可以把它们分成多个子模块或子单元或子组间。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0138]
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。
[0139]
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在
此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
[0140]
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如软盘、cd-rom、硬盘驱动器或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
[0141]
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的操作系统层级的特征确定方法。
[0142]
以示例而非限制的方式,计算机可读介质包括计算机存储介质和通信介质。计算机存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在计算机可读介质的范围之内。
[0143]
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
[0144]
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1