輕量級虛擬機(jī)的多平臺擴(kuò)展
發(fā)布時間:2020-07-06 18:30
【摘要】:隨著移動設(shè)備的迅猛發(fā)展,手機(jī)設(shè)備在未來會發(fā)揮越來越重要的作用,目前很多移動設(shè)備的處理器使用的都是ARM架構(gòu),因此在此平臺上擴(kuò)展虛擬化技術(shù)有十分重要的意義。本課題研究將虛擬化技術(shù)擴(kuò)展到ARM平臺上,主要探討基于XenARM的架構(gòu),在ARM平臺上設(shè)計并實(shí)現(xiàn)一種輕量級的虛擬機(jī)。該系統(tǒng)基本實(shí)現(xiàn)了CPU、內(nèi)存、中斷的虛擬化,實(shí)現(xiàn)了部分驅(qū)動的虛擬化,并且實(shí)現(xiàn)了Android和mini-os的虛擬化,使它們能夠同時運(yùn)行在Android模擬器模擬的goldfish平臺上。 ARM虛擬化的設(shè)計與實(shí)現(xiàn)主要分兩個部分。其中,第一部分也是核心部分是Hypervisor的設(shè)計與實(shí)現(xiàn),包括實(shí)現(xiàn)在模擬器中啟動運(yùn)行Hypervisor,實(shí)現(xiàn)在Hypervisor中啟動客戶操作系統(tǒng),實(shí)現(xiàn)CPU特權(quán)級的模擬,實(shí)現(xiàn)Hypervisor和DomainU的內(nèi)存分配,實(shí)現(xiàn)虛擬中斷的傳遞,以及實(shí)現(xiàn)資源的共享與隔離。第二部分是Android操作系統(tǒng)的虛擬化,這一部分主要描述了Android內(nèi)核的修改,修改的目的主要是使其支持ARM虛擬化的機(jī)制并且能夠很好的與底層的Hypervisor進(jìn)行交互,Android虛擬化也主要包括CPU的虛擬化、內(nèi)存的虛擬化、中斷的虛擬化與設(shè)備的虛擬化。 最終實(shí)現(xiàn)了在Android模擬器上同時運(yùn)行兩個個操作系統(tǒng)(Android和mini-os),測試表明兩個操作系統(tǒng)能夠穩(wěn)定的運(yùn)行在虛擬化環(huán)境下,并且性能較未虛擬化時并沒有明顯的損失。
【學(xué)位授予單位】:華中科技大學(xué)
【學(xué)位級別】:碩士
【學(xué)位授予年份】:2011
【分類號】:TP302;TP391.9
【圖文】:
圖2.1ARM的內(nèi)存塊映射在初始化的過程中,Hypervisor將0xFF000000到0xFF200000的虛擬地址空間映射了0x0到0x200000的物理內(nèi)存空間上,訪問權(quán)限是內(nèi)核態(tài)可讀可寫,用戶態(tài)不可讀可寫,這樣做之后Hypervisor擁有特權(quán)可以通過高端虛擬地址訪問到物理內(nèi)存前B。同時,Hypervisor將0x0到0x6000000的虛擬地址空間映射到了0x0到0x6000000物理內(nèi)存空間上,訪問權(quán)限是內(nèi)核態(tài)可讀可寫,用戶態(tài)不可讀不可寫,這樣做是了讓Hypervisor能夠暫時通過低端虛擬地址的訪問到所有的物理內(nèi)存(實(shí)際上在啟Domain之后,這一段的內(nèi)存塊映射會被清除)。另外Hypervisor還將0xF0000000到F0800000的虛擬地址空間映射到了0xFF000000到0xFF800000的物理內(nèi)存空間上,問權(quán)限是內(nèi)核態(tài)可讀可寫,用戶態(tài)可讀可寫,在ARM平臺上,訪問I/O和訪問內(nèi)存樣是通過內(nèi)存地址來訪問的,而在goldfish平臺上,0xFF000000到0xFF800000是設(shè)I/O端口所對應(yīng)的物理地址,于是這段映射就是I/O端口的映射。另外Hypervisor的頁目錄是存放在物理地址的0xC000處,因?yàn)锳RM的頁式尋址方式與x86略有不同,ARM系統(tǒng)的一張頁目錄表的大小是16KB,所以在Hypervisor
12圖2.1ARM的內(nèi)存塊映射在初始化的過程中,Hypervisor將0xFF000000到0xFF200000的虛擬地址空間映射到了0x0到0x200000的物理內(nèi)存空間上,訪問權(quán)限是內(nèi)核態(tài)可讀可寫,用戶態(tài)不可讀不可寫,這樣做之后Hypervisor擁有特權(quán)可以通過高端虛擬地址訪問到物理內(nèi)存前2MB。同時,Hypervisor將0x0到0x6000000的虛擬地址空間映射到了0x0到0x6000000的物理內(nèi)存空間上,訪問權(quán)限是內(nèi)核態(tài)可讀可寫,用戶態(tài)不可讀不可寫,這樣做是為了讓Hypervisor能夠暫時通過低端虛擬地址的訪問到所有的物理內(nèi)存(實(shí)際上在啟動Domain之后,這一段的內(nèi)存塊映射會被清除)。另外Hypervisor還將0xF0000000到0xF0800000的虛擬地址空間映射到了0xFF000000到0xFF800000的物理內(nèi)存空間上,訪問權(quán)限是內(nèi)核態(tài)可讀可寫
15圖2.3 物理內(nèi)存分布圖其中,bitmap中的每一個bit對應(yīng)一個物理頁,每個物理頁大小為4KB,每次Hypervisor需要分配或者釋放某個物理頁時都會修改相應(yīng)的bit位。每個Page_info數(shù)據(jù)結(jié)構(gòu)對應(yīng)一個物理頁,物理頁的基本信息都可以從這個數(shù)據(jù)結(jié)構(gòu)中獲取。Hypervisor中的heap是一組指向空閑物理頁對應(yīng)的Page_info數(shù)據(jù)結(jié)構(gòu)的指針,指向與空閑內(nèi)存相關(guān)的鏈表,比如heap[x][y],x代表的是域(屬于Hypervisor還是DomainU)
本文編號:2743979
【學(xué)位授予單位】:華中科技大學(xué)
【學(xué)位級別】:碩士
【學(xué)位授予年份】:2011
【分類號】:TP302;TP391.9
【圖文】:
圖2.1ARM的內(nèi)存塊映射在初始化的過程中,Hypervisor將0xFF000000到0xFF200000的虛擬地址空間映射了0x0到0x200000的物理內(nèi)存空間上,訪問權(quán)限是內(nèi)核態(tài)可讀可寫,用戶態(tài)不可讀可寫,這樣做之后Hypervisor擁有特權(quán)可以通過高端虛擬地址訪問到物理內(nèi)存前B。同時,Hypervisor將0x0到0x6000000的虛擬地址空間映射到了0x0到0x6000000物理內(nèi)存空間上,訪問權(quán)限是內(nèi)核態(tài)可讀可寫,用戶態(tài)不可讀不可寫,這樣做是了讓Hypervisor能夠暫時通過低端虛擬地址的訪問到所有的物理內(nèi)存(實(shí)際上在啟Domain之后,這一段的內(nèi)存塊映射會被清除)。另外Hypervisor還將0xF0000000到F0800000的虛擬地址空間映射到了0xFF000000到0xFF800000的物理內(nèi)存空間上,問權(quán)限是內(nèi)核態(tài)可讀可寫,用戶態(tài)可讀可寫,在ARM平臺上,訪問I/O和訪問內(nèi)存樣是通過內(nèi)存地址來訪問的,而在goldfish平臺上,0xFF000000到0xFF800000是設(shè)I/O端口所對應(yīng)的物理地址,于是這段映射就是I/O端口的映射。另外Hypervisor的頁目錄是存放在物理地址的0xC000處,因?yàn)锳RM的頁式尋址方式與x86略有不同,ARM系統(tǒng)的一張頁目錄表的大小是16KB,所以在Hypervisor
12圖2.1ARM的內(nèi)存塊映射在初始化的過程中,Hypervisor將0xFF000000到0xFF200000的虛擬地址空間映射到了0x0到0x200000的物理內(nèi)存空間上,訪問權(quán)限是內(nèi)核態(tài)可讀可寫,用戶態(tài)不可讀不可寫,這樣做之后Hypervisor擁有特權(quán)可以通過高端虛擬地址訪問到物理內(nèi)存前2MB。同時,Hypervisor將0x0到0x6000000的虛擬地址空間映射到了0x0到0x6000000的物理內(nèi)存空間上,訪問權(quán)限是內(nèi)核態(tài)可讀可寫,用戶態(tài)不可讀不可寫,這樣做是為了讓Hypervisor能夠暫時通過低端虛擬地址的訪問到所有的物理內(nèi)存(實(shí)際上在啟動Domain之后,這一段的內(nèi)存塊映射會被清除)。另外Hypervisor還將0xF0000000到0xF0800000的虛擬地址空間映射到了0xFF000000到0xFF800000的物理內(nèi)存空間上,訪問權(quán)限是內(nèi)核態(tài)可讀可寫
15圖2.3 物理內(nèi)存分布圖其中,bitmap中的每一個bit對應(yīng)一個物理頁,每個物理頁大小為4KB,每次Hypervisor需要分配或者釋放某個物理頁時都會修改相應(yīng)的bit位。每個Page_info數(shù)據(jù)結(jié)構(gòu)對應(yīng)一個物理頁,物理頁的基本信息都可以從這個數(shù)據(jù)結(jié)構(gòu)中獲取。Hypervisor中的heap是一組指向空閑物理頁對應(yīng)的Page_info數(shù)據(jù)結(jié)構(gòu)的指針,指向與空閑內(nèi)存相關(guān)的鏈表,比如heap[x][y],x代表的是域(屬于Hypervisor還是DomainU)
【參考文獻(xiàn)】
相關(guān)期刊論文 前5條
1 曾偉,孫曉玲;SIP協(xié)議的現(xiàn)狀及應(yīng)用[J];電信快報;2002年05期
2 王經(jīng)坤,艾興,張進(jìn)生,黃克正;虛擬產(chǎn)品開發(fā)技術(shù)的理論體系研究[J];計算機(jī)工程;2003年03期
3 董耀祖;周正偉;;基于X86架構(gòu)的系統(tǒng)虛擬機(jī)技術(shù)與應(yīng)用[J];計算機(jī)工程;2006年13期
4 楊少春;;采用VMware構(gòu)建虛擬并行計算網(wǎng)[J];計算機(jī)工程與設(shè)計;2006年14期
5 劉愛軍;耿國華;;基于x86的虛擬機(jī)技術(shù)現(xiàn)狀、應(yīng)用及展望[J];計算機(jī)技術(shù)與發(fā)展;2007年11期
本文編號:2743979
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/2743979.html
最近更新
教材專著