CN103064723A - 虚拟机器存储器的鉴识方法与计算机系统 - Google Patents
虚拟机器存储器的鉴识方法与计算机系统 Download PDFInfo
- Publication number
- CN103064723A CN103064723A CN2011104300849A CN201110430084A CN103064723A CN 103064723 A CN103064723 A CN 103064723A CN 2011104300849 A CN2011104300849 A CN 2011104300849A CN 201110430084 A CN201110430084 A CN 201110430084A CN 103064723 A CN103064723 A CN 103064723A
- Authority
- CN
- China
- Prior art keywords
- operating system
- virtual machine
- file
- version
- memory
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000006870 function Effects 0.000 claims abstract description 50
- 238000012545 processing Methods 0.000 claims description 22
- 230000006399 behavior Effects 0.000 claims description 3
- 238000003860 storage Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000014616 translation Effects 0.000 description 1
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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- 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/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种虚拟机器存储器的鉴识方法与计算机系统,该鉴识方法用于在执行至少一虚拟机器的计算机系统上,且虚拟机器上执行一操作系统。此鉴识方法包括以下步骤。取得上述操作系统的内核文件,此内核文件中包括此操作系统的版本信息。根据此版本信息取得操作系统的源代码与配置文件。源代码与配置文件的版本符合操作系统的版本。根据上述配置文件将固定接口函数与源代码一起编译以产生对象文件。根据对象文件来鉴识虚拟机器上的存储器页面。
Description
技术领域
本公开涉及一种适用于各种操作系统版本的虚拟机器存储器鉴识方法与其计算机系统。
背景技术
随着计算机硬件装置的成本越来越降低以及大型伺服器的需求越来越高,虚拟机器(Virtual Machine)也越来越被重视。虚拟机器为一种接口,应用于一软件与计算机系统之间,并可提供此计算机系统的各种资源给上述软件使用。此软件通常为一操作系统,因此,操作系统可以通过虚拟机器来存取计算机系统上的资源。然而,在一计算机系统上可以安装多个虚拟机器,每个虚拟机器上可安装不同的操作系统。举例来说,微软的windows操作系统与linux操作系统便可同时安装在一个计算机系统上不同的虚拟机器中。
由于虚拟机器上操作系统与计算机系统之间的耦合关系已被松绑,且操作系统管理着虚拟机器上的存储器页面,因此从计算机系统上的虚拟机器监控程序(virtual machine monitor,VMM)不容易取得虚拟机器上存储器页面的使用状态。但在一些应用之中,这些虚拟机器上存储器页面的存取却是必要的。例如,要分享不同虚拟机器上的存储器页面时,需要检测这些存储器页面的使用状态,或者是要检测此操作系统是否已被网络病毒所入侵时,需要从虚拟机器的层级来鉴识这些存储器页面所存储的数据是否是可信任的。一种作法是将操作系统的版本信息写入至VMM,并根据此版本信息来分析虚拟机器上的存储器页面。但如此一来,当操作系统的版本更新时或者是新的操作系统与虚拟机器从其他计算机系统上搬移过来时,将必须手动的更新操作系统的版本信息,非常耗时。因此如何研发出一个能适用于各种操作系统版本的虚拟机器存储器鉴识方法,为此领域研究人员所关心的问题。
发明内容
本公开提供一种虚拟机器存储器的鉴识方法,能适用于各种操作系统版本。
本公开提供一种计算机装置,能鉴识虚拟机器的存储器并适用于各种操作系统版本。
本公开提供一种虚拟机器存储器的鉴识方法,用于执行在至少一虚拟机器的计算机系统上且虚拟机器上执行一操作系统。此鉴识方法包括以下步骤。取得上述操作系统的内核文件,此内核文件中包括此操作系统的版本信息。根据此版本信息取得操作系统的至少一源代码(source code,又称之为“原始码”)与配置文件(configuration file,又称之为“设定文件”)。源代码与配置文件的版本符合操作系统的版本。根据上述配置文件将固定接口函数与源代码一起编译以产生至少一对象文件(object file,又称之为物件文件)。根据对象文件来鉴识虚拟机器上的存储器页面。
以另外一个角度来说,本公开提出一种计算机系统,用于执行至少一虚拟机器,且虚拟机器上执行一操作系统。此计算机系统包括一存储器单元、一操作系统版本控制单元、以及一处理单元。存储器单元包括了多个物理存储器页面。而操作系统版本控制单元耦接至存储器单元,用以取得操作系统的内核文件,此内核文件包括操作系统的版本信息。并且,操作系统版本控制单元根据此版本信息取得操作系统的至少一源代码与配置文件,此源代码与配置文件的版本符合操作系统的版本。以及,操作系统版本控制单元根据上述配置文件将固定接口函数与上述源代码一起编译以产生至少一对象文件。处理单元耦接至上述存储器单元与操作系统版本控制单元,用以根据上述对象文件鉴识虚拟机器上的存储器页面。
基于上述,本公开提出一种虚拟机器存储器的鉴识方法与计算机系统,其根据操作系统的版本取得此版本的操作系统源代码与配置文件,并根据此配置文件将此源代码与一固定接口函数一起编译,使得所产生的对象文件拥有当前操作系统版本的信息。如此一来,本公开便可适用于不同版本的操作系统并能鉴识虚拟机器上的存储器页面。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1为依照本公开一实施例所绘示的计算机系统方块图。
图2为依照本公开一实施例所绘示的计算机系统与虚拟机器的示意图。
图3为依照本发明一实施例所绘示的存储器鉴识方法的流程图。
图4为依照本公开一实施例说明适用于各操作系统版本的对象文件编译流程的示意图。
图5为依照本公开一实施例所绘示的固定接口函数440的程序代码。
图6为依照本公开一实施例所绘示的子程序480的程序代码。
【主要元件符号说明】
100:计算机系统
140:存储器单元
142:物理存储器
160:操作系统版本控制单元
180:处理单元
220:虚拟机器监控程序
230、240:虚拟机器
232、242:存储器分页
250、260:操作系统
262、252:虚拟存储器分页
254、264:存储器映射图
234、244:第一空闲页
S302、S304、S306、S308:虚拟机器存储器鉴识方法的步骤
420:源代码
422:表头文件
424:实作程序代码
440:固定接口函数
460:对象文件
480:子程序
482:子程序对象文件
484:主执行文件
具体实施方式
图1为依照本公开一实施例所绘示的计算机系统方块图。
请参照图1,计算机系统100包括一存储器单元140、一操作系统版本控制单元160、以及一处理单元180。
存储器单元140包含了多个物理存储器(又称之为“实体存储器”)页面142。存储器单元140例如为动态随机存取存储器(Dynamic Random AccessMemory,DRAM)或静态随机存取存储器(Static Random Access Memory,SRAM)。
操作系统版本控制单元160耦接至存储器单元140,用以取得操作系统的版本信息,并产生能适用于各操作系统版本的文件。操作系统版本控制单元160例如为微处理器(microprocessor),用以执行一非易失性存储器(未绘示)中的程序代码。
处理单元180耦接至操作系统版本控制单元160与存储器单元140,用以执行计算机系统上的软件与固件,并用以根据操作系统版本控制单元160所产生的文件来鉴识计算机系统100上虚拟机器的存储器页面。处理单元180例如为中央处理器(Central Process Unit,CPU)。
在本实施例中,计算机系统100上执行了两个虚拟机器,而各虚拟机器上执行了一操作系统。请参照图2,图2为依照本公开一实施例所绘示的计算机系统与虚拟机器的示意图。虚拟机器监控程序(Virtual Machine Monitor,VMM)220被执行在计算机系统100上,用以控制计算机系统100上所有的资源。其中计算机系统100的资源包括处理单元120、存储器单元140、或是计算机系统100上的输入输出(input output,IO)装置(未绘示)的执行与使用。在本实施例中,VMM 220建置了虚拟机器230与虚拟机器240,虚拟机器230与虚拟机器240便可以通过VMM 220来存取上述计算机系统100的资源。然而,虚拟机器监控程序220可以提供数目更多或更少的虚拟机器,本公开并不限制虚拟机器的数目。
VMM 220可将计算机系统100上的资源分配给虚拟机器230与虚拟机器240。以存储器为例,VMM 220将存储器单元140中的物理存储器页面142分配给虚拟机器230与虚拟机器240,使虚拟机器230中包含了多个存储器页面232,并使虚拟机器240中包含了多个存储器页面242。值得注意的是,存储器页面232与存储器页面242为客端物理存储器(guest physical memory),也就是说存储器页面232与存储器页面242并不是物理的(实体的)存储器,仅是被对应至物理存储器页面142的虚拟存储器。
另一方面,虚拟机器230上安装了操作系统260,且虚拟机器240上安装了操作系统250。如此一来,操作系统260便可以存取虚拟机器230上的资源(例如,存储器页面232),而操作系统250便可以存取虚拟机器240上的资源(例如,存储器页面242)。而操作系统260中也包含了多个虚拟存储器页面262,操作系统260是用逻辑地址(logical address)来存取这些虚拟存储器页面262。当操作系统260用逻辑地址存取虚拟存储器页面262时,此逻辑地址会被操作系统260转换为存储器页面232的客端物理地址(guest physicaladdress),而VMM 220再将此客端物理地址转换为物理存储器页面142的物理地址(physical address,又称之为“实体位置”)。操作系统260通过这样的转换关系来存取物理存储器页面142。操作系统250也通过类似的转换用逻辑地址来存取物理存储器页面142,在此便不再赘述。
而操作系统260中的存储器映射图(memory map)264则存放着存储器页面232的使用状态。在一实施例中,操作系统260为Linux操作系统,而Linux操作系统中有两个存储器模式,分别为平面存储器模式(flat memory model)与稀疏存储器模式(sparse memory model),在不同的模式下会使用不同的方式来管理存储器页面232。在平面存储器模式下,存储器映射图264是名为mem_map,代表一阵列排列的数据结构,阵列中的一个元素(element)对应至存储器页面232其中的一个存储器页面,此元素中包含了对应的存储器页面的使用状况。而在稀疏存储器模式下,操作系统260包含了多个存储器区段(memory section),各个存储器区段有各自对应的存储器映射图264。且每个存储器区段是各自独立的,各存储器区段的信息则存在名为mem_section的阵列中。在操作系统260的内核被编译以后,上述的存储器模式就会被决定并且不会再改变,而存储器模式的信息则被存在配置文件(例如,.config文件)中。在一实施例中操作系统260使用平面存储器模式,而操作系统250使用稀疏存储器模式,因此存储器映射图264的数据结构与存储器映射图254的数据结构并不相同。如此一来,VMM 220便需要读取上述的配置文件来取得存储器模式的信息。
在另一实施例中,操作系统250与操作系统260都为Linux操作系统,并使用相同的存储器模式(例如,平面存储器模式),因此存储器映射图264的数据结构与存储器映射图254的数据结构相同。然而,操作系统250的版本与操作系统260的版本不相同,使得存储器映射图254里每个元素中字段(field)的值所代表的意义与存储器映射图264里每个元素中字段的值所代表的意义不完全相同。详细来说,Linux是使用对偶式存储器管理算法(BuddySystem Algorithm)来管理空闲的存储器页面,在此称空闲的存储器页面为空闲页(free page)。为了避免空闲页的存储器位置不连续,连续的空闲页会被分为一个群组,且群组的大小为2的次方(例如,32或64)。每个群组的第一个存储器页面为对偶页面(buddy page),并使用一个名为private的字段(又称之为“栏位”)来存放此群组大小的信息。举例来说,如果一群组中对偶页面里private字段的数值是n,则表示此群组包含了2n个连续的空闲页。因此,VMM220可以通过鉴识每一群组的对偶页面来取得操作系统存储器的空闲页数据结构。然而,如果Linux操作系统的版本不同,则必需读取不同的字段来鉴识一存储器页面是否为对偶页面。举例来说,存储器映射图254为上述的mem_map的阵列数据结构,阵列中的一元素对应至一存储器页面242,要判断此存储器页面是否为对偶页面则需要查询对应的元素里所存放的数据。在比版本2.6.18旧的Linux操作系统版本中,如果此元素中flags字段的第19个位元为1,则此存储器页面为对偶页面;但若在版本2.6.38中,必须查询此元素中另一个名为_mapcount的字段来判断此存储器页面是否为对偶页面。
在一实施例中操作系统260与操作系统250为windows操作系统,而在windows操作系统中是根据名为Zeroed的页面清单来存放所有空闲的存储器页面。而存储器映射图264为页帧(又称之为“页框”)值数据库(page framenumber database,PFN database)。而页帧值数据库为阵列类型的数据结构,此阵列的每一个元素包括“Type”字段,用以记录对应的一个存储器页面232的使用状态,也就是说“Type”字段纪录者此存储器页面是否被放入Zeroed页面清单。然而,在不同的windows版本中,上述“Type”字段里数据的存放方式并不完全一样。因此VMM 220必须拥有操作系统版本的信息才可以分析上述“Type”字段,并进而鉴识虚拟机继上的存储器页面。
简单来说,当操作系统260与操作系统250中存储器模式的设定不同时,存储器映射图264与存储器映射图254的数据结构会不同。而即使存储器映射图264与存储器映射图254的数据结构相同,当操作系统260与操作系统250的版本不相同时,也必须用不同的方式来读取存储器映射图264与存储器映射图254中的字段信息来鉴识存储器页面232与存储器页面242。
然而,在不同版本的Linux操作系统之中,皆提供了一个名为intPageBuddy(struct page*)的函数,此函数的输入为struct page数据结构的指针(pointer),struct page的数据结构则存放着所对应的存储器页面的信息,也就是说此函数的输入为存储器映射图中的一个元素的指针。而此函数的输出为表示所对应的存储器页面是否为对偶页面的整数。在不同版本的Linux操作系统中,所提供的此函数皆拥有相同的接口,但实作方式却不同。本实施例中是利用此函数在不同版本的操作系统中有相同接口的这个特性,来鉴识虚拟机器上的存储器页面。值得注意的是,本公开并不限制操作系统的种类(例如,Linux或Windows),也不限制所使用的函数,在不脱离本发明的精神和范围内,都可以使用操作系统中其他固定接口的函数来鉴识虚拟机器的存储器页面。
图3为依照本发明实施例所绘示的存储器鉴识方法的流程图。请同时参照图1与图3。以下以操作系统260为例,说明本实施例中鉴识存储器页面232的流程。
在步骤S302中,操作系统版本控制单元160取得操作系统的内核文件,此内核文件中包括操作系统的版本信息。举例来说,Linux操作系统260的内核文件是名为vmlinux的内核映像文件(kernel image),此内核映像文件包括两部分,分别为实际模式内核映像文件(real-mode kernel image)与保护模式内核映像文件(protected-mode kernel image)。其中实际模式内核映像文件中便包含了操作系统260的版本信息。更详细来说,由于不同版本的Linux操作系统中实际模式内核映像文件的文件头(header)皆包含了内容为“HdrS”的魔术数字(magic number),因此操作系统版本控制单元160可以搜寻存储器页面232的每一页面,找到包含此魔术数字的实际模式内核映像文件,进而取得操作系统260的版本信息。然而,本公开并不限制取得操作系统内核文件的方式。
在步骤S304中,操作系统版本控制单元160根据操作系统260的版本信息取得操作系统260的源代码(source code)与配置文件(例如,.config文件),其中源代码与配置文件的版本符合操作系统260的版本。所取得的源代码中包括了符合操作系统260版本中各个函数的实作程序代码,而配置文件中则包括了操作系统260的存储器模式以及存储器映射图264的存储器位置信息。在一实施例中,操作系统260为Linux操作系统,而操作系统版本控制单元160在取得Linux操作系统260的版本信息以后,可以在名为CentOS的网站上下载此版本的操作系统源代码与配置文件,此配置文件是名为“config-版本编号”的文件。在其他实施例中,操作系统版本控制单元160可以经由区域网络连线至一伺服器来下载操作系统的源代码与配置文件,本公开不限制取得源代码与配置文件的方法。另一方面,所下载的源代码与配置文件的版本符合操作系统260的版本,也就是说所下载的源代码中包括符合操作系统260版本且名为int PageBuddy(struct page*)的函数实作程序代码。
在步骤S306中,操作系统版本控制单元160根据所取得的配置文件将固定接口函数与源代码一起编译以产生对象文件。详细内容请参考图4,图4为依照本公开一实施例说明适用于各操作系统版本的对象文件编译流程示意图。操作系统版本控制单元160在步骤S304取得了操作系统260的源代码420,其中包括了表头文件(head file)422以及实作程序代码424。表头文件422包含了各个函数的接口与宣告,其中也包括了函数int PageBuddy(struct page*)的宣告。而实作程序代码424则包括了各个函数的实作程序代码,其中也包括了函数int PageBuddy(struct page*)的实作程序代码。而固定接口函数440是名为int GFN_is_Buddy(unsigned long)的函数,其中呼叫了函数intPageBuddy(struct page*),然而固定接口函数440可以有其他命名方式,本公开并不限制其命名方式。操作系统版本控制单元160是将固定接口函数440、表头文件422、以及源代码424一起编译,用以产生对象文件460,此对象文件460中包含了固定接口函数440。此外,当操作系统版本控制单元160将固定接口函数440、表头文件422、以及源代码424一起编译时,还需要参考步骤S304所取得的配置文件(例如,操作系统260的.config文件)。请参考图5,图5为依照本公开一实施例固定接口函数440的程序代码。在固定接口函数440中的第5行程序代码需要判断操作系统260的存储器模式是否为平面存储器模式,此时便需要参照操作系统260的配置文件(即,.config文件),其中包含了操作系统260存储器模式的信息。
请参照回图4,在操作系统版本控制单元160产生对象文件460以后,由于固定接口函数440中呼叫了函数int PageBuddy(struct page*),因此对象文件460中也包含了函数int PageBuddy(struct page*)的实作程序代码,并且对象文件460中的函数命名与固定接口函数440的命名相同。值得注意的是,实作程序代码424符合操作系统260的版本,也就是说实作程序代码424中包含了如何鉴识存储器映射图264的程序代码。如此一来,所产生的对象文件460也符合操作系统260的版本,并能鉴识存储器映射图264。另一方面,固定接口函数440的命名在决定之后便不再更改,因此若操作系统的版本改变,只要依照上述步骤重新编译出对象文件460,则对象文件460中函数的命名并不会改变,但却拥有不同操作系统版本的实作程序代码。因此使用者不需要手动的调整任何程序代码,便可以鉴识不同操作系统版本的虚拟机器的存储器页面。
在步骤S308中,处理单元180根据对象文件来鉴识操作系统上的存储器。同样以操作系统260为例,处理单元180是呼叫对象文件460中的intGFN_is_Buddy(unsigned long)函数来鉴识虚拟机器230上的存储器页面232。也就是说,处理单元180可以通过执行一程序,此程序中呼叫了对象文件460中的int GFN_is_Buddy(unsigned long)函数来鉴识存储器页面232。
举例来说,子程序(又称之为“副程序”)480中呼叫对象文件460的函数,用以判断存储器页面232的其中一个存储器页面是否为对偶页面。如果是,则标记对偶页面所属群组中的存储器页面为空闲页。子程序480的内容可参考图6,图6为依照本公开实施例所绘示的子程序480的程序代码。子程序480中的第7行便呼叫了int GFN_is_Buddy(unsigned long)的函示,而子程序480在编译过后会产生子程序对象文件482。另一方面,主执行文件484中包含了有名为int main()的函数,其中呼叫了子程序480中的int GFN_is_Buddy(unsigned long)函示。除此之外,主执行文件484还包括了存储器映射图264的信息,使得处理单元180在执行主执行文件484,可以根据存储器映射图264与对象文件460来鉴识存储器页面232。详细来说,处理单元180在步骤S306中,将配置文件与源代码一起编译以后会得到system.map的文件,处理单元可从system.map中取得符号表(symbol table),并在符号表中取得存储器映射图264的存储器位置,接着根据此存储器位置取得存储器映射图264。而主执行文件484中还包括了根据存储器映射图264的信息来扫描所有存储器页面232,并根据对象文件460来判断存储器页面是否为对偶页面的程序代码。当处理单元180编译主执行文件484时,便会将子程序对象文件482与对象文件460连结(link)在一起。当处理单元180执行主执行文件484时,便可以鉴识存储器页面232并取得存储器页面232的数据结构。
然而,在其他实施例中,主执行文件484可以仅呼叫对象文件460中的函数,而不呼叫子程序对象文件482,本公开并不限制处理单元180根据对象文件460来鉴识存储器页面232的方式。
另一方面,在其他实施例中,步骤S304所取得的源代码可包括多个文件(例如,多个.c文件)。因此在步骤S306所产生的对象文件也包括多个文件(例如,多个.o文件)。本公开并不限制上述源代码与对象文件的个数。
虽然以上以操作系统260为例,但对于操作系统250可依照上述步骤产生对应于操作系统250的对象文件,并根据此对象文件来鉴识虚拟机器240中的存储器页面242。详细步骤已描述如上,在此便不再赘述。
综上所述,在本公开中,虚拟机器存储器的鉴识方法可根据计算机系统的操作系统版本取得相对应的源代码,因此所产生的对象文件包含有当前操作系统版本的信息,并且对象文件中函数名称为固定。因此当操作系统版本改变时,只要重新产生对象文件,便可呼叫同样的函数名称,以藉此在当前操作系统版本下,鉴识虚拟机器的存储器页面。也就是说,使用者面对不同版本的操作系统或是当操作系统的版本更换时,不需要手动去调整任何程序代码。
虽然本发明已以实施例公开如上,然其并非用以限定本发明,本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视所附权利要求书所界定者为准。
Claims (12)
1.一种虚拟机器存储器的鉴识方法,用于执行在至少一虚拟机器的计算机系统上,且该至少一虚拟机器上执行一操作系统,该鉴识方法包括:
取得该操作系统的一内核文件,其中该内核文件中包括该操作系统的一版本信息;
根据该版本信息取得该操作系统的至少一源代码与一配置文件,其中该至少一源代码与该配置文件的版本符合该操作系统的版本;
根据该配置文件将一固定接口函数与该至少一源代码一起编译以产生至少一对象文件;以及
根据该至少一对象文件鉴识该至少一虚拟机器的多个存储器页面。
2.如权利要求1所述的鉴识方法,其中取得该操作系统的该内核文件的步骤包括:
通过寻找该至少一虚拟机器的这些存储器页面中的一魔术数字来取得该内核文件。
3.如权利要求1所述的鉴识方法,其中根据该版本信息取得该操作系统的该至少一源代码与该配置文件的步骤包括:
根据该版本信息,从一网站上下载符合该操作系统版本的该至少一源代码与该配置文件。
4.如权利要求1所述的鉴识方法,还包括:
从该配置文件中取得该操作系统的一存储器映射图的存储器位置,其中该存储器映射图包含该至少一虚拟机器中这些存储器页面的使用状况;以及
根据该存储器映射图的存储器位置,取得该存储器映射图。
5.如权利要求4所述的鉴识方法,其中根据该至少一对象文件鉴识该至少一虚拟机器的这些存储器页面的步骤包括:
根据该存储器映射图与该至少一对象文件,鉴识该至少一虚拟机器的这些存储器页面,并取得这些存储器页面的数据结构。
6.如权利要求1所述的鉴识方法,其中该操作系统为Linux操作系统,该固定接口函数包含了该操作系统的int PageBuddy(struct page*)函数。
7.一种计算机系统,用于执行至少一虚拟机器,该至少一虚拟机器上执行一操作系统,该计算机系统包括:
一存储器单元,包括有多个物理存储器页面;
一操作系统版本控制单元,耦接至该存储器单元;以及
一处理单元,耦接至该存储器单元与该操作系统版本控制单元;
其中,该操作系统版本控制单元取得该操作系统的一内核文件,该内核文件上包括该操作系统的一版本信息,并根据该版本信息取得该操作系统的至少一源代码与一配置文件,该至少一源代码与该配置文件的版本符合该操作系统的版本,以及根据该配置文件将一固定接口函数与该至少一源代码一起编译以产生至少一对象文件,而该处理单元根据该至少一对象文件鉴识该至少一虚拟机器的多个存储器页面。
8.如权利要求7所述的计算机系统,其中在取得该操作系统的该内核文件时,该操作系统版本控制单元通过寻找该至少一虚拟机器的这些存储器页面中的一魔术数字来取得该内核文件。
9.如权利要求7所述的计算机系统,其中在根据该版本信息取得该操作系统的该至少一源代码与该配置文件时,该操作系统版本控制单元根据该版本信息,从一网站上下载符合该操作系统版本的该至少一源代码与该配置文件。
10.如权利要求7所述的计算机系统,该处理单元更从该配置文件中取得该操作系统的一存储器映射图的存储器位置,其中该存储器映射图包含该至少一虚拟机器的这些存储器页面的使用状况,并且该处理单元根据该存储器映射图的存储器位置取得该存储器映射图。
11.如权利要求10所述的计算机系统,其中在根据该至少一对象文件鉴识该至少一虚拟机器的这些存储器页面时,该处理单元根据该存储器映射图与该至少一对象文件来鉴识该至少一虚拟机器的这些存储器页面,并取得这些存储器页面的数据结构。
12.如权利要求7所述的计算机系统,其中该操作系统为Linux操作系统,该固定接口函数包含了该操作系统的int PageBuddy(struct page*)函数。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161548697P | 2011-10-18 | 2011-10-18 | |
US61/548,697 | 2011-10-18 | ||
TW100143979A TWI444824B (zh) | 2011-10-18 | 2011-11-30 | 虛擬機器記憶體的鑑識方法與電腦系統 |
TW100143979 | 2011-11-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103064723A true CN103064723A (zh) | 2013-04-24 |
CN103064723B CN103064723B (zh) | 2016-01-20 |
Family
ID=48086779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110430084.9A Active CN103064723B (zh) | 2011-10-18 | 2011-12-20 | 虚拟机器存储器的鉴识方法与计算机系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8539461B2 (zh) |
CN (1) | CN103064723B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5832556B2 (ja) * | 2012-01-10 | 2015-12-16 | 京セラドキュメントソリューションズ株式会社 | 画像処理装置および画像形成装置 |
CN103678553A (zh) * | 2013-12-06 | 2014-03-26 | 上海寰创通信科技股份有限公司 | 基于共享内存设计的无线终端数据库构建方法 |
JP7501615B2 (ja) * | 2020-04-24 | 2024-06-18 | 日本電気株式会社 | セキュリティ検査装置、セキュリティ検査方法、及びプログラム |
CN117707704B (zh) * | 2023-12-20 | 2024-08-06 | 慧之安信息技术股份有限公司 | 一种Java虚拟机配置方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1645339A (zh) * | 2005-01-31 | 2005-07-27 | 浙江大学 | 在嵌入式系统模拟器上调试应用程序的方法 |
CN101923507A (zh) * | 2010-07-30 | 2010-12-22 | 华中科技大学 | 基于驱动的虚拟机通用监控系统 |
US7971203B2 (en) * | 2004-03-05 | 2011-06-28 | Intel Corporation | Method, apparatus and system for dynamically reassigning a physical device from one virtual machine to another |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6862650B1 (en) * | 1997-11-14 | 2005-03-01 | International Business Machines Corporation | Data processing system and method for managing memory of an interpretive system |
US7421533B2 (en) * | 2004-04-19 | 2008-09-02 | Intel Corporation | Method to manage memory in a platform with virtual machines |
US7424601B2 (en) * | 2004-07-07 | 2008-09-09 | Yongyong Xu | Methods and systems for running multiple operating systems in a single mobile device |
US7996833B2 (en) * | 2004-07-31 | 2011-08-09 | Hewlett-Packard Development Company, L.P. | Method and system for replacing instructions and instruction blocks in computer code |
US7814287B2 (en) * | 2005-07-15 | 2010-10-12 | Xensource, Inc. | Using writeable page tables for memory address translation in a hypervisor environment |
US7603344B2 (en) | 2005-10-19 | 2009-10-13 | Advanced Digital Forensic Solutions, Inc. | Methods for searching forensic data |
US7500048B1 (en) * | 2005-12-15 | 2009-03-03 | Vmware, Inc. | Transparent page sharing on commodity operating systems |
US8732824B2 (en) | 2006-01-23 | 2014-05-20 | Microsoft Corporation | Method and system for monitoring integrity of running computer system |
US7702843B1 (en) | 2006-04-27 | 2010-04-20 | Vmware, Inc. | Determining memory conditions in a virtual machine |
US8276201B2 (en) * | 2007-03-22 | 2012-09-25 | International Business Machines Corporation | Integrity protection in data processing systems |
US8011010B2 (en) | 2007-04-17 | 2011-08-30 | Microsoft Corporation | Using antimalware technologies to perform offline scanning of virtual machine images |
KR100911377B1 (ko) | 2007-10-05 | 2009-08-10 | 한국전자통신연구원 | 디지털 포렌식에서 데이터를 검색하기 위한 장치 및 방법 |
US8984478B2 (en) * | 2011-10-03 | 2015-03-17 | Cisco Technology, Inc. | Reorganization of virtualized computer programs |
-
2011
- 2011-12-20 CN CN201110430084.9A patent/CN103064723B/zh active Active
- 2011-12-27 US US13/337,301 patent/US8539461B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7971203B2 (en) * | 2004-03-05 | 2011-06-28 | Intel Corporation | Method, apparatus and system for dynamically reassigning a physical device from one virtual machine to another |
CN1645339A (zh) * | 2005-01-31 | 2005-07-27 | 浙江大学 | 在嵌入式系统模拟器上调试应用程序的方法 |
CN101923507A (zh) * | 2010-07-30 | 2010-12-22 | 华中科技大学 | 基于驱动的虚拟机通用监控系统 |
Non-Patent Citations (4)
Title |
---|
CHENSHKO: "System.map", 《HTTP://BLOG.CHINAUNIX.NET/UID-21768364-ID-204223.HTML》 * |
CRAZYTYT: "linux页释放过程", 《HTTP://BLOG.CHINAUNIX.NET/UID-361890-ID-175394.HTML》 * |
SUPJIA: "Linux内存和地址空间管理", 《HTTP://BLOG.CSDN.NET/SUPJIA/ARTICLE/DETAILS/5681925》 * |
狐狸浩浩: "Linux Kconfig及Makefile学习", 《HTTP://HI.BAIDU.COM/DONGHAOZHENG/ITEM/6043FFF98B7E9CEE1A111FFA》 * |
Also Published As
Publication number | Publication date |
---|---|
US20130097357A1 (en) | 2013-04-18 |
CN103064723B (zh) | 2016-01-20 |
US8539461B2 (en) | 2013-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chen et al. | G-miner: an efficient task-oriented graph mining system | |
US9459850B2 (en) | Adaptive cloud aware just-in-time (JIT) compilation | |
Harman et al. | Cloud engineering is search based software engineering too | |
CN102754104B (zh) | 在相关计算系统之间共享计算操作结果的系统和方法 | |
Shabestari et al. | A taxonomy of software-based and hardware-based approaches for energy efficiency management in the Hadoop | |
CN102999369A (zh) | 虚拟机升级的方法及装置 | |
US9275201B2 (en) | Execution-based license discovery and optimization | |
da Silva et al. | Characterizing, modeling, and accurately simulating power and energy consumption of i/o-intensive scientific workflows | |
Grzesik et al. | Comparative analysis of time series databases in the context of edge computing for low power sensor networks | |
Zhang et al. | Making sense of performance in in-memory computing frameworks for scientific data analysis: A case study of the spark system | |
Kathiresan et al. | Accelerating next generation sequencing data analysis with system level optimizations | |
Merceedi et al. | A comprehensive survey for hadoop distributed file system | |
CN114691050B (zh) | 基于kubernetes的云原生存储方法、装置、设备及介质 | |
CN103064723B (zh) | 虚拟机器存储器的鉴识方法与计算机系统 | |
Authmann et al. | VAT: a system for visualizing, analyzing and transforming spatial data in science | |
Choi et al. | Interference-aware co-scheduling method based on classification of application characteristics from hardware performance counter using data mining | |
Ferreira da Silva et al. | Accurately simulating energy consumption of I/O-intensive scientific workflows | |
CN112860506B (zh) | 监控数据的处理方法、装置、系统和存储介质 | |
Xiong et al. | ShenZhen transportation system (SZTS): a novel big data benchmark suite | |
West et al. | A hybrid approach to processing big data graphs on memory-restricted systems | |
US9032405B2 (en) | Systems and method for assigning executable functions to available processors in a multiprocessing environment | |
US20220343115A1 (en) | Unsupervised classification by converting unsupervised data to supervised data | |
TWI444824B (zh) | 虛擬機器記憶體的鑑識方法與電腦系統 | |
Kumaraswamy et al. | Saving Energy Using the READEX Methodology | |
CN111831609B (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 |