深度探索 Linux 系統虛擬化:原理與實現
王柏生,謝廣軍著
- 出版商: 機械工業
- 出版日期: 2020-10-01
- 售價: $534
- 貴賓價: 9.5 折 $507
- 語言: 簡體中文
- 頁數: 292
- 裝訂: 平裝
- ISBN: 7111666062
- ISBN-13: 9787111666066
-
相關分類:
虛擬化技術 Virtualization
立即出貨 (庫存 < 3)
買這商品的人也買了...
-
Debug Hacks 除錯駭客 -- 極致除錯的技巧與工具$580$458 -
Binary Hacks -- 駭客秘傳技巧一百招$580$458 -
Linux Kernel Hacks 改善效能、提昇開發效率及節能的技巧與工具$680$537 -
網絡的琴弦 (玩轉IP看監控)$474$450 -
操作系統真象還原$773$734 -
自己動手實現 Lua:虛擬機、編譯器和標準庫$534$507 -
軟件調試 第2版 捲1:硬件基礎$708$673 -
KVM 實戰:原理、進階與性能調優$534$507 -
FreeRTOS 內核實現與應用開發實戰指南 — 基於 STM32$594$564 -
$658精通 Linux 內核智能設備開發核心技術 -
$327敏捷整潔之道 : 回歸本源 (Clean Agile : Back to Basics) -
Python × Network 一拍即合:自動化、程式化和 DevOps 的一站式解決方案 (Mastering Python Networking, 3/e)$780$608 -
QEMU/KVM 源碼解析與應用$1,008$958 -
WebAssembly 原理與核心技術$474$450 -
BPF 之巔:洞悉 Linux 系統和應用性能 (BPF Performance Tools)$1,194$1,134 -
軟件調試 第2版 捲2 : Windows 平臺調試 (上.下冊)$1,194$1,134 -
$505深入剖析 Kubernetes -
$811嵌入式 Linux 設備驅動程序開發指南, 2/e (Linux Driver Development for Embedded Processors : Learn to develop Linux embedded drivers with kernel 4.9 LTS, 2/e (Paperback)) -
基於 BERT 模型的自然語言處理實戰$828$787 -
$327深入理解 RISC-V 程序開發 -
UEFI 編程實踐$714$678 -
Martin Fowler 的企業級軟體架構模式:軟體重構教父傳授 51個模式,活用設計思考與架構決策 (Patterns of Enterprise Application Architecture)$800$624 -
$568ARM64 體系結構編程與實踐 -
Linux 安全實戰$479$455 -
SQL Server 運維之道$594$564
中文年末書展|繁簡參展書2書75折 詳見活動內容 »
-
75折
為你寫的 Vue Components:從原子到系統,一步步用設計思維打造面面俱到的元件實戰力 (iThome 鐵人賽系列書)$780$585 -
75折
BDD in Action, 2/e (中文版)$960$720 -
75折
看不見的戰場:社群、AI 與企業資安危機$750$563 -
79折
AI 精準提問 × 高效應用:DeepSeek、ChatGPT、Claude、Gemini、Copilot 一本搞定$390$308 -
7折
超實用!Word.Excel.PowerPoint 辦公室 Office 365 省時高手必備 50招, 4/e (暢銷回饋版)$420$294 -
75折
裂縫碎光:資安數位生存戰$550$412 -
85折
日本當代最強插畫 2025 : 150位當代最強畫師豪華作品集$640$544 -
79折
Google BI 解決方案:Looker Studio × AI 數據驅動行銷實作,完美整合 Google Analytics 4、Google Ads、ChatGPT、Gemini$630$498 -
79折
超有料 Plus!職場第一實用的 AI 工作術 - 用對 AI 工具、自動化 Agent, 讓生產力全面進化!$599$473 -
75折
從零開始學 Visual C# 2022 程式設計, 4/e (暢銷回饋版)$690$518 -
75折
Windows 11 制霸攻略:圖解 AI 與 Copilot 應用,輕鬆搞懂新手必學的 Windows 技巧$640$480 -
75折
精準駕馭 Word!論文寫作絕非難事 (好評回饋版)$480$360 -
Sam Yang 的插畫藝術:用 Procreate / PS 畫出最強男友視角 x 女孩美好日常$699$629 -
79折
AI 加持!Google Sheets 超級工作流$599$473 -
78折
想要 SSR? 快使用 Nuxt 吧!:Nuxt 讓 Vue.js 更好處理 SEO 搜尋引擎最佳化(iThome鐵人賽系列書)$780$608 -
78折
超實用!業務.總管.人資的辦公室 WORD 365 省時高手必備 50招 (第二版)$500$390 -
7折
Node-RED + YOLO + ESP32-CAM:AIoT 智慧物聯網與邊緣 AI 專題實戰$680$476 -
79折
「生成式⇄AI」:52 個零程式互動體驗,打造新世代人工智慧素養$599$473 -
7折
Windows APT Warfare:惡意程式前線戰術指南, 3/e$720$504 -
75折
我輩程式人:回顧從 Ada 到 AI 這條程式路,程式人如何改變世界的歷史與未來展望 (We, Programmers: A Chronicle of Coders from Ada to AI)$850$637 -
75折
不用自己寫!用 GitHub Copilot 搞定 LLM 應用開發$600$450 -
79折
Tensorflow 接班王者:Google JAX 深度學習又快又強大 (好評回饋版)$780$616 -
79折
GPT4 會你也會 - 共融機器人的多模態互動式情感分析 (好評回饋版)$700$553 -
79折
技術士技能檢定 電腦軟體應用丙級術科解題教本|Office 2021$460$363 -
75折
Notion 與 Notion AI 全能實戰手冊:生活、學習與職場的智慧策略 (暢銷回饋版)$560$420
相關主題
商品描述
這是一部深度講解如何在Linux操作系統環境下用軟件虛擬出一臺“物理”計算機的著作。
兩位作者都是百度的技術專家,一位是百度的主任架構師,一位是百度智能雲的副總經理,都在操作系統和虛擬化等領域有多年的實踐經驗。
本書從計算機體系結構、操作系統、硬件等多個方面深度探索瞭如何從CPU、內存、中斷、
外設、網絡5個維度去虛擬化Linux系統,不僅剖析了其中的關鍵技術原理,而且深入闡述了具體的實現。
全書共6章:
第1章:CPU虛擬化
介紹了X86架構下的VMX擴展,討論了在VMX下虛擬CPU的完整生命週期,
著重闡述了Host和Guest的切換、指令的模擬以及KVM是如何虛擬多處理器的。
第2章:內存虛擬化
討論了操作系統如何為虛擬機呈現物理內存,結合影子頁表以及EPT探討了KVM如何完成從GVA到HPA的2層地址映射。
第3章:中斷虛擬化
首先,討論了從單核系統的8259A開始,到多核系統的APIC,
再到繞開I/O APIC直接從設備向LAPIC發送基於消息的MSI的虛擬化原理和實現。
然後,討論了Intel為了提高效率,是如何從硬件層面對虛擬化中斷進行支持的,以及KVM是如何使用它們的。
第4~5章外設虛擬化
從完全虛擬化開始,依次講解了半虛擬化(Virtio)和Intel的VT-d支持下的硬件輔助虛擬化。
通過實現一個模擬串口帶領讀者直觀體會了設備虛擬化的基本原理,
然後深入闡述了Virito標準和實現,以及支持SR-IOV的DMA重映射和中斷重映射。
第6章網絡虛擬化
討論了在通用硬件網絡的基礎上,操作系統如何虛擬出專用的網絡設備,為租戶組建虛擬網絡。
作者簡介
王柏生
技術專家,先後就職於中科院軟件所、紅旗Linux和百度,現任百度主任架構師。
在操作系統、虛擬化技術、分佈式系統、雲計算、自動駕駛等相關領域耕耘多年,有著豐富的實踐經驗。
著有暢銷書《深度探索Linux操作系統》(2013年出版)。
謝廣軍
計算機專業博士,畢業於南開大學計算機系。
技術專家,有多年的IT行業工作經驗。
現擔任百度智能雲副總經理,負責雲計算相關產品的研發。
多年來一直從事操作系統、虛擬化技術、分佈式系統、大數據、
雲計算等相關領域的研發工作,實踐經驗豐富。
目錄大綱
目錄
前言
第1章CPU虛擬化1
1.1 x86架構CPU虛擬化1
1.1.1陷入和模擬模型2
1.1.2 x86架構虛擬化的障礙2
1.1.3 VMX 3
1.1.4 VCPU生命週期5
1.2虛擬機切入和退出8
1.2.1 GCC內聯彙編8
1.2.2虛擬機切入和退出及相關的上下文保存10
1.3陷入和模擬15
1.3.1訪問外設15
1.3.2特殊指令22
1.3.3訪問具有副作用的寄存器27
1.4對稱多處理器虛擬化28
1.4.1 MP Table 28
1.4.2處理器啟動過程33
1.5一個簡單KVM用戶空間實例41
1.5.1創建虛擬機實例43
1.5.2創建內存43
1.5.3創建處理器44
1.5.4 Guest 46
1.5.5加載Guest鏡像到內存47
1.5.6運行虛擬機47
第2章內存虛擬化49
2.1內存尋址49
2.1.1段式尋址50
2.1.2平坦內存模型50
2.1.3頁式尋址54
2.1.4頁式尋址實例55
2.2 VMM為Guest準備物理內存61
2.2.1內核是如何獲取內存的62
2.2.2建立內存段信息64
2.2.3準備中斷0x15的處理函數以及設置IVT 65
2.2. 4中斷0x15的處理函數實現68
2.2.5虛擬內存條69
2.3實模式Guest的尋址72
2.3.1設置CPU運行於Virtual-8086模式74
2.3.2設置Guest模式下的cr3寄存器75
2.3.3虛擬MMU的上下文75
2.3.4缺頁異常處理77
2.4保護模式Guest的尋址81
2.4.1偷梁換柱cr3 83
2.4.2影子頁表缺頁異常處理86
2.5 EPT 92
2.5.1設置EPT頁表93
2.5. 2 EPT異常處理95
2.5.3 EPT支持下的地址翻譯過程97
第3章中斷虛擬化99
3.1虛擬中斷99
3.2 PIC虛擬化102
3.2.1可編程中斷控制器8259A 103
3.2.2虛擬設備向PIC發送中斷請求106
3.2.3記錄中斷到IRR 107
3.2.4設置待處理中斷標識108
3.2.5中斷評估110
3.2.6中斷ACK 112
3.2.7關於EOI的處理113
3.2.8中斷註入114
3.3 APIC虛擬化116
3.3.1外設中斷過程118
3.3.2核間中斷過程123
3.3.3 IRQ routing 125
3.4 MSI(X)虛擬化128
3.4.1 MSI(X)Capability數據結構129
3.4.2建立IRQ routing表項131
3.4.3 MSI設備中斷過程132
3.5硬件虛擬化支持134
3.5.1虛擬中斷寄存器頁面(virtual-APIC page) 134
3.5.2 Guest模式下的中斷評估邏輯136
3.5.3 posted-interrupt processing 139
第4章設備虛擬化142
4.1設備虛擬化模型演進142
4.2 PCI配置空間及其模擬144
4.3設備透傳152
4.3.1虛擬配置空間153
4.3.2 DMA重映射157
4.3.3中斷重映射160
4.4完全虛擬化166
4.4.1 Guest發送數據167
4.4.2 Guest接收數據173
第5章Virtio虛擬化182
5.1 I/O棧182
5.1.1文件系統182
5.1.2通用塊層190
5.1.3塊設備驅動194
5.1.4 page cache 196
5.1.5 bio 201
5.1.6 I/O調度器202
5.2 Virtio協議204
5.2.1描述符表205
5.2.2可用描述符區域207
5.2.3已用描述符區域208
5.2.4 Virtio設備的PCI配置空間209
5.3初始化Virtqueue 210
5.4驅動根據I/ O請求組織描述符鏈216
5.5驅動通知設備處理請求221
5.6設備處理I/O請求222
5.7驅動側回收I/O請求226
5.8設備異步處理I/O 229
5.9輕量虛擬機退出231
5.9.1創建eventfd 232
5.9.2 kvmtool監聽eventfd 235
5.9.3 VM exit處理函數喚醒I/O任務236
第6章網絡虛擬化239
6.1基於Overlay的虛擬網絡方案239
6.1.1計算節點240
6.1.2網絡節點247
6.1.3 Open vSwitch 251
6.2虛擬機訪問外部主機255
6.2.1數據包在計算節點Linux網橋中的處理256
6.2.2數據包在計算節點的Open vSwitch中的處理257
6.2.3數據包在網絡節點的Open vSwitch中的處理265
6.3外部主機訪問虛擬機272
6.3.1數據包在網關中的處理過程273
6.3.2數據包在網絡節點的Open vSwitch中的處理274
6.3.3數據包在計算節點的Open vSwitch中的處理279
6.3.4數據包在Linux網橋中的處理283
