一种虚拟化环境中的进程信息监控系统及其方法

文档序号:6516633阅读:250来源:国知局
一种虚拟化环境中的进程信息监控系统及其方法
【专利摘要】本发明公开了一种虚拟化环境下的进程列表信息监控系统及其方法,该进程列表信息监控系统部署在特权虚拟机中,对多个客户虚拟机的进程列表信息进行监控,该进程列表信息监控系统包括:用户输入模块、初始化模块、初始化模块;列表信息监测模块用于由用户提供被监控的客户虚拟机的ID和操作系统类型;初始化模块用于保存偏移量和起始进程结构的虚拟地址;列表信息监测模块用于对多个客户虚拟机的进程列表信息进行监控。
【专利说明】一种虚拟化环境中的进程信息监控系统及其方法
【技术领域】
[0001]本发明涉及到虚拟化环境中的虚拟机的进程信息监控,特别是涉及到虚拟机的活跃进程列表信息的轻量级监控。
【背景技术】
[0002]虚拟化技术产生于上世纪六十年代,IBM提出了虚拟化的概念,并把此技术应用于IBM的System/370系统。到目前为止,虚拟化技术已经被应用于很多行业和领域,并且在未来将有更广泛的使用。通过虚拟化技术,可以提高服务器的利用率,提高服务的稳定性和健壮性以及软件的可移植性,此外,虚拟化技术也由于其出色的隔离性为解决系统的安全问题提供了一种思路。
[0003]Xen是一种广泛使用的虚拟化软件,其主要部件为虚拟机管理层(VirtualMachine Monitor,以下简称VMM)、包含管理工具的特权虚拟机DomainO (以下简称DomO),以及客户虚拟机(以下简称DomU),其中,VMM层运行在客户虚拟机和硬件之间,DomO与DomU都运行在VMM层之上,DomO的特殊之处在于,其具有管理其他DomU的管理工具,以及与VMM通信的接口,从而达到对Xen虚拟环境进行控制的目的。DomO端还包括接收DomU硬件访问信息的接口,称为后端驱动,后端驱动能够接收同一物理机上所有的DomU的硬件请求,并通过访问真实设备驱动来对这些请求进行统一处理。
[0004]Xen最初的设计仅支持半虚拟化架构的客户虚拟机,这要求客户虚拟机需要安装能够与DomO的后端驱动通信的前端设备驱动,因此,这就需要对客户虚拟机进行修改,这就导致前期Xen只能支持安装有Linux操作系统的客户虚拟机,而随着Intel与AMD等CPU厂商提出了硬件的虚拟化技术,目前Xen已经能够支持无修改的Windows与Linux操作系统,利用硬件进行虚拟化的客户虚拟机成为硬件虚拟机(Hardware-based VirtualMachine,以下简称 HVM)。
[0005]进程是操作系统的主要组成部分之一,是操作系统内部运行实例的主要表现形式。活跃进程列表信息是安全防护以及系统行为分析需要获取的重要信息,其重要意义在于,可以从该列表中查看是否有未知的程序正在运行,这也是实时杀毒软件查杀病毒的主要方式。然而,当前恶意软件的实现技术越来越偏向于系统底层,其可以通过载入特定的驱动模块来达到将其自身的进程以及程序文件进行隐藏的目的,从而达到蒙蔽杀毒软件的目的。
[0006]虚拟化技术能够用来解决该问题。由于VMM层运行在客户虚拟机的外部,因此可以获取到客户虚拟机内部运行中的进程的真实列表信息,名称为“In Proceedings ofthe23rd Annual Computer Security Applications Conference (第 23 届计算机安全应用会议)”中公开了一篇名称为“Secure and Flexible Monitoring of Virtual Machines(安全灵活的虚拟机监控技术)”的文献,作者为:Bryan D.Payne Martim D.P.de A.CarboneWenke Lee,
【公开日】为:2007年8月23日,其中提到一种利用Xen提供的接口在DomO中建立一套监控DomU的内存及磁盘信息的方法,该部分在原文中的阐述为“虚拟内存监控需要接触到另一台VM的内存,Xen提供了 XC Library库来完成该操作,为了调用该库,XenAccess需要进行一些内存地址的转换工作,将需要监控的内核符号或虚拟地址转换为伪物理地址。”通过利用该方法可以获取到被监控虚拟机的内存信息,由于进程信息是驻留在内存中的,因此,可以通过收集到的内存信息来重构出被监控虚拟机的进程信息,以及其进程列表信息,这也是当前通用的进程信息获取方案。然而,该方法的问题在于,进程信息的获取操作需要大量的地址映射操作,即进程的虚拟地址与内存物理地址之间需要进行地址映射,是一种开销很大的进程信息获取方式,很不适用于当前的监控环境的需求。然而,使用该方法仅能按照内存的粒度获取信息,要获取进程信息还需要通过客户机提供的系统信息进行解析操作。
[0007]名称为“In Proceedings of the Conference on Computer and CommunicationsSecurity (计算机与通信安全会议)”中公开了一篇名称为“Process Out-Grafting: AnEfficient “Out-of-VM,,Approach for Fine-Grained Process Execution Monitoring.(程序外部迁移:一种有效的虚拟机外部细粒度程序执行监控方法)”的文献,作者为:De印aSrinivasan, Zhi Wang, Xuxian Jiang, Dongyan Xu.
【公开日】为 2011 年9 月 8 日。该文献通过虚拟化技术来获取进程的信息,该方法也是基于文献1中的方法,进程的地址翻译操作需要访问系统的页表,需要进行大量的内存翻译操作,存在性能上的问题。该部分在原文中的阐述为“为了确定其内存页框号,我们需要遍历Guest OS的页表来确定该用户进程的虚拟内存对应的客户物理地址页框号”。本发明是在DomO上实现的针对32位Windows以及Linux客户虚拟机的轻量级进程列表信息获取方法,这里轻量级的定义为,该方法大大降低了监控过程中的地址翻译操作的复杂度,从而确保该方法在运行时不会对系统带来明显的性能开销。该方法通过减少查找进程在内存中的真实物理地址的大量映射过程,达到获取进程列表信息的目的,该方法同样可以使用在获取特定进程信息的环境。
[0008]在名称为“计算机应用,2010年5月”的期刊中公开了一篇名称为“基于虚拟机技术的进程分析方法”的文献,作者为:高勇,范明钰;在美国马里兰大学硕士毕业论文中2002 年公开了一篇名称为 “Detecting compromises of core subsystems and kernelfunctions in windows NT/2000/XP (在 WindowsNT/2000/XP 系统中检测核心子系统和内核函数的恶意性)”中公开的遍历EPR0CESS结构体双向链表的技术,原始的遍历方案每次获取到下一个进程的起始虚拟地址后,需要再次进行一次虚拟内存到物理内存的转换才能获得下一个进程的结构体,这样会大大增加程序的复杂性,本发明通过一步直接映射来解决该问题,从而降低程序的复杂度,达到轻量级监控的目的;此外,本发明使用的是Xen虚拟机技术,与公开的VMware虚拟化技术以及该系统内部实现在原理上有很大不同,更适用于大型系统中的实时监控场景。

【发明内容】

[0009]本发明所要解决的技术问题在于提供一种虚拟化环境下的进程列表信息监控系统及其方法,用于通过对多个客户虚拟机的进程信息的监控,解决现有技术中的监控工具及杀毒软件的运行开销大的问题。
[0010]为实现上述目的,本发明提供一种虚拟化环境下的进程列表信息监控系统,其特征在于,所述进程列表信息监控系统部署在特权虚拟机中,对多个客户虚拟机的进程列表信息进行监控,所述进程列表信息监控系统包括:
[0011]用户输入模块:用于由用户提供被监控的所述客户虚拟机的ID和操作系统类型;
[0012]初始化模块:用于保存偏移量和起始进程结构的虚拟地址;
[0013]列表信息监测模块:用于对多个所述客户虚拟机的进程列表信息进行监控。
[0014]上述进程列表信息监控系统,其特征在于,所述列表信息监测模块包括:
[0015]起始进程模块:用于提取起始进程结构信息,标识所述起始进程结构的虚拟地址为链表头部;
[0016]后续进程模块:用于从所述链表头部的后续进程结构开始,依次进行所述后续进程结构信息提取,直至所述进程列表信息提取完毕。
[0017]上述进程列表信息监控系统,其特征在于,所述起始进程模块包括:
[0018]起始进程地址计算模块:用于提取位于内核地址空间的所述起始进程结构的虚拟地址,根据物理地址和所述虚拟地址的对应关系,计算所述起始进程结构的物理地址;
[0019]起始地址映射模块:用于通过所述起始进程结构的物理地址,使用地址映射函数获取所述起始进程结构;
[0020]起始进程信息提取模块:用于根据保存的所述偏移量,提取所述起始进程结构内信息,作为监控所需的所述进程列表信息,并记录所述后续进程结构的虚拟地址;
[0021]链表头部标识模块:用于标识所述起始进程结构的虚拟地址为所述链表头部。
[0022]上述进程列表信息监控系统,其特征在于,所述后续进程模块包括:
[0023]后续进程地址计算模块:用于根据记录的所述后续进程结构的虚拟地址,通过所述后续进程结构的物理地址和虚拟地址的映射关系,计算所述后续进程结构的物理地址;
[0024]后续地址映射模块:用于通过所述后续进程结构的物理地址,使用地址映射函数获取所述后续进程结构;
[0025]后续进程信息提取模块:用于根据保存的所述偏移量,提取所述后续进程结构内信息,作为监控所需的所述进程列表信息,并记录下一个所述后续进程结构的虚拟地址;
[0026]进程头部判断模块:用于判断下一个所述后续进程结构地址是否为所述链表头部,如果为所述链表头部,提取所述进程列表信息结束,否则进入所述后续进程地址计算模块,继续进行所述进程列表信息提取。
[0027]上述进程列表信息监控系统,其特征在于,所述起始进程结构内信息包括:起始进程号,起始进程命令和所述起始进程结构的虚拟地址;所述后续进程结构内信息包括:后续进程号,后续进程命令和所述后续进程结构的虚拟地址。
[0028]上述进程列表信息监控系统,其特征在于,所述起始进程结构和所述后续进程结构形成一个双向链表结构。
[0029]上述进程列表信息监控系统,其特征在于,所述物理地址由所述虚拟地址减去一个固定地址值获得。
[0030]本发明提供一种虚拟化环境下的进程列表信息监控方法,适用于虚拟化环境下的进程列表信息监控系统,所述进程列表信息监控系统部署在特权虚拟机中,对多个客户虚拟机的进程列表信息进行监控,所述进程列表信息监控方法包括:
[0031]用户输入步骤:用于由用户提供被监控的所述客户虚拟机的ID和操作系统类型;
[0032]初始化步骤:用于保存偏移量和起始进程结构的虚拟地址;[0033]列表信息监测步骤:用于对多个所述客户虚拟机的进程列表信息进行监控。
[0034]上述进程列表信息监控方法,其特征在于,所述列表信息监测步骤包括:
[0035]起始进程步骤:用于提取起始进程结构信息,标识所述起始进程结构的虚拟地址为链表头部;
[0036]后续进程步骤:用于从所述链表头部的后续进程结构开始,依次进行所述后续进程结构信息提取,直至所述进程列表信息提取完毕。
[0037]上述进程列表信息监控方法,其特征在于,所述起始进程步骤包括:
[0038]起始进程地址计算步骤:用于提取位于内核地址空间的所述起始进程结构的虚拟地址,根据物理地址和所述虚拟地址的对应关系,计算所述起始进程结构的物理地址;
[0039]起始地址映射步骤:用于通过所述起始进程结构的物理地址,使用地址映射函数获取所述起始进程结构;
[0040]起始进程信息提取步骤:用于根据保存的所述偏移量,提取所述起始进程结构内信息,作为监控所需的所述进程列表信息,并记录所述后续进程结构的虚拟地址;
[0041]链表头部标识步骤:用于标识所述起始进程结构的虚拟地址为所述链表头部。
[0042]上述进程列表信息监控方法,其特征在于,所述后续进程步骤包括:
[0043]后续进程地址计算步骤:用于根据记录的所述后续进程结构的虚拟地址,通过所述后续进程结构的物理地址和虚拟地址的映射关系,计算所述后续进程结构的物理地址;
[0044]后续地址映射步骤:用于通过所述后续进程结构的物理地址,使用地址映射函数获取所述后续进程结构;
[0045]后续进程信息提取步骤:用于根据保存的所述偏移量,提取所述后续进程结构内信息,作为监控所需的所述进程列表信息,并记录下一个所述后续进程结构的虚拟地址;
[0046]进程头部判断步骤:用于判断下一个所述后续进程结构地址是否为所述链表头部,如果为所述链表头部,提取所述进程列表信息结束,否则进入所述后续进程地址计算模块,继续进行所述进程列表信息提取。
[0047]上述进程列表信息监控方法,其特征在于,所述起始进程结构内信息包括:起始进程号,起始进程命令和所述起始进程结构的虚拟地址;所述后续进程结构内信息包括:后续进程号,后续进程命令和所述后续进程结构的虚拟地址。
[0048]上述进程列表信息监控方法,其特征在于,所述起始进程结构和所述后续进程结构形成一个双向链表结构。
[0049]上述进程列表信息监控方法,其特征在于,所述物理地址由所述虚拟地址减去一个固定地址值获得。
[0050]与现有技术相比,本发明的有益效果在于,可以通过提供的客户虚拟机的操作系统的偏移信息来获取到客户虚拟机中当前运行的进程列表,列表信息获取过程分为获取每个进程信息的子步骤,每个进程信息获取子步骤仅需要一次地址映射,将能够为当前的虚拟化进程监控提供一种低开销高实时性的解决方案,为减少当前杀毒软件以及监控工具的运行开销提供一种有效的解决方法。
【专利附图】

【附图说明】
[0051]图1为虚拟化环境下进程列表信息监控系统的概要示意图;[0052]图2为虚拟化环境下进程列表信息监控系统的列表信息监测模块的详细示意图;
[0053]图3为虚拟化环境下进程列表信息监控方法概要流程图;
[0054]图4为虚拟化环境下进程列表信息监控方法详细流程图;
[0055]图5为Linux进程组织结构图;
[0056]图6为Windows进程组织结构图。
[0057]其中,附图标记:
[0058]1进程列表信息监控系统
[0059]2用户输入模块3初始化模块
[0060]4列表信息监测模块
[0061]41起始进程模块42后续进程模块
[0062]411起始进程地址计算模块412起始地址映射模块
[0063]413起始进程信息提取模块414链表头部标识模块
[0064]421后续进程地址计算模块422后续地址映射模块
[0065]423后续进程信息提取模块424进程头部判断模块
【具体实施方式】
[0066]以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
[0067]本发明所要解决的技术问题是提供一种虚拟化环境中的轻量级的获取客户虚拟机的进程列表信息的系统及其方法。
[0068]本较佳实施例为采用安装有32位的Linux操作系统或32位的Windows操作系统的客户虚拟机。客户虚拟机可以为HVM虚拟机或者半虚拟化虚拟机,其安装的操作系统可以使32位的Windows系统以及Linux系统,但本发明并不限于此,任何熟悉本领域的技术人员,可根据需要进行相应的改变和变形。
[0069]本发明需要使用Xen为DomO提供的管理工具、内存映射工具,针对被监控客户虚拟机上的操作系统的进程结构的一些偏移信息,以及客户虚拟机的操作系统的起始进程的地址信息。偏移量信息包括:进程号(以下简称PID)针对进程结构起始地址的偏移量、进程命令行针对进程结构起始地址的偏移量、下一进程地址针对进程结构起始地址的偏移量。起始进程的虚拟地址信 息则可以通过系统对应文档得到,在Linux操作系统中,该信息可以从内核包含的System, map中得到,而在Windows系统中,可以通过Windbg工具获取起始进程的地址。
[0070]如图1所示,进程列表信息监控系统1部署在DomO上,对各个DomU的进程列表信息进行监控;进程列表信息监控系统1包括:用户输入模块2、初始化模块3、列表信息监测模块4 ;用户输入模块2用于由用户提供被监控的DomU ID和操作系统类型;初始化模块3用于保存偏移量和起始进程结构的虚拟地址;列表信息监测模块4用于对多个DomU的进程列表信息进行监控。
[0071]如图1所示,列表信息监测模块4包括:起始进程模块41、后续进程模块42 ;起始进程模块41用于提取起始进程结构信息,标识起始进程结构的虚拟地址为链表头部;后续进程模块42用于从链表头部的后续进程结构开始,依次进行后续进程结构信息提取,直至进程列表信息提取完毕。[0072]如图2所示,起始进程模块41包括:起始进程地址计算模块411、起始地址映射模块412、起始进程信息提取模块413、链表头部标识模块414 ;起始进程地址计算模块411用于提取位于内核地址空间的起始进程结构的虚拟地址,根据物理地址和虚拟地址的对应关系,计算起始进程结构的物理地址;起始地址映射模块412用于通过起始进程结构的物理地址,使用地址映射函数获取所述起始进程结构;起始进程信息提取模块413用于根据保存的偏移量,提取起始进程结构内信息,作为监控所需的进程列表信息,并记录后续进程结构的虚拟地址;链表头部标识模块414用于标识起始进程结构的虚拟地址为链表头部。
[0073]如图3所示,后续进程模块42包括:后续进程地址计算模块421、后续地址映射模块422、后续进程信息提取模块423、进程头部判断模块424 ;后续进程地址计算模块421用于根据记录的后续进程结构的虚拟地址,通过后续进程结构的物理地址和虚拟地址的映射关系,计算后续进程结构的物理地址;后续地址映射模块422用于通过后续进程结构的物理地址,使用地址映射函数获取后续进程结构;后续进程信息提取模块423用于根据保存的偏移量,提取后续进程结构内信息,作为监控所需的进程列表信息,并记录下一个后续进程结构的虚拟地址;进程头部判断模块424用于判断下一个后续进程结构地址是否为链表头部,如果为链表头部,提取进程列表信息结束,否则进入所述后续进程地址计算模块,继续进行所述进程列表信息提取。
[0074]本发明提供了一种进程列表信息监控方法,如图3所示,步骤如下:
[0075]S1:由用户提供被监控的DomU的ID和操作系统类型;用户需要操作系统类别编号(Linux为O, Windows为I),在Xen架构中,不同的DomU以id号进行区分,如果需要同时监控多个DomU,系统将按照提交顺序串行执行该过程。
[0076]S2:保存偏移量和起始进程结构的虚拟地址;
[0077]S3:对多个DomU进程列表信息进行监控。
[0078]如图4所示,进程列表信息监控方法,其中对多个DomU进程列表信息进行监控S3的详细步骤如下:
[0079]S31:提取位于内核地址空间的起始进程结构的虚拟地址,根据物理地址和虚拟地址的对应关系,计算起始进程结构的物理地址;
[0080]S32:通过起始进程结构的物理地址,使用地址映射函数获取起始进程结构;
[0081]S33:根据保存的偏移量,提取起始进程结构内信息,作为监控所需的进程列表信息,并记录后续进程结构的虚拟地址;
[0082]S34:标识起始进程结构的虚拟地址为链表头部。
[0083]S35:根据记录的后续进程结构的虚拟地址,通过后续进程结构的物理地址和虚拟地址的映射关系,计算后续进程结构的物理地址;
[0084]S36:通过后续进程结构的物理地址,使用地址映射函数获取后续进程结构;
[0085]S37:根据保存的偏移量,提取后续进程结构内信息,作为监控所需的进程列表信息,并记录下一个后续进程结构的虚拟地址。
[0086]S38:判断下一个后续进程结构地址是否为链表头部,如果为链表头部,提取进程列表信息结束,否则进入后续进程地址计算模块,继续进行进程列表信息提取。
[0087]本发明的一具体实施例,当DomU的操作系统为Linux操作系统时,步骤如下:
[0088]Al:用户提供要监控的DomU的id号以及包含有该Linux系统的进程各变量偏移量及起始进程虚拟地址信息的文件位置
[0089]A2:进行初始化操作,记录进程各变量偏移量及起始进程地址信息
[0090]A3:如图5所示,Linux中的进程组织是使用一个双向链表结构,其中,下一进程指向下一个进程的链表结构,上一进程指向上一个进程的链表结构,起始进程的结构也是其中的一个结构,而能够从Linux的配置文件提取的起始进程结构地址信息是该进程结构的虚拟地址,该进程结构是位于Linux的内核地址空间中,根据Linux的地址映射规则,内核虚拟地址到物理地址存在简单的映射关系,即一个内核虚拟地址减去OxCOOOOOOO所得到的值就是该地址对应的物理地址,因此,这一步可以化简为简单的减法操作,获得起始进程结构的物理地址。
[0091]A4:使用Xen提供的物理内存映射函数,将起始进程的结构映射到DomO的地址空间中,由于起始进程是第一个进程,因此,需要将该进程的链表结构的虚拟地址标识为链表头部。
[0092]A5:利用记录的PID、进程命令行、下一进程地址这几个变量的偏移量,读取出起始进程的PID、进程命令行信息,以及下一进程地址信息,将起始进程的PID和进程命令行信息进行输出,作为进程列表的第一个进程信息,将下一进程的地址信息进行记录,
[0093]A6:由于下一进程的地址信息也是下一个进程结构的链表虚拟地址,而该虚拟地址也是位于内核地址空间,因此,这一步的物理地址获取同样可以使用A3的减法操作获得,再次利用Xen提供的物理内存映射函数,将下一个进程的结构映射到DomO的地址空间中。
[0094]A7:如果该进程的链表结构地址等于记录的链表头部,则说明已经循环回到起始进程的结构,表明已经将所有当前运行的进程信息获取到了,退出
[0095]AS:如果该进程的链表结构地址不等于记录的链表头部,重复A5操作,不同的是,输出的是当前映射的进程的PID和进程命令行信息,而不是起始进程的相关信息。
[0096]本发明的另一具体实施例,当DomU为32位的Windows操作系统时,该场景的步骤如下:
[0097]B1:用户提供要监控的DomU的id号以及包含有该Windows系统的进程各变量偏移量及起始进程虚拟地址信息的文件位置
[0098]B2:进行初始化操作,记录进程各变量偏移量及起始进程虚拟地址信息
[0099]B3:如图6所示,Windows的起始进程是一个内核线程,结构是KThread,而其他进程的结构为EProcess,保存的链表结构为List_entry,下一进程的指针为Flink,上一进程的指针为Blink。不同于Linux系统,Windows操作系统的链表结构的起始进程不存在于其他进程的双向链表结构中,因此,链表头部不能标记为起始进程的链表结构,而应该标记为起始进程KThread所指向的第一个普通进程EProcess。Windows的进程结构同样位于内核地址空间中。根据Windows的地址空间结构,0x80000000以上是内核地址空间,当内核地址为0x80000000到0x80fffffff时,物理地址等于虚拟地址减去0x80000000 ;当内核地址大于0x81000000时,物理地址等于虚拟地址减去0x7c000000,因此,同样可以不需要进行地址映射通过简单操作得到进程结构的物理地址。
[0100]B4:使用Xen提供的物理内存映射函数,将起始进程的结构映射到DomO的地址空间中。利用记录的进程号、进程命令行、下一进程地址这几个变量的偏移量,读取出起始进程的PID、进程命令行信息,以及第一个普通进程的地址信息,将起始进程的PID和进程命令行信息进行输出,作为进程列表的第一个进程信息,将下一进程的地址信息进行记录。
[0101]B5:将第一个普通进程的链表结构的虚拟地址标识为链表头部。
[0102]B6:利用该进程的链表结构的虚拟地址,使用B3描述的减法操作获取其进程结构的物理地址,使用物理地址映射函数将该结构内容所在页映射到DomO的地址空间。
[0103]B7:利用PID、进程命令行、下一进程地址这几个变量的偏移量,读取出该进程的PID、进程命令行信息,以及下一进程地址信息,输出该进程的PID与进程命令行。
[0104]B8:如果该进程的链表结构地址等于记录的链表头部,则说明已经循环回到起始进程的结构,表明已经将所有当前运行的进程信息获取到了,退出。
[0105]B8:如果该进程的链表结构地址不等于记录的链表头部,跳到B6继续执行。
[0106]当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
【权利要求】
1.一种虚拟化环境下的进程列表信息监控系统,其特征在于,所述进程列表信息监控系统部署在特权虚拟机中,对多个客户虚拟机的进程列表信息进行监控,所述进程列表信息监控系统包括:用户输入模块:用于由用户提供被监控的所述客户虚拟机的ID和操作系统类型;初始化模块:用于保存偏移量和起始进程结构的虚拟地址;列表信息监测模块:用于对多个所述客户虚拟机的进程列表信息进行监控。
2.根据权利要求1所述进程列表信息监控系统,其特征在于,所述列表信息监测模块包括:起始进程模块:用于提取起始进程结构信息,标识所述起始进程结构的虚拟地址为链表头部;后续进程模块:用于从所述链表头部的后续进程结构开始,依次进行所述后续进程结构信息提取,直至所述进程列表信息提取完毕。
3.根据权利要求1所述进程列表信息监控系统,其特征在于,所述起始进程模块包括:起始进程地址计算模块:用于提取位于内核地址空间的所述起始进程结构的虚拟地址,根据物理地址和所 述虚拟地址的对应关系,计算所述起始进程结构的物理地址;起始地址映射模块:用于通过所述起始进程结构的物理地址,使用地址映射函数获取所述起始进程结构;起始进程信息提取模块:用于根据保存的所述偏移量,提取所述起始进程结构内信息,作为监控所需的所述进程列表信息,并记录所述后续进程结构的虚拟地址;链表头部标识模块:用于标识所述起始进程结构的虚拟地址为所述链表头部。
4.根据权利要求1所述进程列表信息监控系统,其特征在于,所述后续进程模块包括:后续进程地址计算模块:用于根据记录的所述后续进程结构的虚拟地址,通过所述后续进程结构的物理地址和虚拟地址的映射关系,计算所述后续进程结构的物理地址;后续地址映射模块:用于通过所述后续进程结构的物理地址,使用地址映射函数获取所述后续进程结构;后续进程信息提取模块:用于根据保存的所述偏移量,提取所述后续进程结构内信息,作为监控所需的所述进程列表信息,并记录下一个所述后续进程结构的虚拟地址;进程头部判断模块:用于判断下一个所述后续进程结构地址是否为所述链表头部,如果为所述链表头部,提取所述进程列表信息结束,否则进入所述后续进程地址计算模块,继续进行所述进程列表信息提取。
5.根据权利要求2所述进程列表信息监控系统,其特征在于,所述起始进程结构内信息包括:起始进程号,起始进程命令和所述起始进程结构的虚拟地址;所述后续进程结构内信息包括:后续进程号,后续进程命令和所述后续进程结构的虚拟地址。
6.根据权利要求2所述进程列表信息监控系统,其特征在于,所述起始进程结构和所述后续进程结构形成一个双向链表结构。
7.根据权利要求1所述进程列表信息监控系统,其特征在于,所述物理地址由所述虚拟地址减去一个固定地址值获得。
8.—种虚拟化环境下的进程列表信息监控方法,适用于虚拟化环境下的进程列表信息监控系统,所述进程列表信息监控系统部署在特权虚拟机中,对多个客户虚拟机的进程列表信息进行监控,所述进程列表信息监控方法包括: 用户输入步骤:用于由用户提供被监控的所述客户虚拟机的ID和操作系统类型; 初始化步骤:用于保存偏移量和起始进程结构的虚拟地址; 列表信息监测步骤:用于对多个所述客户虚拟机的进程列表信息进行监控。
9.根据权利要求8所述进程列表信息监控方法,其特征在于,所述列表信息监测步骤包括: 起始进程步骤:用于提取起始进程结构信息,标识所述起始进程结构的虚拟地址为链表头部; 后续进程步骤:用于从所述链表头部的后续进程结构开始,依次进行所述后续进程结构信息提取,直至所述进程列表信息提取完毕。
10.根据权利要求8所述进程列表信息监控方法,其特征在于,所述起始进程步骤包括: 起始进程地址计算步骤:用于提取位于内核地址空间的所述起始进程结构的虚拟地址,根据物理地址和所述虚拟地址的对应关系,计算所述起始进程结构的物理地址; 起始地址映射步骤:用于通过所述起始进程结构的物理地址,使用地址映射函数获取所述起始进程结构; 起始进程信息提取步骤:用于根据保存的所述偏移量,提取所述起始进程结构内信息,作为监控所需的所述进程列表信息,并记录所述后续进程结构的虚拟地址; 链表头部标识步骤:用于标识所述起始进程结构的虚拟地址为所述链表头部。
11.根据权利要求8所述进程列表信息监控方法,其特征在于,所述后续进程步骤包括: 后续进程地址计算步骤:用于根据记录的所述后续进程结构的虚拟地址,通过所述后续进程结构的物理地址和虚拟地址的映射关系,计算所述后续进程结构的物理地址; 后续地址映射步骤:用于通过所述后续进程结构的物理地址,使用地址映射函数获取所述后续进程结构; 后续进程信息提取步骤:用于根据保存的所述偏移量,提取所述后续进程结构内信息,作为监控所需的所述进程列表信息,并记录下一个所述后续进程结构的虚拟地址; 进程头部判断步骤:用于判断下一个所述后续进程结构地址是否为所述链表头部,如果为所述链表头部,提取所述进程列表信息结束,否则进入所述后续进程地址计算模块,继续进行所述进程列表信息提取。
12.根据权利要求9所述进程列表信息监控方法,其特征在于,所述起始进程结构内信息包括:起始进程号,起始进程命令和所述起始进程结构的虚拟地址;所述后续进程结构内信息包括:后续进程号,后续进程命令和所述后续进程结构的虚拟地址。
13.根据权利要求9所述进程列表信息监控方法,其特征在于,所述起始进程结构和所述后续进程结构形成一个双向链表结构。
14.根据权利要求8所述进程列表信息监控方法,其特征在于,所述物理地址由所述虚拟地址减去一个固定地址值获得。
【文档编号】G06F17/30GK103744851SQ201310511926
【公开日】2014年4月23日 申请日期:2013年10月25日 优先权日:2013年10月25日
【发明者】田昕晖, 孙毓忠, 潘涛 申请人:中国科学院计算技术研究所, 神华和利时信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1