嵌入式虛擬化技術(shù)與應(yīng)用:ACRN開源項目實踐
定 價:99 元
叢書名:電子與嵌入式系統(tǒng)設(shè)計叢書
- 作者:王洪波
- 出版時間:2023/10/1
- ISBN:9787111736325
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP338
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
伴隨著物聯(lián)網(wǎng)設(shè)備的指數(shù)級增長,在需要高算力的場景,例如軟件定義汽車駕駛艙、工業(yè)領(lǐng)域的工作負載整合,開源虛擬化技術(shù)在嵌入式系統(tǒng)上受到了越來越多的關(guān)注和應(yīng)用。本書首先介紹虛擬化技術(shù)的基本原理,包括CPU虛擬化、內(nèi)存虛擬化、中斷虛擬化和設(shè)備虛擬化,對比KVM在云服務(wù)器上參考實現(xiàn),重點介紹了開源嵌入式虛擬機ACRN的架構(gòu)設(shè)計、原理和實現(xiàn)。還特別總結(jié)了虛擬化系統(tǒng)的實時性能調(diào)優(yōu)方法和功能安全認證實踐,以及嵌入式虛擬化技術(shù)的典型應(yīng)用場景案例分析。本書作為嵌入式虛擬化技術(shù)入門參考書,通過對ACRN開源軟件的介紹,幫助讀者從代碼開始了解、學習、開發(fā)虛擬機軟件,掌握嵌入式虛擬化技術(shù)并應(yīng)用于工程實踐。
1.英特爾開源軟件技術(shù)中心虛擬化項目組專家力作,本書圍繞嵌入式虛擬化技術(shù)的核心內(nèi)容,詳細解讀Linux基金會開源嵌入式虛擬機ACRN技術(shù)的架構(gòu)、原理和應(yīng)用實現(xiàn)。本書還特別披露和總結(jié)了虛擬化系統(tǒng)的實時性能調(diào)優(yōu)方法和功能安全認證實踐。讀者可以從第一行代碼實現(xiàn)一個x86平臺上的“小身材、大能耐”的嵌入式虛擬機。ACRN開源項目的地址:https://projectacrn.org/。2.讀者通過該書學習,在需要高算力的嵌入式應(yīng)用場景中,基于x86平臺和ACRN虛擬化技術(shù)可以實現(xiàn)工業(yè)領(lǐng)域的工作負載整合或軟件定義汽車智能駕駛艙等應(yīng)用產(chǎn)品。3.本書適合從事嵌入式虛擬化領(lǐng)域開發(fā)的技術(shù)人員,或者任何想了解如何在嵌入式系統(tǒng)上實現(xiàn)虛擬機管理程序的專業(yè)人員。
前 言
嵌入式系統(tǒng)與虛擬化技術(shù)似乎是兩個獨立的技術(shù)領(lǐng)域,沒有交集。但隨著物聯(lián)網(wǎng)設(shè)備的爆炸式增長和萬物互聯(lián)應(yīng)用的快速發(fā)展,嵌入式虛擬化技術(shù)這個跨界創(chuàng)新組合應(yīng)運而生,也越來越受到業(yè)界的關(guān)注和重視。本書將主要回答兩個問題:為什么嵌入式系統(tǒng)需要虛擬化技術(shù)?如何在資源受限的嵌入式系統(tǒng)上實現(xiàn)虛擬化技術(shù)?
為什么嵌入式系統(tǒng)需要虛擬化技術(shù)
因為虛擬化技術(shù)已經(jīng)來到了下一個風口—萬物互聯(lián)時代的虛擬化!
先從虛擬化技術(shù)的發(fā)展歷史說起。虛擬化技術(shù)得益于分時操作系統(tǒng)和PC的蓬勃發(fā)展,現(xiàn)代虛擬化技術(shù)已經(jīng)有了20多年的發(fā)展歷史。而真正催生虛擬化技術(shù)快速部署和發(fā)展的是云時代春天的到來。開源虛擬化技術(shù)和Linux催生了基礎(chǔ)設(shè)施即服務(wù)(Infrastructure as a Service,IaaS),開啟了云計算時代的新篇章。虛擬機可以作為服務(wù),提供一系列獨特優(yōu)勢,例如彈性資源共享、快速部署、廉價方便、集中式IT管理等。這個起始于大型電商的內(nèi)部技術(shù)革新,迅速成長為一種公共服務(wù),構(gòu)成了云計算時代的基礎(chǔ)。云計算技術(shù)的發(fā)展使得作為標準化產(chǎn)品的虛擬機作為服務(wù)走入“尋常百姓家”。目前各大云服務(wù)廠商都不約而同地切換到基于KVM技術(shù)的云架構(gòu)上,并發(fā)展出各種各樣的應(yīng)用技術(shù)。
進入新世紀后,計算機領(lǐng)域出現(xiàn)了另一個新的虛擬化應(yīng)用場景—萬物互聯(lián),進一步促進了虛擬化技術(shù)的應(yīng)用落地和發(fā)展。萬物互聯(lián)是把百億級別的嵌入式設(shè)備整合在一起,并通過云連接起來。虛擬化技術(shù)因此在嵌入式領(lǐng)域得到廣泛的應(yīng)用,以此整合各種單一功能設(shè)備,通過共同的網(wǎng)絡(luò)接口接入互聯(lián)網(wǎng),構(gòu)建更加高效、低成本的萬物互聯(lián)系統(tǒng)。這也是實現(xiàn)工業(yè)4.0的必由之路。
促使嵌入式設(shè)備支持虛擬化技術(shù)的原因有如下幾點。第一,隨著半導體技術(shù)的發(fā)展,摩爾定律推動硬件的性能提升,成本下降。今天的嵌入式SoC的性能甚至可能超過了昨天的服務(wù)器。第二,無處不在的CPU多核技術(shù)的發(fā)展自然地能夠支持多個系統(tǒng)。第三是業(yè)務(wù)的負載整合、數(shù)字化互聯(lián)的需求。出于節(jié)約成本考慮,系統(tǒng)整合并重用已有的軟件系統(tǒng),降低移植工作量,減少硬件系統(tǒng)的互連,降低整體硬件系統(tǒng)的復雜度,可以把多個 “異構(gòu)” 的操作系統(tǒng)和業(yè)務(wù)整合在一套硬件系統(tǒng)上。這些都需要虛擬化技術(shù)在嵌入式設(shè)備上的支持。
如何在資源受限的嵌入式系統(tǒng)上實現(xiàn)虛擬化
“云”虛擬化和“物”虛擬化兩種技術(shù)雖然同根同源,但是嵌入式虛擬化技術(shù)和傳統(tǒng)虛擬化技術(shù)還是有很多不同的地方,例如應(yīng)用場景和目標定位不同、可用的資源多寡不同、支持的物理硬件設(shè)備和外設(shè)不同、軟件發(fā)布的模式不同、各自的生態(tài)系統(tǒng)不同。為此,本書專門選擇了Linux開源基金會下支持Intel x86平臺的開源嵌入式虛擬機管理程序ACRN進行架構(gòu)剖析和代碼實現(xiàn)的解讀。主要原因有兩點。第一,在嵌入式虛擬機市場上大多都是閉源的商用軟件,以支持Arm平臺為主,開源的、專門為嵌入式設(shè)備設(shè)計的虛擬機在市面上并不多見。第二,ACRN具有如下特點:在x86平臺上支持實時操作系統(tǒng);小尺寸,額外開銷。荒芡ㄟ^工業(yè)IEC 61508 功能安全認證;具有BSD 3.0友好的許可證,完全開源。
虛擬化技術(shù)主要包括四部分核心內(nèi)容:CPU虛擬化、內(nèi)存虛擬化、中斷虛擬化和設(shè)備虛擬化。本書圍繞這四個方面,以ACRN為例介紹如何在嵌入式系統(tǒng)上實現(xiàn)一個完整的虛擬機管理程序(VMM或者Hypervisor)。本書首先介紹最基本的、通用的虛擬化技術(shù)原理?紤]到云虛擬化技術(shù)和KVM的廣泛流行,再以主流開源KVM為例來介紹其CPU、內(nèi)存、中斷和設(shè)備虛擬化的實現(xiàn)。有了這兩章的鋪墊,當讀者隨后讀到ACRN的架構(gòu)設(shè)計和代碼實現(xiàn)時,可以一邊比較KVM,一邊理解嵌入式系統(tǒng)上虛擬化技術(shù)實現(xiàn)的要點。本書還有兩章是針對ACRN的高級技術(shù)的,分別是性能調(diào)優(yōu)和功能安全認證。因為嵌入式虛擬機Hypervisor是運行在嵌入式硬件和實時操作系統(tǒng)之間的薄薄的軟件層,Hypervisor的出現(xiàn)會對整機的實時性能帶來額外的開銷,對于如何最大限度地減少Hypervisor自身引入的實時開銷,讀者可以閱讀性能調(diào)優(yōu)相關(guān)章節(jié)。ACRN還有另外一個獨特優(yōu)點,它是第一個能支持IEC 61508安全認證的開源虛擬機。以前只有商用虛擬機軟件才能夠完成的安全認證,開源虛擬機也能做到。本書討論安全認證實現(xiàn)的章節(jié)將從技術(shù)和流程兩個方面“解密”如何實現(xiàn)這一目標。
目標讀者
在某種程度上可以將嵌入式系統(tǒng)的虛擬化技術(shù)看作一門跨領(lǐng)域的交叉技術(shù)。虛擬化技術(shù)本身涉及操作系統(tǒng)、計算機體系結(jié)構(gòu)等領(lǐng)域知識。當把虛擬化技術(shù)“嫁接”到嵌入式系統(tǒng)上時,除了虛擬化技術(shù)背景之外,工作人員還必須具有良好的嵌入式系統(tǒng)設(shè)計經(jīng)驗。Hyper-visor要運行在資源受限的硬件平臺上,性能調(diào)優(yōu)又必須是整機系統(tǒng)(硬件+虛擬機+實時操作系統(tǒng)+應(yīng)用程序)的調(diào)優(yōu),所以工作人員還需要一些“螺螄殼里做道場”的系統(tǒng)調(diào)優(yōu)能力。
另外,本書并沒有定位成一本純理論的學術(shù)書籍,而是一本綜合了虛擬化原理知識和技術(shù)實踐的圖書。本書定位的讀者包括:
從事嵌入式虛擬化領(lǐng)域開發(fā)的研發(fā)人員或?qū)I(yè)技術(shù)人員。
從事嵌入式系統(tǒng)開發(fā),但是對虛擬化技術(shù)感興趣的研發(fā)人員。
從事虛擬化領(lǐng)域開發(fā),但是希望擴展到嵌入式領(lǐng)域的研發(fā)人員。
全書結(jié)構(gòu)
本書的邏輯主線是按照如下思路來組織的:為什么需要嵌入式虛擬化技術(shù)→如何實現(xiàn)嵌入式虛擬化→嵌入式虛擬化和主流的云虛擬化在實現(xiàn)上有何不同→嵌入式虛擬化技術(shù)在哪些領(lǐng)域可以帶來價值。各章具體內(nèi)容簡介如下。
第1章主要介紹虛擬化技術(shù)的發(fā)展歷史、虛擬機的三種模型、虛擬化技術(shù)的分類,并分析當前嵌入式虛擬化技術(shù)所面臨的發(fā)展和挑戰(zhàn)。
第2章介紹虛擬化技術(shù)的通用概念,并描述處理器虛擬化、內(nèi)存虛擬化和I/O虛擬化的實現(xiàn),比較“云”虛擬化和“物”虛擬化,以及嵌入式虛擬化技術(shù)的特征和必要性。
第3章主要介紹在服務(wù)器領(lǐng)域廣泛使用的KVM的基本原理,并探討其與嵌入式領(lǐng)域虛擬化技術(shù)的不同之處。通過實現(xiàn)一個極簡版的用戶態(tài)VMM,進而描述KVM的主要功能實現(xiàn):CPU虛擬化、內(nèi)存虛擬化、中斷虛擬化和設(shè)備虛擬化。
第4章介紹一個Linux基金會下的專門為資源受限的嵌入式設(shè)備而設(shè)計的虛擬機ACRN。它尺寸小,額外開銷小,專門為實時系統(tǒng)進行了設(shè)計和優(yōu)化,同時具有完全開源、友好的許可證。該章將深入介紹ACRN嵌入式虛擬機的具體實現(xiàn),包括CPU虛擬化、內(nèi)存虛擬化、中斷虛擬化和I/O虛擬化的框架支持,并提供設(shè)計框圖及部分流程圖。
第5章繼續(xù)介紹ACRN中的設(shè)備虛擬化。豐富的I/O設(shè)備虛擬化支持是ACRN的另一個優(yōu)勢,也是專門為嵌入式系統(tǒng)而設(shè)計實現(xiàn)的。
第6章主要介紹ACRN系統(tǒng)的使用和環(huán)境搭建過程,并配有完整的安裝部署入門指南,方便讀者了解和具體操作ACRN。
第7章介紹嵌入式虛擬機如何能夠支持實時性,以及如何做到性能調(diào)優(yōu),并結(jié)合Intel硬件平臺和ACRN虛擬機介紹幾種常用的實時優(yōu)化思路及工具。
第8章介紹嵌入式實時操作系統(tǒng)。雖然本書主要介紹嵌入式虛擬機,但是也需要對運行在Hypervisor之上的嵌入式操作系統(tǒng)進行介紹,因為兩者需要配合在一起才能實現(xiàn)業(yè)務(wù)應(yīng)用程序的實時性能。ACRN是在x86硬件平臺上實現(xiàn)的,所以該章主要介紹三個比較流行的x86平臺上的開源實時操作系統(tǒng)。
ACRN是第一個能夠通過功能安全認證的開源的虛擬機Hypervisor。第9章主要從流程和技術(shù)兩方面來分享ACRN的功能安全的工程實踐。
第10章介紹智能數(shù)控系統(tǒng)和數(shù)字孿生的實現(xiàn)。借助虛擬化技術(shù)來實現(xiàn)智能數(shù)控系統(tǒng),可以把傳統(tǒng)數(shù)控系統(tǒng)設(shè)備端側(cè)的各個分離的單獨控制器整合到同一平臺上,還可以通過數(shù)字孿生技術(shù)在云中構(gòu)建設(shè)備的數(shù)字實例。
第11章介紹如何使用虛擬化技術(shù)進行工作負載整合。通過把機器視覺和機器控制整合在一個物理硬件平臺上運行,可以使工業(yè)設(shè)備裝上“眼睛”和“手臂”,既可以看到需要識別的物品,又可以使用機器控制執(zhí)行相應(yīng)的操作。
第12章主要介紹如何通過虛擬化方案使移動機器人、復合機器人的設(shè)計變得更從容,同時可以從控制器的體積、成本、功耗、性能、安全等角度滿足機器人開發(fā)所需,為多樣化的上層應(yīng)用打好基礎(chǔ)。
第13章介紹虛擬化技術(shù)在智能駕駛艙中的解決方案。通過虛擬化技術(shù),數(shù)字儀表盤系統(tǒng)及車載娛樂系統(tǒng)現(xiàn)在可以同時運行在一顆SoC處理器上,從而降低整機成本和平臺的集成復雜性。
如何閱讀本書
本書大體上介紹了5部分技術(shù)內(nèi)容,讀者可以針對自己的興趣點來閱讀。
希望了解虛擬化技術(shù)基礎(chǔ)知識的讀者,可以閱讀第1、2章。
希望了解服務(wù)器上常用的KVM虛擬機實現(xiàn)的讀者,可以閱讀第3章。
希望了解如何實現(xiàn)一個完整的嵌入式虛擬機的讀者,可以閱讀第4~6章。
希望了解如何進行實時性能調(diào)優(yōu)的讀者,可以閱讀第7章。
希望了解常用x86平臺的開源實時操作系統(tǒng)的讀者,可以閱讀第8章。
希望了解功能安全認證的讀者,可以閱讀第9章。
希望了解嵌入式虛擬機的應(yīng)用場景和實際案例的讀者,可以閱讀第10~13章。
致謝
本書的作者都是英特爾公司的工程師。他們有的是來自開源技術(shù)中心部門的虛擬化開發(fā)工程師,有的是來自物聯(lián)網(wǎng)事業(yè)部的開發(fā)工程師或市場經(jīng)理。他們大都在虛擬化領(lǐng)域、嵌入式領(lǐng)域、工業(yè)領(lǐng)域沉浸和工作多年,具有豐富的技術(shù)實踐經(jīng)驗。
寫作本書主要有三個原因。第一,虛擬化技術(shù)的發(fā)展。在2008年,英特爾開源軟件技術(shù)中心的虛擬化團隊和復旦大學并行處理研究所合作并出版了《系統(tǒng)虛擬化—原理與實現(xiàn)》一書。十幾年過去了,虛擬化技術(shù)依然發(fā)展迅猛,不僅使云計算資源唾手可得,而且伴隨著萬物互聯(lián)時代的春風,虛擬化技術(shù)在嵌入式領(lǐng)域也迎來了新的大發(fā)展。所以,團隊認為很有必要再續(xù)寫一本書,來專門介紹新的嵌入式虛擬化技術(shù)的原理與實現(xiàn)。第二,本書的作者除了日常的技術(shù)開發(fā)工作,也負責客戶的技術(shù)推廣和產(chǎn)品落地,在與OEM、ODM、車企、設(shè)備制造廠商打交道時,他們深刻體會到我國制造行業(yè)的“一手硬、一手軟”,即硬件制造優(yōu)勢領(lǐng)先,但軟件設(shè)計開發(fā)能力卻缺乏技術(shù)積累,水平有待提高。所以也希望本書能扮演一個虛擬化技術(shù)入門和普及的“敲門磚”的角色。雖然它不能使人“21天學會虛擬化”,但是通過ACRN開源軟件的介紹(ACRN只有3萬多行代碼),卻可以讓人們有機會從第一行代碼來了解、學習虛擬化技術(shù),甚至開發(fā)自己的虛擬機管理程序,從而能掌握嵌入式和虛擬化技術(shù)的要點。第三,本書的策劃編輯專門為團隊提供了讀者需求、業(yè)界熱點技術(shù)分析,并給出了寫作方向。
本書的作者分工如下:第1章由董耀祖、沈溢合作撰寫;第2章由王穩(wěn)超撰寫;第3章由王穩(wěn)超、鄧杰合作撰寫;第4章由曹明貴、高世青、單峻俊合作撰寫;第5章由鄧杰撰寫;第6章由鄒皓、江燕婷合作撰寫;第7章由曹明貴撰寫;第8章由曹劍波、楊湘、陳鵬、陳紅展合作撰寫;第9章由吳向陽撰寫;第10章由沈溢、李世奇合作撰寫;第11章由王洪波撰寫;第12章由瞿好聰、楊洪、李世奇合作撰寫;第13章由張泉撰寫。王洪波、曹明貴、王穩(wěn)超、鄧杰、高世青對全書做了審校。感謝本書的技術(shù)顧問茅俊杰、王禹、孫捷。還要感謝機械工業(yè)出版社的編輯進行了細致的審稿,并提出了寶貴的修改建議,最終促成了本書的出版。
最后,感謝你在茫茫書海中選擇了本書,并衷心祝愿你能從中受益。
編者
2023年5月
伴隨著物聯(lián)網(wǎng)設(shè)備的指數(shù)級增長,在需要高算力的場景,例如軟件定義汽車駕駛艙、工業(yè)領(lǐng)域的工作負載整合,開源虛擬化技術(shù)在嵌入式系統(tǒng)上受到了越來越多的關(guān)注和應(yīng)用。本書首先介紹虛擬化技術(shù)的基本原理,包括CPU虛擬化、內(nèi)存虛擬化、中斷虛擬化和設(shè)備虛擬化,對比KVM在云服務(wù)器上參考實現(xiàn),重點介紹了開源嵌入式虛擬機ACRN的架構(gòu)設(shè)計、原理和實現(xiàn)。還特別總結(jié)了虛擬化系統(tǒng)的實時性能調(diào)優(yōu)方法和功能安全認證實踐,以及嵌入式虛擬化技術(shù)的典型應(yīng)用場景案例分析。本書作為嵌入式虛擬化技術(shù)入門參考書,通過對ACRN開源軟件的介紹,幫助讀者從代碼開始了解、學習、開發(fā)虛擬機軟件,掌握嵌入式虛擬化技術(shù)并應(yīng)用于工程實踐。