軟件工程視角下基于LXC的多系統虛擬化環境研究與實現

來源: www.485230.live 作者:vicky 發布時間:2020-02-22 論文字數:41205字
論文編號: sb2020020214524729399 論文語言:中文 論文類型:碩士畢業論文
本文是一篇軟件工程論文,本文設計并實現了基于 LXC 的多系統虛擬化的實現方案,這個方案中通過共享內核的虛擬化方式大大降低了虛擬化的性能消耗問題,同時該方案主要是對用戶層的 Andr
本文是一篇軟件工程論文,本文將運用虛擬化的技術,利用虛擬化帶來的隔離性來解決 Android 上的存在的安全問題,對現有的虛擬化技術與方案進行研究與分析,提出能夠在 Android系統中實現的多系統虛擬化方案。虛擬化技術可以提供一個與外界隔離的獨立空間,將應用置于虛擬系統環境中運行,可以保證其無法破壞到宿主機系統,也無法獲取到宿主機的信息,這樣就可以有效的防止了惡意程序對于 Android 系統的威脅,保證用戶數據的安全性。

第一章  緒論

1.1研究背景與意義
隨著移動互聯網的迅速發展,智能手機已普遍存在于人們的日常生活中。由于Android 系統的開源性,越來越多的廠商投入到 Android 設備的生產中[1],這些廠商根據自身的硬件對 Android 系統進行定制,這使得 Android 系統不斷優化升級,用戶體驗也越來越好,而 Android 應用開發的從業者也越來越多,因此更多的精品 Android應用被開發出來,Android 應用市場越來越豐富,使用 Android 系統的用戶也因此變得越來越多,在移動智能設備中,主要分為蘋果的 IOS 系統與谷歌的 Android 系統,而 Android 系統的市場占有率是最大的,而這也使得對 Android 研究成為現今的一個研究熱點。
現今,人們除了使用手機的通話與短信功能外,大部分的用戶都有自己的微信與支付寶,都會在手機上發紅包與轉賬付款,這些操作都會涉及到用戶的敏感數據。由于 Android 系統開放性的特點,它的源碼是公開的,任何人都可以在谷歌的官網上下載 Android 系統與 Android 內核的源代碼。惡意軟件的開發人員通過研究 Android 系統的代碼,挖掘其中的漏洞[2],然后利用這些漏洞制造出惡意軟件。當這些惡意軟件運行在用戶手機上以后,不單單可以獲取到用戶手機的敏感信息[3],還有可能偷竊到用戶的支付賬號與密碼,威脅到用戶的財產安全,因此越來越多的人關注 Android 系統的安全性問題。
Android 系統自帶了對軟件權限控制的功能,但是一般的用戶沒有這些權限的概念,這就讓一些惡意軟件有機可乘,當用戶默認允許這些應用軟件的所有權限以后[4],獲得了用戶手機控制權的這些軟件就可以控制用戶手機的所有的功能,隨意的獲取用戶的信息,控制手機的各種行為,這樣存儲在手機中的用戶信息就會被這些軟件全部竊取到。
因此,本文將運用虛擬化的技術,利用虛擬化帶來的隔離性來解決 Android 上的存在的安全問題,對現有的虛擬化技術與方案進行研究與分析,提出能夠在 Android系統中實現的多系統虛擬化方案。虛擬化技術可以提供一個與外界隔離的獨立空間,將應用置于虛擬系統環境中運行,可以保證其無法破壞到宿主機系統,也無法獲取到宿主機的信息,這樣就可以有效的防止了惡意程序對于 Android 系統的威脅,保證用戶數據的安全性。
.........................

1.2  國內外研究現狀
在傳統的 PC 設備中,對多系統虛擬化的研究已經比較完備,由于移動設備平臺的特殊性,在移動平臺上實現虛擬化不但要考慮系統功能的完整性還要考慮虛擬化的消耗的性能問題與硬件多樣的的問題,一般的虛擬化方案在移動平臺上都難以實現。本文詳細介紹了幾個可用的移動平臺的虛擬化技術與一些對移動平臺的研究。
1.2.1  國外研究現狀
國外對移動平臺的虛擬化研究起步較早,研究比較深入,已經有一些嵌入式設備的虛擬化方案,而這些研究成果中比較值得本文關注的有下面的一些:Xen-ARM 開源平臺[5],NOVA[7]與 Cells[8]系統。
(1)  Xen-ARM 開源平臺
Xen 是由劍橋大學計算機實驗室開發的一個開源項目,其目的是為了在一個計算機中運行多個滿特征的操作系統[8]。一般移動設備的處理器都是ARM架構,Xen-ARM是 Android 系統虛擬化中的一個解決方案。Xen 的實現主要由下面的三個組建構成:Xen Hypervisor,Domain 0 與 Domain U。其中 Xen Hypervisor 運行在硬件設備和軟件之間,負責為運行在硬件設備上的虛擬機分配 CPU 與內存資源。Xen Hypervisor 不單單是硬件設備的抽象接口,同時也可以控制虛擬機的執行,讓各個虛擬機之間共享硬件設備,但是 Xen  Hypervisor 不會處理網絡,外部存儲設備與 I/O 等通用設備硬件。在 Xen環境中,每一個虛擬機成為一個 Domain。而 Domain 0 則是一個特殊的虛擬機,它是一個經過修改的 Linux 內核,是運行在 Xen Hypervisor 上的特殊的虛擬機,擁有網絡,外部存儲設備與 I/O 等通用設備硬件的訪問權限,并且可以與其他的運行在Xen Hypervisor[10]之上的其他虛擬機進行交互,在整個虛擬化方案中擔任管理員角色,負責管理網絡與 I/O 設備。Domain  U 則是客戶虛擬機,沒有直接訪問物理硬件的權限。通過與 Domain 0 和 Xen Hypervisor 的通信獲取硬件資源。
.........................

第二章  虛擬化理論與關鍵技術

2.1虛擬化技術研究
虛擬化技術[16]是一種資源管理技術,它將網絡、內存及計算資源等進行抽象然后轉換呈現出來,打破了實體結構中不可分割的局限,將資源比原本更好的組織性形態進行分配。通過虛擬化技術構建出來的多系統環境,可以顯著的提高計算機的工作效率,總的來講虛擬化技術是將底層的資源進行分配,給上層提供特定的運行環境。操作系統的虛擬化主要可以分為下面四種方案[17],分別是全虛擬化、半虛擬化、硬件輔助虛擬化和操作系統的虛擬化。
2.1.1全虛擬化
全虛擬化的虛擬化方案是將底層的硬件進行完全模擬,這些硬件包括了 CPU 指令集、I/O 操作、中斷和內存管理[18],整個方案的架構如圖 2.1 所示。
圖2.1 全虛擬化結構圖
在圖 2.1 中可以將全虛擬化分為兩個部分,其中宿主系統與硬件運行在 Ring0 狀態中,VMM(Virtual Machine Monitor)監視管理器與虛擬機(Guest OS)運行在 Ring3狀態中。Intel 在設計 CPU 特權級別[19]的時候,分為了 Ring0、Ring1、Ring2 與 Ring3四個級別,數字越低級別越高,目前 PC 中使用最多的兩個操作系統是 Windows 與Linux,這個兩個操作系統都只用了 X86 架構 CPU 中的兩個權級,Ring0 與 Ring3,操作系統的內核運行在 Ring0 特權級中,而普通的用戶程序運行在 Ring3 特權級中,因此,通常會把 Ring0 稱為核心態,而 Ring3 稱為用戶態。在全虛擬化的架構圖中,虛擬機運行在 VMM 模擬的硬件環境中,而 VMM 則要對虛擬機的所有硬件請求進行分析,然后在宿主系統中執行,由于 VMM 的存在,上層的虛擬機可以運行大部分類型的操作系統,不受底層硬件所限制,同時上層的虛擬機認為自己是獨占所有的硬件資源,這跟運行在單臺物理機上的效果是一樣的,因此不需要對虛擬機的操作系統做任何的修改,當虛擬機要執行某些特權指令的時候,因為在用戶態運行的虛擬機發出的特權指令代碼是不能直接運行在核心態的,所以 VMM 就需要將這些這些特權指令進行二進制翻譯,這個過程其實就是 VMM 對虛擬機要執行的特權二進制代碼,翻譯成運行在核心態的特權指令二進制代碼或者利用用戶態的非特權指令模擬該特權指令。由上面的分析可知,這種虛擬化技術的優點是不需要對虛擬機做任何的修改,易于部署,但是所有的特權指令都由 VMM 來進行模擬或者翻譯,并且 VMM 還需要對虛擬機進行管理,該方案的虛擬化的消耗大部分都來自于 VMM 對指令的轉換與模擬。
............................

2.2  LXC 容器技術的研究
2.2.1  LXC 容器技術概述
LXC(Linux container)[28]是一種利用容器技術實現的操作系統級虛擬化技術.它利用單個 Linux 內核運行多個隔離的 Linux 系統(容器),來自于 Sourceforge 網站上的一個開源項目,與普通的操作系統級的虛擬方案類似,LXC 的實現不需要動態翻譯操作指令,通過內核提供的功能實現數據的隔離。
LXC 工具提供了用戶空間的軟件包,用于創建和管理容器。提供的常見的工具集如表 2.1 所示。
表2.1 LXC常用命令表
LXC 的實現依賴 Linux 內核中 Cgroups 與 Namespaces 特性,而 Cgroups 與Namespaces 這兩個內核特性都已經加入到內核主線當中,對于任何的 Linux 系統,只需要開啟相關的內核特性就可以使用 LXC 的功能。
............................
第三章  Android 多系統虛擬化環境研究 ..................... 15
3.1  問題分析 ............................. 15
3.2Android 虛擬化分析 ............................... 16
第四章  Android 系統虛擬化實現方案 ....................................... 23
4.1多系統虛擬化架構 ........................................ 23
4.2Android 通信系統的虛擬化 ................................ 25
第五章  虛擬化環境的測試與分析 ........................................ 37
5.1系統測試環境 .................................... 37
5.2功能測試 ................................... 38

第五章  虛擬化環境的測試與分析

5.1系統測試環境
為了方便系統的實現,本文選擇了 Galaxy  Nexus 手機作為本系統的實驗平臺。該手機是由三星代工的谷歌手機。因為該手機的品牌為谷歌的,而谷歌開源旗下所有Android 設備的內核,系統與驅動的源代碼,因此可以在官網上下載到該手機的相關源代碼。本系統測試的手機硬件參數如表 5.1 所示。
表5.1 實驗手機參數表
實驗機的內核代號為 OMAP,CPU 架構的代號為 maguro,該手機 CPU 是由德州儀器生產,雙核主頻為 1.2GHz 的。首先需要從谷歌的官網上,利用 git 工具下載 OMAP分 支 的 內 核 源 代 碼 。 獲 取 到 源 代 碼 以 后 , 選 擇 的 git 版 本 分 支 為android-omap-tuna-3.0-jb-mr2。這個分支編譯出來的內核版本是 3.0.72,對應的 Android系統的版本是 4.3,使用的 LXC 工具版本是 2.0.7。考慮到本系統所使用的測試機的CPU 為 1.2GHz 的雙核 CPU,內存只有 694MB。因此計劃在實驗機中同時運行兩個Android 系統,分別是宿主系統與一個容器系統。
.........................

第六章  結束語

隨著現在移動互聯網的興起,人們在智能手機設備中使用的時間已經大大超過了普通的桌面 PC 的使用時間。這些移動智能手機擁有購物,娛樂,學習,通信等各種各樣的功能,各式各樣的應用也層出不窮,隨著科技的發展不斷的升級,運算能力變得越來越強,功能也越來越多。這些移動智能設備中,有一大部分是使用的 Android作為系統的。針對 Android 系統中存在的安全性問題,將虛擬化技術引入 Android 系統中,這樣既可以利用虛擬化帶了的隔離性解決用戶隱私數據被竊取的問題,也可以通過虛擬化充分利用硬件設備資源。本文設計并實現了基于 LXC 的多系統虛擬化的實現方案,這個方案中通過共享內核的虛擬化方式大大降低了虛擬化的性能消耗問題,
同時該方案主要是對用戶層的 Android 系統代碼進行修改,不涉及硬件的修改,減少不同Android硬件中的移植工作,可移植性較好。本文的主要工作有下面的幾個方面。
(1)對當前智能移動設備的虛擬化技術進行研究,分析這些技術的實現原理,為本文的虛擬化方案提供思路。對不同類型虛擬化方方案進行研究,分析每種虛擬化方案的實現細節與優劣,對 LXC 容器技術進行研究,分析其實現的原理。
(2)針對 Android 系統的特點進行虛擬化實現的分析,分析不同的虛擬化難度與可行性,本文提出了基于 LXC 的多系統虛擬化方案,該方案通過使用 LXC 工具在Android系統中構建出互相隔離的內核容器環境,這些容器共享同一個Android內核,通過 Linux 內核特性實現軟硬件資源的控制隔離,然后在這些互相獨立的容器環境中,啟動 Android 系統,實現多系統的虛擬化。
(3)本文對 Android 系統中的通信,輸入與顯示系統的工作原理進行詳細的分析,提出相應子系統的的虛擬化方案,解決多系統同時運行時的沖突問題,實現了硬件資源的復用。
(4)對本文提出的方案在真實的移動設備中實現并進行功能與性能的測試,從多個維度對設備進行測試,驗證本方案的可行性。
參考文獻(略)


原文地址:http://www.485230.livehttp://www.485230.live/fanwen/rjgc/29399.html,如有轉載請標明出處,謝謝。

您可能在尋找軟件工程論文方面的范文,您可以移步到軟件工程論文頻道(http://www.485230.livehttp://www.485230.live/fanwen/rjgc/)查找


上一篇:Spark框架性能預測與優化技術的軟件工程研究與實現
下一篇:沒有了
保本型理财产品