官术网_书友最值得收藏!

前言

虛擬化是云計算的重要技術之一,虛擬化技術能夠將一臺服務器或者普通PC虛擬出多個虛擬機,每個虛擬機都可以以計算資源的形式出售給租戶,既實現了資源的高效利用,也提供了計算、存儲、網絡等資源按需分配的功能。隨著云計算技術不斷取得進展,虛擬化技術也在最近十多年得到了飛速的發展。

QEMU和KVM作為虛擬化技術的典型代表,被廣泛地應用在各家廠商的云計算系統中。學習和了解QEMU與KVM能夠幫助讀者更好地理解云計算,做到知其然也知其所以然。

從微觀層面來講,虛擬化技術能夠實現整臺計算機的模擬,所以虛擬化技術包含了計算機體系結構的方方面面。虛擬化技術的實現涉及CPU的運行機制、操作系統啟動過程與固件的交互、各類硬件設備的接口、操作系統中的設備驅動與設備之間的通信等。學習虛擬化能夠加深讀者對整個計算機體系結構和操作系統的理解,增強“內功”。

QEMU和KVM作為開源的虛擬化技術,給我們提供了絕佳的了解和學習虛擬化的機會。筆者在2013年左右接觸到虛擬化技術,隨即被QEMU和KVM吸引,并且持續地學習其背后的設計思想與源碼實現。在此之前,筆者所從事的行業為軟件安全,雖然對軟件的運行機制有比較透徹的理解,但是對于系統加電到程序運行中間的過程認知還僅限于書本。在充分學習了虛擬化技術之后,筆者總算能夠站在一個比較高的角度來審視計算機系統并對種種假設進行驗證。虛擬機作為物理機的映射,很大程度上還原了物理計算機系統中那些難為人知的奧秘。技術的發展日新月異,對于事物本質的理解會讓我們更加自信。

本書以QEMU和KVM為主角對虛擬化技術涉及的相關源碼進行了詳細分析。第1章對QEMU和KVM的基本情況進行了介紹,第2章對QEMU的基本組件進行了分析,隨后的幾章對計算機系統各個組件的模擬進行了分析,比如固件、CPU、內存以及外設等,這些內容都是組成虛擬化的基本要素。“紙上得來終覺淺,絕知此事要躬行”,本書只是提供了QEMU和KVM基本原理的分析,讀者還需要自己深入了解源碼并多動手分析調試才能加深理解。更進一步,讀者可以通過QEMU和KVM的郵件列表以及各類技術會議參與虛擬化社區的討論學習。

筆者在本書中使用了大量的圖片來幫助讀者理解QEMU和KVM中各種紛繁復雜的流程與數據結構關系。對于Linux和計算系統中的部分通用術語,筆者認為使用英文比中文更好,因此沒有翻譯。

本書最早的寫作始于2018年8月份左右,在此之前,筆者出于知識積累的需要已經寫了一部分QEMU和KVM相關源碼分析的文章。聯想到自己初入虛擬化領域的茫然,筆者認為寫一本QEMU和KVM源碼分析的書不僅能夠幫助剛進入這個行業的讀者,也是對自己多年學習過程的積淀與總結。

本書使用的源碼為QEMU-2.8.1、Linux kernel-4.4.161,SeaBIOS的版本更新非常緩慢,筆者用了一個當時還在開發中的版本,讀者可以使用rel-1.11.2以及之后的版本。

本書能夠順利完成,離不開很多人的支持與幫助。首先要感謝我的妻子,寫書的過程漫長而辛苦,感謝她給我莫大的鼓勵以及對家庭的付出,讓我能夠堅持完成本書的編寫。其次感謝各位朋友對我的幫助,感謝前公司給我提供的虛擬化安全研究工作,讓我能夠有機會全身心地潛入到QEMU和KVM相關的學習研究中,感謝現公司的領導對我寫書的各種支持。感謝機械工業出版的車忱編輯在選題論證以及文字編輯方面的諸多辛苦付出。

主站蜘蛛池模板: 大渡口区| 灵山县| 宁化县| 石屏县| 丰都县| 临漳县| 万年县| 瑞丽市| 五峰| 新干县| 阿图什市| 青岛市| 岑溪市| 安新县| 信丰县| 萨嘎县| 嘉定区| 苍梧县| 辰溪县| 余姚市| 夏河县| 汪清县| 襄樊市| 嵊州市| 博罗县| 彭州市| 凤山县| 恩施市| 永州市| 上饶县| 青浦区| 南部县| 酉阳| 安阳市| 平谷区| 光山县| 莎车县| 分宜县| 故城县| 安岳县| 蛟河市|