日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

深度探索linux系统虚拟化 原理与实现,深度探索Linux系统虚拟化:原理与实现

發布時間:2023/12/19 linux 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度探索linux系统虚拟化 原理与实现,深度探索Linux系统虚拟化:原理与实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前 言

第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

總結

以上是生活随笔為你收集整理的深度探索linux系统虚拟化 原理与实现,深度探索Linux系统虚拟化:原理与实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。