TW201317780A - 虛擬機器記憶體的鑑識方法與電腦系統 - Google Patents

虛擬機器記憶體的鑑識方法與電腦系統 Download PDF

Info

Publication number
TW201317780A
TW201317780A TW100143979A TW100143979A TW201317780A TW 201317780 A TW201317780 A TW 201317780A TW 100143979 A TW100143979 A TW 100143979A TW 100143979 A TW100143979 A TW 100143979A TW 201317780 A TW201317780 A TW 201317780A
Authority
TW
Taiwan
Prior art keywords
operating system
memory
virtual machine
file
version
Prior art date
Application number
TW100143979A
Other languages
English (en)
Other versions
TWI444824B (zh
Inventor
Han-Lin Li
Jui-Hao Chiang
Tzi-Cker Chiueh
Original Assignee
Ind Tech Res Inst
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 Ind Tech Res Inst filed Critical Ind Tech Res Inst
Priority to CN201110430084.9A priority Critical patent/CN103064723B/zh
Priority to US13/337,301 priority patent/US8539461B2/en
Publication of TW201317780A publication Critical patent/TW201317780A/zh
Application granted granted Critical
Publication of TWI444824B publication Critical patent/TWI444824B/zh

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Stored Programmes (AREA)

Abstract

一種虛擬機器記憶體的鑑識方法,用於在執行至少一虛擬機器的電腦系統上,且虛擬機器上執行一作業系統。此鑑識方法包括以下步驟。取得上述作業系統的核心檔案,此核心檔案中包括此作業系統的版本資訊。根據此版本資訊取得作業系統的原始碼與設定檔。原始碼與設定檔的版本符合作業系統的版本。根據上述設定檔將固定介面函式與原始碼一起編譯以產生物件檔。根據物件檔來鑑識虛擬機器上的記憶體頁面。另外,一種使用上述鑑識方法的電腦系統亦被提出。

Description

虛擬機器記憶體的鑑識方法與電腦系統
本揭露是有關於一種適用於各種作業系統版本的虛擬機器記憶體鑑識方法與其電腦系統。
隨著電腦硬體裝置的成本越來越降低以及大型伺服器的需求越來越高,虛擬機器(Virtual Machine)也越來越被重視。虛擬機器為一種介面,應用於一軟體與電腦系統之間,並可提供此電腦系統的各種資源給上述軟體使用。此軟體通常為一作業系統,因此,作業系統可以透過虛擬機器來存取電腦系統上的資源。然而,在一電腦系統上可以安裝多個虛擬機器,每個虛擬機器上可安裝不同的作業系統。舉例來說,微軟的windows作業系統與linux作業系統便可同時安裝在一個電腦系統上不同的虛擬機器中。
由於虛擬機器上作業系統與電腦系統之間的耦合關係已被鬆綁,且作業系統管理著虛擬機器上的記憶體頁面,因此從電腦系統上的虛擬機器監控程序(virtual machine monitor,VMM)不容易取得虛擬機器上記憶體頁面的使用狀態。但在一些應用之中,這些虛擬機器上記憶體頁面的存取卻是必要的。例如,要分享不同虛擬機器上的記憶體頁面時,需要偵測這些記憶體頁面的使用狀態,或者是要偵測此作業系統是否已被網路病毒所入侵時,需要從虛擬機器的層級來鑑識這些記憶體頁面所儲存的資料是否是可信任的。一種作法是將作業系統的版本資訊寫入至VMM,並根據此版本資訊來分析虛擬機器上的記憶體頁面。但如此一來,當作業系統的版本更新時或者是新的作業系統與虛擬機器從其他電腦系統上搬移過來時,將必須手動的更新作業系統的版本資訊,非常耗時。因此如何研發出一個能適用於各種作業系統版本的虛擬機器記憶體鑑識方法,為此領域研究人員所關心的問題。
本揭露提供一種虛擬機器記憶體的鑑識方法,能適用於各種作業系統版本。
本揭露提供一種電腦裝置,能鑑識虛擬機器的記憶體並適用於各種作業系統版本。
本揭露提供一種虛擬機器記憶體的鑑識方法,用於執行在至少一虛擬機器的電腦系統上且虛擬機器上執行一作業系統。此鑑識方法包括以下步驟。取得上述作業系統的核心檔案,此核心檔案中包括此作業系統的版本資訊。根據此版本資訊取得作業系統的至少一原始碼與設定檔。原始碼與設定檔的版本符合作業系統的版本。根據上述設定檔將固定介面函式與原始碼一起編譯以產生至少一物件檔。根據物件檔來鑑識虛擬機器上的記憶體頁面。
以另外一個角度來說,本揭露提出一種電腦系統,用於執行至少一虛擬機器,且虛擬機器上執行一作業系統。此電腦系統包括一記憶單元、一作業系統版本控制單元、以及一處理單元。記憶單元包括了多個實體記憶體頁面。而作業系統版本控制單元耦接至記憶單元,用以取得作業系統的核心檔案,此核心檔案包括作業系統的版本資訊。並且,作業系統版本控制單元根據此版本資訊取得作業系統的至少一原始碼與設定檔,此原始碼與設定檔的版本符合作業系統的版本。以及,作業系統版本控制單元根據上述設定檔將固定介面函式與上述原始碼一起編譯以產生至少一物件檔。處理單元耦接至上述記憶單元與作業系統版本控制單元,用以根據上述物件檔鑑識虛擬機器上的記憶體頁面。
基於上述,本揭露提出一種虛擬機器記憶體的鑑識方法與電腦系統,其根據作業系統的版本取得此版本的作業系統原始碼與設定檔,並根據此設定檔將此原始碼與一固定介面函式一起編譯,使得所產生的物件檔擁有當前作業系統版本的資訊。如此一來,本揭露便可適用於不同版本的作業系統並能鑑識虛擬機器上的記憶體頁面。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1為依照本揭露一實施例所繪示的電腦系統方塊圖。
請參照圖1,電腦系統100包括一記憶單元140、一作業系統版本控制單元160、以及一處理單元180。
記憶單元140包含了多個實體記憶體頁面142。記憶單元140例如為動態隨機存取記憶體(Dynamic Random Access Memory,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 physical address),而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是使用對偶式記憶體管理演算法(Buddy System Algorithm)來管理空閒的記憶體頁面,在此稱空閒的記憶體頁面為空閒頁(free page)。為了避免空閒頁的記憶體位置不連續,連續的空閒頁會被分為一個群組,且群組的大小為2的次方(例如,32或64)。每個群組的第一個記憶體頁面為對偶頁面(buddy page),並使用一個名為private的欄位來存放此群組大小的資訊。舉例來說,若一群組中對偶頁面裡private欄位的數值是n,則表示此群組包含了2n個連續的空閒頁。因此,VMM 22可以藉由鑑識每一群組的對偶頁面來取得作業系統記憶體的空閒頁資料結構。然而,如果Linux作業系統的版本不同,則必需讀取不同的欄位來鑑識一記憶體頁面是否為對偶頁面。舉例來說,記憶體映射圖254為上述的mem_map的陣列資料結構,陣列中的一元素對應至一記憶體頁面242,要判斷此記憶體頁面是否為對偶頁面則需要查詢對應的元素裡所存放的資料。在比版本2.6.18舊的Linux作業系統版本中,若此元素中flags欄位的第19個位元為1,則此記憶體頁面為對偶頁面;但若在版本2.6.38中,必須查詢此元素中另一個名為_mapcount的欄位來判斷此記憶體頁面是否為對偶頁面。
在一實施例中作業系統260與作業系統250為windows作業系統,而在windows作業系統中是根據名為Zeroed的頁面清單來存放所有空閒的記憶體頁面。而記憶體映射圖264為頁框值資料庫(page frame number database,PFN database)。而頁框值資料庫為陣列型態的資料結構,此陣列的每一個元素包括”Type”欄位,用以記錄對應的一個記憶體頁面232的使用狀態,也就是說”Type”欄位紀錄者此記憶體頁面是否被放入Zeroed頁面清單。然而,在不同的windows版本中,上述”Type”欄位裡資料的存放方式並不完全一樣。因此VMM 22必須擁有作業系統版本的資訊才可以分析上述”Type”欄位,並進而鑑識虛擬機繼上的記憶體頁面。
簡單來說,當作業系統260與作業系統250中記憶體模式的設定不同時,記憶體映射圖264與記憶體映射圖254的資料結構會不同。而即使記憶體映射圖264與記憶體映射圖254的資料結構相同,當作業系統260與作業系統250的版本不相同時,也必須用不同的方式來讀取記憶體映射圖264與記憶體映射圖254中的欄位資訊來鑑識記憶體頁面232與記憶體頁面242。
然而,在不同版本的Linux作業系統之中,皆提供了一個名為int PageBuddy(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)的函式,其中呼叫了函式int PageBuddy(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中的int GFN_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。詳細步驟已描述如上,在此便不再贅述。
綜上所述,在本揭露中,虛擬機器記憶體的鑑識方法可根據電腦系統的作業系統版本取得相對應的原始碼,因此所產生的物件檔包含有當前作業系統版本的資訊,並且物件檔中函式名稱為固定。因此當作業系統版本改變時,只要重新產生物件檔,便可呼叫同樣的函式名稱,以藉此在當前作業系統版本下,鑑識虛擬機器的記憶體頁面。也就是說,使用者面對不同版本的作業系統或是當作業系統的版本更換時,不需要手動去調整任何程式碼。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
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為依照本揭露一實施例所繪示的電腦系統方塊圖。
圖2為依照本揭露一實施例所繪示的電腦系統與虛擬機器的示意圖。
圖3為依照本發明一實施例所繪示的記憶體鑑識方法的流程圖。
圖4為依照本揭露一實施例說明適用於各作業系統版本的物件檔編譯流程的示意圖。
圖5為依照本揭露一實施例所繪示的固定介面函式440的程式碼。
圖6為依照本揭露一實施例所繪示的副程式480的程式碼。
S302、S304、S306、S308...虛擬機器記憶體鑑識方法的步驟

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*)函式。
TW100143979A 2011-10-18 2011-11-30 虛擬機器記憶體的鑑識方法與電腦系統 TWI444824B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201110430084.9A CN103064723B (zh) 2011-10-18 2011-12-20 虚拟机器存储器的鉴识方法与计算机系统
US13/337,301 US8539461B2 (en) 2011-10-18 2011-12-27 Method for identifying memory of virtual machine and computer system thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201161548697P 2011-10-18 2011-10-18

Publications (2)

Publication Number Publication Date
TW201317780A true TW201317780A (zh) 2013-05-01
TWI444824B TWI444824B (zh) 2014-07-11

Family

ID=48871914

Family Applications (2)

Application Number Title Priority Date Filing Date
TW100143979A TWI444824B (zh) 2011-10-18 2011-11-30 虛擬機器記憶體的鑑識方法與電腦系統
TW100145074A TWI452468B (zh) 2011-10-18 2011-12-07 虛擬機器記憶體的分享方法與電腦系統

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW100145074A TWI452468B (zh) 2011-10-18 2011-12-07 虛擬機器記憶體的分享方法與電腦系統

Country Status (1)

Country Link
TW (2) TWI444824B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI796515B (zh) * 2018-08-28 2023-03-21 日商Tonoi股份有限公司 資訊處理系統、資訊處理方法、及程式

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9792222B2 (en) * 2014-06-27 2017-10-17 Intel Corporation Validating virtual address translation by virtual machine monitor utilizing address validation structure to validate tentative guest physical address and aborting based on flag in extended page table requiring an expected guest physical address in the address validation structure

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6397242B1 (en) * 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US7257811B2 (en) * 2004-05-11 2007-08-14 International Business Machines Corporation System, method and program to migrate a virtual machine
US7702843B1 (en) * 2006-04-27 2010-04-20 Vmware, Inc. Determining memory conditions in a virtual machine
US8006043B2 (en) * 2008-10-06 2011-08-23 Vmware, Inc. System and method for maintaining memory page sharing in a virtual environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI796515B (zh) * 2018-08-28 2023-03-21 日商Tonoi股份有限公司 資訊處理系統、資訊處理方法、及程式

Also Published As

Publication number Publication date
TWI444824B (zh) 2014-07-11
TW201317781A (zh) 2013-05-01
TWI452468B (zh) 2014-09-11

Similar Documents

Publication Publication Date Title
WO2019140828A1 (zh) 电子装置、分布式系统日志查询方法及存储介质
US8533418B2 (en) Memory allocation with identification of requesting loadable kernel module
US9003239B2 (en) Monitoring and resolving deadlocks, contention, runaway CPU and other virtual machine production issues
US10235074B2 (en) Management processor executing peripheral device registration script
JP7088897B2 (ja) データアクセス方法、データアクセス装置、機器及び記憶媒体
CN112000986A (zh) 数据脱敏方法、装置、设备及存储介质
US11500755B1 (en) Database performance degradation detection and prevention
US20220206803A1 (en) Optimize bound information accesses in buffer protection
CN110442536B (zh) 基于对象的存储器访问中的静态标识
US8910136B2 (en) Generating code that calls functions based on types of memory
CN113032393A (zh) 一种绑定关联对象的方法和装置
CN112100092B (zh) 一种信息缓存方法、装置、设备及介质
KR20120037393A (ko) 소프트웨어 확장 분석
US8539461B2 (en) Method for identifying memory of virtual machine and computer system thereof
KR20210065193A (ko) 독립적인 프로세서들을 갖는 컴퓨터 시스템에서 데이터 교환을 위한 범용 포인터
TWI444824B (zh) 虛擬機器記憶體的鑑識方法與電腦系統
CN117149283A (zh) 一种外插卡适配方法、装置、设备及存储介质
JP2014186477A (ja) 情報処理装置、情報処理方法、及び、プログラム
CN112528273B (zh) 医疗数据的探测方法、装置、介质及电子设备
US8635331B2 (en) Distributed workflow framework
US20210240596A1 (en) Source code file retrieval
WO2022089249A1 (zh) 信息采集方法、装置、服务器及存储介质
US10621130B1 (en) Ordering filter drivers in a device stack with filter levels
Fairbrother-Browne et al. ensemblQueryR: fast, flexible and high-throughput querying of Ensembl LD API endpoints in R
JP2022542007A (ja) テスト・ベクタを使用した高水準コンストラクトの最適化の自動検証