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

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

Info

Publication number
CN103744851B
CN103744851B CN201310511926.2A CN201310511926A CN103744851B CN 103744851 B CN103744851 B CN 103744851B CN 201310511926 A CN201310511926 A CN 201310511926A CN 103744851 B CN103744851 B CN 103744851B
Authority
CN
China
Prior art keywords
address
originating
processes
subsequent processes
list information
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
Application number
CN201310511926.2A
Other languages
English (en)
Other versions
CN103744851A (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.)
Institute of Computing Technology of CAS
Shenhua Hollysys Information Technology Co Ltd
Original Assignee
Institute of Computing Technology of CAS
Shenhua Hollysys Information Technology 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 Institute of Computing Technology of CAS, Shenhua Hollysys Information Technology Co Ltd filed Critical Institute of Computing Technology of CAS
Priority to CN201310511926.2A priority Critical patent/CN103744851B/zh
Publication of CN103744851A publication Critical patent/CN103744851A/zh
Application granted granted Critical
Publication of CN103744851B publication Critical patent/CN103744851B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)

Abstract

本发明公开了一种虚拟化环境下的进程列表信息监控系统及其方法,该进程列表信息监控系统部署在特权虚拟机中,对多个客户虚拟机的进程列表信息进行监控,该进程列表信息监控系统包括:用户输入模块、初始化模块、初始化模块;列表信息监测模块用于由用户提供被监控的客户虚拟机的ID和操作系统类型;初始化模块用于保存偏移量和起始进程结构的虚拟地址;列表信息监测模块用于对多个客户虚拟机的进程列表信息进行监控。

Description

一种虚拟化环境中的进程信息监控系统及其方法
技术领域
本发明涉及到虚拟化环境中的虚拟机的进程信息监控,特别是涉及到虚拟机的活跃进程列表信息的轻量级监控。
背景技术
虚拟化技术产生于上世纪六十年代,IBM提出了虚拟化的概念,并把此技术应用于IBM的System/370系统。到目前为止,虚拟化技术已经被应用于很多行业和领域,并且在未来将有更广泛的使用。通过虚拟化技术,可以提高服务器的利用率,提高服务的稳定性和健壮性以及软件的可移植性,此外,虚拟化技术也由于其出色的隔离性为解决系统的安全问题提供了一种思路。
Xen是一种广泛使用的虚拟化软件,其主要部件为虚拟机管理层(VirtualMachine Monitor,以下简称VMM)、包含管理工具的特权虚拟机Domain0(以下简称Dom0),以及客户虚拟机(以下简称DomU),其中,VMM层运行在客户虚拟机和硬件之间,Dom0与DomU都运行在VMM层之上,Dom0的特殊之处在于,其具有管理其他DomU的管理工具,以及与VMM通信的接口,从而达到对Xen虚拟环境进行控制的目的。Dom0端还包括接收DomU硬件访问信息的接口,称为后端驱动,后端驱动能够接收同一物理机上所有的DomU的硬件请求,并通过访问真实设备驱动来对这些请求进行统一处理。
Xen最初的设计仅支持半虚拟化架构的客户虚拟机,这要求客户虚拟机需要安装能够与Dom0的后端驱动通信的前端设备驱动,因此,这就需要对客户虚拟机进行修改,这就导致前期Xen只能支持安装有Linux操作系统的客户虚拟机,而随着Intel与AMD等CPU厂商提出了硬件的虚拟化技术,目前Xen已经能够支持无修改的Windows与Linux操作系统,利用硬件进行虚拟化的客户虚拟机成为硬件虚拟机(Hardware-based Virtual Machine,以下简称HVM)。
进程是操作系统的主要组成部分之一,是操作系统内部运行实例的主要表现形式。活跃进程列表信息是安全防护以及系统行为分析需要获取的重要信息,其重要意义在于,可以从该列表中查看是否有未知的程序正在运行,这也是实时杀毒软件查杀病毒的主要方式。然而,当前恶意软件的实现技术越来越偏向于系统底层,其可以通过载入特定的驱动模块来达到将其自身的进程以及程序文件进行隐藏的目的,从而达到蒙蔽杀毒软件的目的。
虚拟化技术能够用来解决该问题。由于VMM层运行在客户虚拟机的外部,因此可以获取到客户虚拟机内部运行中的进程的真实列表信息,名称为“In Proceedings ofthe23rd Annual Computer Security Applications Conference(第23届计算机安全应用会议)”中公开了一篇名称为“Secure and Flexible Monitoring of Virtual Machines(安全灵活的虚拟机监控技术)”的文献,作者为:Bryan D.Payne Martim D.P.deA.Carbone Wenke Lee,公开日为:2007年8月23日,其中提到一种利用Xen提供的接口在Dom0中建立一套监控DomU的内存及磁盘信息的方法,该部分在原文中的阐述为“虚拟内存监控需要接触到另一台VM的内存,Xen提供了XC Library库来完成该操作,为了调用该库,XenAccess需要进行一些内存地址的转换工作,将需要监控的内核符号或虚拟地址转换为伪物理地址。”通过利用该方法可以获取到被监控虚拟机的内存信息,由于进程信息是驻留在内存中的,因此,可以通过收集到的内存信息来重构出被监控虚拟机的进程信息,以及其进程列表信息,这也是当前通用的进程信息获取方案。然而,该方法的问题在于,进程信息的获取操作需要大量的地址映射操作,即进程的虚拟地址与内存物理地址之间需要进行地址映射,是一种开销很大的进程信息获取方式,很不适用于当前的监控环境的需求。然而,使用该方法仅能按照内存的粒度获取信息,要获取进程信息还需要通过客户机提供的系统信息进行解析操作。
名称为“In Proceedings of the Conference on Computer andCommunications Security(计算机与通信安全会议)”中公开了一篇名称为“Process Out-Grafting:An Efficient“Out-of-VM”Approach for Fine-Grained Process ExecutionMonitoring.(程序外部迁移:一种有效的虚拟机外部细粒度程序执行监控方法)”的文献,作者为:Deepa Srinivasan,Zhi Wang,Xuxian Jiang,Dongyan Xu.公开日为2011年9月8日。该文献通过虚拟化技术来获取进程的信息,该方法也是基于文献1中的方法,进程的地址翻译操作需要访问系统的页表,需要进行大量的内存翻译操作,存在性能上的问题。该部分在原文中的阐述为“为了确定其内存页框号,我们需要遍历Guest OS的页表来确定该用户进程的虚拟内存对应的客户物理地址页框号”。本发明是在Dom0上实现的针对32位Windows以及Linux客户虚拟机的轻量级进程列表信息获取方法,这里轻量级的定义为,该方法大大降低了监控过程中的地址翻译操作的复杂度,从而确保该方法在运行时不会对系统带来明显的性能开销。该方法通过减少查找进程在内存中的真实物理地址的大量映射过程,达到获取进程列表信息的目的,该方法同样可以使用在获取特定进程信息的环境。
在名称为“计算机应用,2010年5月”的期刊中公开了一篇名称为“基于虚拟机技术的进程分析方法”的文献,作者为:高勇,范明钰;在美国马里兰大学硕士毕业论文中2002年公开了一篇名称为“Detecting compromises of core subsystems and kernelfunctions in windows NT/2000/XP(在WindowsNT/2000/XP系统中检测核心子系统和内核函数的恶意性)”中公开的遍历EPROCESS结构体双向链表的技术,原始的遍历方案每次获取到下一个进程的起始虚拟地址后,需要再次进行一次虚拟内存到物理内存的转换才能获得下一个进程的结构体,这样会大大增加程序的复杂性,本发明通过一步直接映射来解决该问题,从而降低程序的复杂度,达到轻量级监控的目的;此外,本发明使用的是Xen虚拟机技术,与公开的VMware虚拟化技术以及该系统内部实现在原理上有很大不同,更适用于大型系统中的实时监控场景。
发明内容
本发明所要解决的技术问题在于提供一种虚拟化环境下的进程列表信息监控系统及其方法,用于通过对多个客户虚拟机的进程信息的监控,解决现有技术中的监控工具及杀毒软件的运行开销大的问题。
为实现上述目的,本发明提供一种虚拟化环境下的进程列表信息监控系统,其特征在于,所述进程列表信息监控系统部署在特权虚拟机中,对多个客户虚拟机的进程列表信息进行监控,所述进程列表信息监控系统包括:
用户输入模块:用于由用户提供被监控的所述客户虚拟机的ID和操作系统类型;
初始化模块:用于保存偏移量和起始进程结构的虚拟地址;
列表信息监测模块:用于对多个所述客户虚拟机的进程列表信息进行监控。
上述进程列表信息监控系统,其特征在于,所述列表信息监测模块包括:
起始进程模块:用于提取起始进程结构信息,标识所述起始进程结构的虚拟地址为链表头部;
后续进程模块:用于从所述链表头部的后续进程结构开始,依次进行所述后续进程结构信息提取,直至所述进程列表信息提取完毕。
上述进程列表信息监控系统,其特征在于,所述起始进程模块包括:
起始进程地址计算模块:用于提取位于内核地址空间的所述起始进程结构的虚拟地址,根据物理地址和所述虚拟地址的对应关系,计算所述起始进程结构的物理地址;
起始地址映射模块:用于通过所述起始进程结构的物理地址,使用地址映射函数获取所述起始进程结构;
起始进程信息提取模块:用于根据保存的所述偏移量,提取所述起始进程结构内信息,作为监控所需的所述进程列表信息,并记录所述后续进程结构的虚拟地址;
链表头部标识模块:用于标识所述起始进程结构的虚拟地址为所述链表头部。
上述进程列表信息监控系统,其特征在于,所述后续进程模块包括:
后续进程地址计算模块:用于根据记录的所述后续进程结构的虚拟地址,通过所述后续进程结构的物理地址和虚拟地址的映射关系,计算所述后续进程结构的物理地址;
后续地址映射模块:用于通过所述后续进程结构的物理地址,使用地址映射函数获取所述后续进程结构;
后续进程信息提取模块:用于根据保存的所述偏移量,提取所述后续进程结构内信息,作为监控所需的所述进程列表信息,并记录下一个所述后续进程结构的虚拟地址;
进程头部判断模块:用于判断下一个所述后续进程结构地址是否为所述链表头部,如果为所述链表头部,提取所述进程列表信息结束,否则进入所述后续进程地址计算模块,继续进行所述进程列表信息提取。
上述进程列表信息监控系统,其特征在于,所述起始进程结构内信息包括:起始进程号,起始进程命令和所述起始进程结构的虚拟地址;所述后续进程结构内信息包括:后续进程号,后续进程命令和所述后续进程结构的虚拟地址。
上述进程列表信息监控系统,其特征在于,所述起始进程结构和所述后续进程结构形成一个双向链表结构。
上述进程列表信息监控系统,其特征在于,所述物理地址由所述虚拟地址减去一个固定地址值获得。
本发明提供一种虚拟化环境下的进程列表信息监控方法,适用于虚拟化环境下的进程列表信息监控系统,所述进程列表信息监控系统部署在特权虚拟机中,对多个客户虚拟机的进程列表信息进行监控,所述进程列表信息监控方法包括:
用户输入步骤:用于由用户提供被监控的所述客户虚拟机的ID和操作系统类型;
初始化步骤:用于保存偏移量和起始进程结构的虚拟地址;
列表信息监测步骤:用于对多个所述客户虚拟机的进程列表信息进行监控。
上述进程列表信息监控方法,其特征在于,所述列表信息监测步骤包括:
起始进程步骤:用于提取起始进程结构信息,标识所述起始进程结构的虚拟地址为链表头部;
后续进程步骤:用于从所述链表头部的后续进程结构开始,依次进行所述后续进程结构信息提取,直至所述进程列表信息提取完毕。
上述进程列表信息监控方法,其特征在于,所述起始进程步骤包括:
起始进程地址计算步骤:用于提取位于内核地址空间的所述起始进程结构的虚拟地址,根据物理地址和所述虚拟地址的对应关系,计算所述起始进程结构的物理地址;
起始地址映射步骤:用于通过所述起始进程结构的物理地址,使用地址映射函数获取所述起始进程结构;
起始进程信息提取步骤:用于根据保存的所述偏移量,提取所述起始进程结构内信息,作为监控所需的所述进程列表信息,并记录所述后续进程结构的虚拟地址;
链表头部标识步骤:用于标识所述起始进程结构的虚拟地址为所述链表头部。
上述进程列表信息监控方法,其特征在于,所述后续进程步骤包括:
后续进程地址计算步骤:用于根据记录的所述后续进程结构的虚拟地址,通过所述后续进程结构的物理地址和虚拟地址的映射关系,计算所述后续进程结构的物理地址;
后续地址映射步骤:用于通过所述后续进程结构的物理地址,使用地址映射函数获取所述后续进程结构;
后续进程信息提取步骤:用于根据保存的所述偏移量,提取所述后续进程结构内信息,作为监控所需的所述进程列表信息,并记录下一个所述后续进程结构的虚拟地址;
进程头部判断步骤:用于判断下一个所述后续进程结构地址是否为所述链表头部,如果为所述链表头部,提取所述进程列表信息结束,否则进入所述后续进程地址计算模块,继续进行所述进程列表信息提取。
上述进程列表信息监控方法,其特征在于,所述起始进程结构内信息包括:起始进程号,起始进程命令和所述起始进程结构的虚拟地址;所述后续进程结构内信息包括:后续进程号,后续进程命令和所述后续进程结构的虚拟地址。
上述进程列表信息监控方法,其特征在于,所述起始进程结构和所述后续进程结构形成一个双向链表结构。
上述进程列表信息监控方法,其特征在于,所述物理地址由所述虚拟地址减去一个固定地址值获得。
与现有技术相比,本发明的有益效果在于,可以通过提供的客户虚拟机的操作系统的偏移信息来获取到客户虚拟机中当前运行的进程列表,列表信息获取过程分为获取每个进程信息的子步骤,每个进程信息获取子步骤仅需要一次地址映射,将能够为当前的虚拟化进程监控提供一种低开销高实时性的解决方案,为减少当前杀毒软件以及监控工具的运行开销提供一种有效的解决方法。
附图说明
图1为虚拟化环境下进程列表信息监控系统的概要示意图;
图2为虚拟化环境下进程列表信息监控系统的列表信息监测模块的详细示意图;
图3为虚拟化环境下进程列表信息监控方法概要流程图;
图4为虚拟化环境下进程列表信息监控方法详细流程图;
图5为Linux进程组织结构图;
图6为Windows进程组织结构图。
其中,附图标记:
1 进程列表信息监控系统
2 用户输入模块 3 初始化模块
4 列表信息监测模块
41 起始进程模块 42 后续进程模块
411 起始进程地址计算模块 412 起始地址映射模块
413 起始进程信息提取模块 414 链表头部标识模块
421 后续进程地址计算模块 422 后续地址映射模块
423 后续进程信息提取模块 424 进程头部判断模块
具体实施方式
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
本发明所要解决的技术问题是提供一种虚拟化环境中的轻量级的获取客户虚拟机的进程列表信息的系统及其方法。
本较佳实施例为采用安装有32位的Linux操作系统或32位的Windows操作系统的客户虚拟机。客户虚拟机可以为HVM虚拟机或者半虚拟化虚拟机,其安装的操作系统可以使32位的Windows系统以及Linux系统,但本发明并不限于此,任何熟悉本领域的技术人员,可根据需要进行相应的改变和变形。
本发明需要使用Xen为Dom0提供的管理工具、内存映射工具,针对被监控客户虚拟机上的操作系统的进程结构的一些偏移信息,以及客户虚拟机的操作系统的起始进程的地址信息。偏移量信息包括:进程号(以下简称PID)针对进程结构起始地址的偏移量、进程命令行针对进程结构起始地址的偏移量、下一进程地址针对进程结构起始地址的偏移量。起始进程的虚拟地址信息则可以通过系统对应文档得到,在Linux操作系统中,该信息可以从内核包含的System.map中得到,而在Windows系统中,可以通过Windbg工具获取起始进程的地址。
如图1所示,进程列表信息监控系统1部署在Dom0上,对各个DomU的进程列表信息进行监控;进程列表信息监控系统1包括:用户输入模块2、初始化模块3、列表信息监测模块4;用户输入模块2用于由用户提供被监控的DomU ID和操作系统类型;初始化模块3用于保存偏移量和起始进程结构的虚拟地址;列表信息监测模块4用于对多个DomU的进程列表信息进行监控。
如图1所示,列表信息监测模块4包括:起始进程模块41、后续进程模块42;起始进程模块41用于提取起始进程结构信息,标识起始进程结构的虚拟地址为链表头部;后续进程模块42用于从链表头部的后续进程结构开始,依次进行后续进程结构信息提取,直至进程列表信息提取完毕。
如图2所示,起始进程模块41包括:起始进程地址计算模块411、起始地址映射模块412、起始进程信息提取模块413、链表头部标识模块414;起始进程地址计算模块411用于提取位于内核地址空间的起始进程结构的虚拟地址,根据物理地址和虚拟地址的对应关系,计算起始进程结构的物理地址;起始地址映射模块412用于通过起始进程结构的物理地址,使用地址映射函数获取所述起始进程结构;起始进程信息提取模块413用于根据保存的偏移量,提取起始进程结构内信息,作为监控所需的进程列表信息,并记录后续进程结构的虚拟地址;链表头部标识模块414用于标识起始进程结构的虚拟地址为链表头部。
如图3所示,后续进程模块42包括:后续进程地址计算模块421、后续地址映射模块422、后续进程信息提取模块423、进程头部判断模块424;后续进程地址计算模块421用于根据记录的后续进程结构的虚拟地址,通过后续进程结构的物理地址和虚拟地址的映射关系,计算后续进程结构的物理地址;后续地址映射模块422用于通过后续进程结构的物理地址,使用地址映射函数获取后续进程结构;后续进程信息提取模块423用于根据保存的偏移量,提取后续进程结构内信息,作为监控所需的进程列表信息,并记录下一个后续进程结构的虚拟地址;进程头部判断模块424用于判断下一个后续进程结构地址是否为链表头部,如果为链表头部,提取进程列表信息结束,否则进入所述后续进程地址计算模块,继续进行所述进程列表信息提取。
本发明提供了一种进程列表信息监控方法,如图3所示,步骤如下:
S1:由用户提供被监控的DomU的ID和操作系统类型;用户需要操作系统类别编号(Linux为0,Windows为1),在Xen架构中,不同的DomU以id号进行区分,如果需要同时监控多个DomU,系统将按照提交顺序串行执行该过程。
S2:保存偏移量和起始进程结构的虚拟地址;
S3:对多个DomU进程列表信息进行监控。
如图4所示,进程列表信息监控方法,其中对多个DomU进程列表信息进行监控S3的详细步骤如下:
S31:提取位于内核地址空间的起始进程结构的虚拟地址,根据物理地址和虚拟地址的对应关系,计算起始进程结构的物理地址;
S32:通过起始进程结构的物理地址,使用地址映射函数获取起始进程结构;
S33:根据保存的偏移量,提取起始进程结构内信息,作为监控所需的进程列表信息,并记录后续进程结构的虚拟地址;
S34:标识起始进程结构的虚拟地址为链表头部。
S35:根据记录的后续进程结构的虚拟地址,通过后续进程结构的物理地址和虚拟地址的映射关系,计算后续进程结构的物理地址;
S36:通过后续进程结构的物理地址,使用地址映射函数获取后续进程结构;
S37:根据保存的偏移量,提取后续进程结构内信息,作为监控所需的进程列表信息,并记录下一个后续进程结构的虚拟地址。
S38:判断下一个后续进程结构地址是否为链表头部,如果为链表头部,提取进程列表信息结束,否则进入后续进程地址计算模块,继续进行进程列表信息提取。
本发明的一具体实施例,当DomU的操作系统为Linux操作系统时,步骤如下:
A1:用户提供要监控的DomU的id号以及包含有该Linux系统的进程各变量偏移量及起始进程虚拟地址信息的文件位置
A2:进行初始化操作,记录进程各变量偏移量及起始进程地址信息
A3:如图5所示,Linux中的进程组织是使用一个双向链表结构,其中,下一进程指向下一个进程的链表结构,上一进程指向上一个进程的链表结构,起始进程的结构也是其中的一个结构,而能够从Linux的配置文件提取的起始进程结构地址信息是该进程结构的虚拟地址,该进程结构是位于Linux的内核地址空间中,根据Linux的地址映射规则,内核虚拟地址到物理地址存在简单的映射关系,即一个内核虚拟地址减去0xC0000000所得到的值就是该地址对应的物理地址,因此,这一步可以化简为简单的减法操作,获得起始进程结构的物理地址。
A4:使用Xen提供的物理内存映射函数,将起始进程的结构映射到Dom0的地址空间中,由于起始进程是第一个进程,因此,需要将该进程的链表结构的虚拟地址标识为链表头部。
A5:利用记录的PID、进程命令行、下一进程地址这几个变量的偏移量,读取出起始进程的PID、进程命令行信息,以及下一进程地址信息,将起始进程的PID和进程命令行信息进行输出,作为进程列表的第一个进程信息,将下一进程的地址信息进行记录,
A6:由于下一进程的地址信息也是下一个进程结构的链表虚拟地址,而该虚拟地址也是位于内核地址空间,因此,这一步的物理地址获取同样可以使用A3的减法操作获得,再次利用Xen提供的物理内存映射函数,将下一个进程的结构映射到Dom0的地址空间中。
A7:如果该进程的链表结构地址等于记录的链表头部,则说明已经循环回到起始进程的结构,表明已经将所有当前运行的进程信息获取到了,退出
A8:如果该进程的链表结构地址不等于记录的链表头部,重复A5操作,不同的是,输出的是当前映射的进程的PID和进程命令行信息,而不是起始进程的相关信息。
本发明的另一具体实施例,当DomU为32位的Windows操作系统时,该场景的步骤如下:
B1:用户提供要监控的DomU的id号以及包含有该Windows系统的进程各变量偏移量及起始进程虚拟地址信息的文件位置
B2:进行初始化操作,记录进程各变量偏移量及起始进程虚拟地址信息
B3:如图6所示,Windows的起始进程是一个内核线程,结构是KThread,而其他进程的结构为EProcess,保存的链表结构为List_entry,下一进程的指针为Flink,上一进程的指针为Blink。不同于Linux系统,Windows操作系统的链表结构的起始进程不存在于其他进程的双向链表结构中,因此,链表头部不能标记为起始进程的链表结构,而应该标记为起始进程KThread所指向的第一个普通进程EProcess。Windows的进程结构同样位于内核地址空间中。根据Windows的地址空间结构,0x80000000以上是内核地址空间,当内核地址为0x80000000到0x80fffffff时,物理地址等于虚拟地址减去0x80000000;当内核地址大于0x81000000时,物理地址等于虚拟地址减去0x7c000000,因此,同样可以不需要进行地址映射通过简单操作得到进程结构的物理地址。
B4:使用Xen提供的物理内存映射函数,将起始进程的结构映射到Dom0的地址空间中。利用记录的进程号、进程命令行、下一进程地址这几个变量的偏移量,读取出起始进程的PID、进程命令行信息,以及第一个普通进程的地址信息,将起始进程的PID和进程命令行信息进行输出,作为进程列表的第一个进程信息,将下一进程的地址信息进行记录。
B5:将第一个普通进程的链表结构的虚拟地址标识为链表头部。
B6:利用该进程的链表结构的虚拟地址,使用B3描述的减法操作获取其进程结构的物理地址,使用物理地址映射函数将该结构内容所在页映射到Dom0的地址空间。
B7:利用PID、进程命令行、下一进程地址这几个变量的偏移量,读取出该进程的PID、进程命令行信息,以及下一进程地址信息,输出该进程的PID与进程命令行。
B8:如果该进程的链表结构地址等于记录的链表头部,则说明已经循环回到起始进程的结构,表明已经将所有当前运行的进程信息获取到了,退出。
B8:如果该进程的链表结构地址不等于记录的链表头部,跳到B6继续执行。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (12)

1.一种虚拟化环境下的进程列表信息监控系统,其特征在于,所述进程列表信息监控系统部署在特权虚拟机中,对多个客户虚拟机的进程列表信息进行监控,所述进程列表信息监控系统包括:
用户输入模块:用于由用户提供被监控的所述客户虚拟机的ID和操作系统类型;
初始化模块:用于保存偏移量和起始进程结构的虚拟地址;
列表信息监测模块:用于对多个所述客户虚拟机的进程列表信息进行监控,所述列表信息监测模块包括:
起始进程模块:用于提取起始进程结构信息,标识所述起始进程结构的虚拟地址为链表头部,所述起始进程模块包括:
起始进程地址计算模块:用于提取位于内核地址空间的所述起始进程结构的虚拟地址,根据物理地址和所述虚拟地址的对应关系,计算所述起始进程结构的物理地址;
起始地址映射模块:用于通过所述起始进程结构的物理地址,
使用地址映射函数获取所述起始进程结构;
起始进程信息提取模块:用于根据保存的所述偏移量,提取所述起始进程结构内信息,作为监控所需的所述进程列表信息,并记录所述后续进程结构的虚拟地址;
链表头部标识模块:用于标识所述起始进程结构的虚拟地址为所述链表头部。
2.根据权利要求1所述进程列表信息监控系统,其特征在于,所述列表信息监测模块包括:
后续进程模块:用于从所述链表头部的后续进程结构开始,依次进行所述后续进程结构信息提取,直至所述进程列表信息提取完毕。
3.根据权利要求2所述进程列表信息监控系统,其特征在于,所述后续进程模块包括:
后续进程地址计算模块:用于根据记录的所述后续进程结构的虚拟地址,通过所述后续进程结构的物理地址和虚拟地址的映射关系,计算所述后续进程结构的物理地址;
后续地址映射模块:用于通过所述后续进程结构的物理地址,使用地址映射函数获取所述后续进程结构;
后续进程信息提取模块:用于根据保存的所述偏移量,提取所述后续进程结构内信息,作为监控所需的所述进程列表信息,并记录下一个所述后续进程结构的虚拟地址;
进程头部判断模块:用于判断下一个所述后续进程结构地址是否为所述链表头部,如果为所述链表头部,提取所述进程列表信息结束,否则进入所述后续进程地址计算模块,继续进行所述进程列表信息提取。
4.根据权利要求2所述进程列表信息监控系统,其特征在于,所述起始进程结构内信息包括:起始进程号,起始进程命令和所述起始进程结构的虚拟地址;所述后续进程结构内信息包括:后续进程号,后续进程命令和所述后续进程结构的虚拟地址。
5.根据权利要求2所述进程列表信息监控系统,其特征在于,所述起始进程结构和所述后续进程结构形成一个双向链表结构。
6.根据权利要求1所述进程列表信息监控系统,其特征在于,所述物理地址由所述虚拟地址减去一个固定地址值获得。
7.一种虚拟化环境下的进程列表信息监控方法,适用于虚拟化环境下的进程列表信息监控系统,所述进程列表信息监控系统部署在特权虚拟机中,对多个客户虚拟机的进程列表信息进行监控,所述进程列表信息监控方法包括:
用户输入步骤:用于由用户提供被监控的所述客户虚拟机的ID和操作系统类型;
初始化步骤:用于保存偏移量和起始进程结构的虚拟地址;
列表信息监测步骤:用于对多个所述客户虚拟机的进程列表信息进行监控,所述列表信息监测步骤包括:
起始进程步骤:用于提取起始进程结构信息,标识所述起始进程结构的虚拟地址为链表头部,所述起始进程步骤包括:
起始进程地址计算步骤:用于提取位于内核地址空间的所述起始进程结构的虚拟地址,根据物理地址和所述虚拟地址的对应关系,计算所述起始进程结构的物理地址;
起始地址映射步骤:用于通过所述起始进程结构的物理地址,使用地址映射函数获取所述起始进程结构;
起始进程信息提取步骤:用于根据保存的所述偏移量,提取所述起始进程结构内信息,作为监控所需的所述进程列表信息,并记录所述后续进程结构的虚拟地址;
链表头部标识步骤:用于标识所述起始进程结构的虚拟地址为所述链表头部。
8.根据权利要求7所述进程列表信息监控方法,其特征在于,所述列表信息监测步骤包括:
后续进程步骤:用于从所述链表头部的后续进程结构开始,依次进行所述后续进程结构信息提取,直至所述进程列表信息提取完毕。
9.根据权利要求8所述进程列表信息监控方法,其特征在于,所述后续进程步骤包括:
后续进程地址计算步骤:用于根据记录的所述后续进程结构的虚拟地址,通过所述后续进程结构的物理地址和虚拟地址的映射关系,计算所述后续进程结构的物理地址;
后续地址映射步骤:用于通过所述后续进程结构的物理地址,使用地址映射函数获取所述后续进程结构;
后续进程信息提取步骤:用于根据保存的所述偏移量,提取所述后续进程结构内信息,作为监控所需的所述进程列表信息,并记录下一个所述后续进程结构的虚拟地址;
进程头部判断步骤:用于判断下一个所述后续进程结构地址是否为所述链表头部,如果为所述链表头部,提取所述进程列表信息结束,否则进入所述后续进程地址计算模块,继续进行所述进程列表信息提取。
10.根据权利要求9所述进程列表信息监控方法,其特征在于,所述起始进程结构内信息包括:起始进程号,起始进程命令和所述起始进程结构的虚拟地址;所述后续进程结构内信息包括:后续进程号,后续进程命令和所述后续进程结构的虚拟地址。
11.根据权利要求9所述进程列表信息监控方法,其特征在于,所述起始进程结构和所述后续进程结构形成一个双向链表结构。
12.根据权利要求8所述进程列表信息监控方法,其特征在于,所述物理地址由所述虚拟地址减去一个固定地址值获得。
CN201310511926.2A 2013-10-25 2013-10-25 一种虚拟化环境中的进程信息监控系统及其方法 Active CN103744851B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310511926.2A CN103744851B (zh) 2013-10-25 2013-10-25 一种虚拟化环境中的进程信息监控系统及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310511926.2A CN103744851B (zh) 2013-10-25 2013-10-25 一种虚拟化环境中的进程信息监控系统及其方法

Publications (2)

Publication Number Publication Date
CN103744851A CN103744851A (zh) 2014-04-23
CN103744851B true CN103744851B (zh) 2017-04-12

Family

ID=50501869

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310511926.2A Active CN103744851B (zh) 2013-10-25 2013-10-25 一种虚拟化环境中的进程信息监控系统及其方法

Country Status (1)

Country Link
CN (1) CN103744851B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104598294B (zh) * 2015-01-07 2021-11-26 乾云数创(山东)信息技术研究院有限公司 用于移动设备的高效安全的虚拟化方法及其设备
CN109583190B (zh) 2017-09-28 2020-11-27 华为技术有限公司 监控进程的方法和装置
CN108897598A (zh) * 2018-06-13 2018-11-27 南京享达汉辰网络科技有限公司 一种优化的虚拟机自动迁移系统和方法
CN108845865A (zh) * 2018-06-28 2018-11-20 郑州云海信息技术有限公司 一种监控服务部署方法、系统和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102736969A (zh) * 2012-05-22 2012-10-17 中国科学院计算技术研究所 一种针对硬件虚拟化的内存监控方法和系统
CN102750470A (zh) * 2012-05-22 2012-10-24 中国科学院计算技术研究所 全虚拟化环境下启动加载器的可信验证方法和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102736969A (zh) * 2012-05-22 2012-10-17 中国科学院计算技术研究所 一种针对硬件虚拟化的内存监控方法和系统
CN102750470A (zh) * 2012-05-22 2012-10-24 中国科学院计算技术研究所 全虚拟化环境下启动加载器的可信验证方法和系统

Also Published As

Publication number Publication date
CN103744851A (zh) 2014-04-23

Similar Documents

Publication Publication Date Title
Zhou et al. A bare-metal and asymmetric partitioning approach to client virtualization
US8904240B2 (en) Monitoring and resolving deadlocks, contention, runaway CPU and other virtual machine production issues
US9405551B2 (en) Creating an isolated execution environment in a co-designed processor
CN103064784B (zh) 面向Xen环境的运行时内存泄漏检测方法及其实现系统
US20180024855A1 (en) Live migration of virtual machines from/to host computers with graphics processors
US8887139B2 (en) Virtual system and method of analyzing operation of virtual system
US20090119089A1 (en) Method, apparatus and full-system simulator for speeding mmu simulation
US9632725B2 (en) Computer-implemented method, program, and tracer node for obtaining trace data relating to particular virtual machine
CN106354543B (zh) 一种基于虚拟机和宿主机内存地址转换的numa内存迁页方法
US20090083720A1 (en) Employing identifiers provided by an operating system of a processing environment to optimize the processing environment
US20200267071A1 (en) Traffic footprint characterization
Azmandian et al. Workload characterization at the virtualization layer
CN103744851B (zh) 一种虚拟化环境中的进程信息监控系统及其方法
US10089474B2 (en) Virtual machine introspection
CN104598294A (zh) 用于移动设备的高效安全的虚拟化方法及其设备
CN107807839A (zh) 一种修改虚拟机内存数据的方法、装置及电子设备
CN104715202A (zh) 一种虚拟机中的隐藏进程检测方法和装置
CN103440457A (zh) 基于进程模拟的二进制程序分析系统
US20200341789A1 (en) Containerized workload scheduling
CN107391225A (zh) 一种基于多ept列表的监控方法和系统
Storniolo et al. Improving live migration efficiency in QEMU: An eBPF-based paravirtualized approach
US20150248303A1 (en) Paravirtualized migration counter
US20220405111A1 (en) Improving memory access handling for nested virtual machines
Teabe et al. (no) compromis: Paging virtualization is not a fatality
CN116225619A (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
GR01 Patent grant
GR01 Patent grant