TA的每日心情 | 开心 昨天 01:16 |
---|
签到天数: 323 天 [LV.8]以坛为家I
管理员
- 积分
- 10915
|
Java电子书:深度探索Linux系统虚拟化:原理与实现 PDF 电子书 Java吧 java8.com
$ P9 V) j+ g$ g+ {& D7 D- b- Q5 I8 w
作者:王柏生 谢广军出版社:机械工业出版社出版时间:2020年10月
; Z, \! q: d P5 }4 {8 b5 d& N
- M) n& a8 E8 S% ?4 u, H: ]编号:166-Java吧资源免费-X0148【Java吧 java8.com】8 |' \$ U1 O* l* P) t1 s
. L' p; {. k+ {2 e7 `
* G% J) C% b) S! t
+ B) ?' d( E7 k* w$ P ~0 ~( J" c
目录:6 V& s" a$ s. w. s+ g2 y
第1章 CPU虚拟化 1
, E: j2 Z. h1 p. t0 B1.1 x86架构CPU虚拟化 1/ B; F# `. E5 `9 J7 ~) Q
1.1.1 陷入和模拟模型 2
' @1 P; O/ D# G& }4 m1.1.2 x86架构虚拟化的障碍 2
+ c. l$ V+ K* Y: F3 e' B1.1.3 VMX 3
/ T5 h2 Q3 J0 n* G8 R: @1.1.4 VCPU生命周期 5
. }% z$ B! O8 v% v8 e; l) O# a1.2 虚拟机切入和退出 8
& T8 {' E8 y; L" ^5 c( c1.2.1 GCC内联汇编 83 v5 h& U7 ?6 t8 }# j
1.2.2 虚拟机切入和退出及相关的上下文保存 10
7 r1 W7 j0 ^% m& A. `1.3 陷入和模拟 15 E1 r. M& O+ w2 A5 h! z L q
1.3.1 访问外设 15
$ w' Q5 ~1 k, c2 @+ o5 c8 j1.3.2 特殊指令 22
0 x9 h+ a. e) e; D2 \. A# {1 s9 Y3 h1.3.3 访问具有副作用的寄存器 27! \( H& O3 ~2 h. f8 ^
1.4 对称多处理器虚拟化 28
2 M- @# ~7 Y, F9 J1.4.1 MP Table 288 v* U+ L/ n0 }
1.4.2 处理器启动过程 33
* o& Q T/ m$ U0 o& c; ^+ \1.5 一个简单KVM用户空间实例 41
% h6 U0 w5 M9 B M m9 A1.5.1 创建虚拟机实例 43
. A6 \/ x# S7 W) ]( x1.5.2 创建内存 43
: _# {5 K! F! R7 d1.5.3 创建处理器 44
+ x9 [; E: A T' P% _! J4 n1.5.4 Guest 46% Z6 c/ {) G$ Q
1.5.5 加载Guest镜像到内存 47
4 w- l4 C. t' T, O( d1.5.6 运行虚拟机 477 ]% R4 {- Y8 \1 x) r
第2章 内存虚拟化 49
( M) E8 [( y. f& J0 t, ^1 _2.1 内存寻址 49
! @: F9 W! K ^5 h+ o2 n+ U2.1.1 段式寻址 50) M: e$ n4 g% T I. x) R( {3 E9 }
2.1.2 平坦内存模型 50
4 J. U+ ?+ O6 m4 E' A. _8 I5 [2.1.3 页式寻址 547 _- l2 A! \* R# q
2.1.4 页式寻址实例 551 a7 @( o N( R( `0 f" ]- U
2.2 VMM为Guest准备物理内存 61
& Z) \1 G/ R, T$ _& o2.2.1 内核是如何获取内存的 62
6 T3 N- k3 m: _, x1 u2 q; P2.2.2 建立内存段信息 64
5 f6 G ]7 b2 ^, X1 b3 F. o' c w2.2.3 准备中断0x15的处理函数以及设置IVT 657 {0 N5 C) G V
2.2.4 中断0x15的处理函数实现 68
9 l' n; H0 h: W( C0 v2.2.5 虚拟内存条 69. q+ l$ p+ ]: ?5 n
2.3 实模式Guest的寻址 729 S4 a9 s9 |, v8 v( f+ M/ {7 C
2.3.1 设置CPU运行于Virtual-8086模式 74
6 k7 S7 J; y% H8 V2.3.2 设置Guest模式下的cr3寄存器 75
! c' m8 j6 q6 t0 x) j$ c2.3.3 虚拟MMU的上下文 75/ Z/ a; }8 T: D' K
2.3.4 缺页异常处理 77
, u5 T8 P) y7 r2.4 保护模式Guest的寻址 81
" _2 S* K/ ?' u A2.4.1 偷梁换柱cr3 83
2 O9 b5 e- C9 {, H2.4.2 影子页表缺页异常处理 86
- g# R1 I" b: Y+ g; X, ?% b2.5 EPT 92
$ }; [8 Z' f7 c3 H/ y& C2.5.1 设置EPT页表 93
4 |) S$ i( j4 t/ m! `2.5.2 EPT异常处理 95
- ?3 B4 `0 z% @; I2.5.3 EPT支持下的地址翻译过程 97' ?5 y o2 N/ _! W* d, q3 b
第3章 中断虚拟化 99
! J/ q/ e( a+ [6 V* L7 G/ Z- Z3.1 虚拟中断 99
0 I; N' m, F% h v& ~$ N, }, Y. C& n3.2 PIC虚拟化 102 K% p" E% ]/ u- a8 n9 x
3.2.1 可编程中断控制器8259A 103
8 U7 R e' A9 c- Y9 G$ ^3.2.2 虚拟设备向PIC发送中断请求 1061 F8 t& p3 J* e* G3 |; Q
3.2.3 记录中断到IRR 107' x( \( w6 f7 ?8 D
3.2.4 设置待处理中断标识 108
3 I% l* p' Z6 w( C: P8 T d3.2.5 中断评估 110% h( n3 c7 K3 J; u8 W7 A3 T
3.2.6 中断ACK 112
* g( s/ ^! D/ D- a- P$ k2 I- r! _6 ]3.2.7 关于EOI的处理 113% ?% e8 K+ T1 o# v& I) L S8 y
3.2.8 中断注入 114; H+ O; l, Q& E! n* z, V
3.3 APIC虚拟化 116
! s6 x; Y _/ m9 g( j4 q/ A+ D) T3.3.1 外设中断过程 1183 }. C/ q7 W4 C/ |: \+ B! t' d9 X
3.3.2 核间中断过程 123+ D- ?& P; L7 R: }& c
3.3.3 IRQ routing 1256 _! b. z' Q. R) a, _+ [! n/ g
3.4 MSI(X)虚拟化 128" L7 X V8 t( {$ H; n* S. N
3.4.1 MSI(X)Capability数据结构 1291 b$ B+ v# |3 c" F
3.4.2 建立IRQ routing表项 1314 l* u( |4 q/ a
3.4.3 MSI设备中断过程 132
" z0 g$ W! e/ r% O9 y7 j3.5 硬件虚拟化支持 134
4 P0 ]5 U) e) `! ?/ e* Q: a$ h3.5.1 虚拟中断寄存器页面(virtual-APIC page) 1347 Z% ?5 I d6 L1 E7 @/ W
3.5.2 Guest模式下的中断评估逻辑 136- ]& A5 O7 k- p; W& e
3.5.3 posted-interrupt processing 139
0 S9 E" [7 P1 |7 r, C# f第4章 设备虚拟化 142$ O! u1 s$ ^4 M) P4 e' d
4.1 设备虚拟化模型演进 142
' A0 w6 Q2 ~7 B2 h \0 }8 V4.2 PCI配置空间及其模拟 144 k! b6 C7 h C4 q
4.3 设备透传 152
2 h$ L) {7 _/ q: j/ K6 E9 t3 o' ^% k4.3.1 虚拟配置空间 153
. @( M" j; S5 q7 o- m' P4.3.2 DMA重映射 157
" T' r ]& g+ C8 Y4.3.3 中断重映射 160
3 y- W' x2 B! _/ K4.4 完全虚拟化 166
- I$ b2 o/ h( q4.4.1 Guest发送数据 167
; x0 A r% K) ?5 x4.4.2 Guest接收数据 173 v* @' m& E1 x; v
第5章 Virtio虚拟化 1826 l! n) I) t, u6 z0 j
5.1 I/O栈 182
: ^, k6 T7 g) _" a+ O2 @5.1.1 文件系统 182
' f. H: T; A0 l o5.1.2 通用块层 190
. L8 v p+ i' u) U P& V/ Y4 `5.1.3 块设备驱动 194: R' }( U1 R7 @6 E. _& E% K* B7 u) H, f
5.1.4 page cache 196( `$ e H$ u7 ?
5.1.5 bio 201
4 J; ~ y ]/ }7 f$ V- u/ r5.1.6 I/O调度器 202
% r$ W; U s* ~+ v1 f! o. d) ]5.2 Virtio协议 2049 {+ o# T- |- `
5.2.1 描述符表 205$ n7 A- J) ?5 L5 e, U
5.2.2 可用描述符区域 2071 r8 ]$ z: _. E9 P1 Y
5.2.3 已用描述符区域 2088 q( X) F8 \! N, V5 y; y( t/ R
5.2.4 Virtio设备的PCI配置空间 209
- |% q, ]+ ]/ W9 }% v* p) R5.3 初始化Virtqueue 210
0 c8 o$ v, I3 U; U5 [6 {& ^5.4 驱动根据I/O请求组织描述符链 216
/ G# N6 A @, E2 \5.5 驱动通知设备处理请求 221
# L0 E7 s$ f1 }! j5.6 设备处理I/O请求 222
7 _1 _! n. u$ O1 D0 \' m5.7 驱动侧回收I/O请求 2267 J: M& u: P( F }
5.8 设备异步处理I/O 229
& N' n; c3 J" f' c# a5 h5.9 轻量虚拟机退出 231' f1 _& K. I, J4 A) `) i
5.9.1 创建eventfd 232
% c# v$ G. J' A5.9.2 kvmtool监听eventfd 235
* ^5 n0 i- o0 u# z' B5.9.3 VM exit处理函数唤醒I/O任务 236# t+ p2 P2 T- p
第6章 网络虚拟化 239
) i/ B: P7 D" o: ], _, }' k* W6.1 基于Overlay的虚拟网络方案 239
! M% G) l4 E/ W( P2 S" d6 Q6.1.1 计算节点 240
( W3 q% s7 |: o* k& y6.1.2 网络节点 247 java8.com* b4 Q& V* p: }& T9 Y
6.1.3 Open vSwitch 2519 @ M9 w! c4 G- [, k8 m
6.2 虚拟机访问外部主机 255
7 n9 _0 ?& t* D+ R) i6.2.1 数据包在计算节点Linux网桥中的处理 256) t5 d! d! ~9 M
6.2.2 数据包在计算节点的Open vSwitch中的处理 257' ^) r9 G Y2 H3 u0 f4 |$ B' @
6.2.3 数据包在网络节点的Open vSwitch中的处理 265/ k* d( S, L" o
6.3 外部主机访问虚拟机 272) m: J) A( U X! I9 I5 k- {
6.3.1 数据包在网关中的处理过程 273
% c0 _6 q: B, H; v6.3.2 数据包在网络节点的Open vSwitch中的处理 2749 m8 a9 i5 [) Y8 Y. h8 J- m
6.3.3 数据包在计算节点的Open vSwitch中的处理 279' D. o9 \. ]/ N
6.3.4 数据包在Linux网桥中的处理 283
2 `' L4 E" [4 p! t
4 p- ]0 O, a& e2 ^; P! l; @: ?3 K
; T0 l/ T( v+ o
百度云盘下载地址(完全免费-绝无套路):
8 t( R3 T% j c# `# H0 y' }) u' E. p9 n/ F
6 S& p. x/ n/ V% m7 E8 e8 ~7 |+ \3 t* b' ?1 W6 A0 J
) L+ D7 x8 H* A3 ]7 m( ^: B! r |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|