TA的每日心情 | 开心 14 小时前 |
---|
签到天数: 294 天 [LV.8]以坛为家I
管理员
- 积分
- 10089
|
Java电子书:深度探索Linux系统虚拟化:原理与实现 PDF 电子书 Java吧 java8.com, n5 }$ b. j" G" c' f2 E$ a, @
8 f/ a! G# f+ H% _作者:王柏生 谢广军出版社:机械工业出版社出版时间:2020年10月
# I6 x2 |6 v5 e! l: n9 P/ m
3 _3 A) Y' Q; P1 L编号:166-Java吧资源免费-X0148【Java吧 java8.com】
# Z! u6 u) `" P$ Y. Z4 C- F4 ~- w$ Z4 E; s" e( k7 y2 m
4 v. d- L0 t c1 h j+ ^2 p) b& L5 y: i, x& ^: T. w: Q
目录:. d1 E) Z* Q* Q
第1章 CPU虚拟化 1
4 K& {( B# E8 F' L/ a7 M1.1 x86架构CPU虚拟化 1
- r( @0 U! L8 f8 _! R: b1.1.1 陷入和模拟模型 22 ? P) L7 L. K* V2 ^
1.1.2 x86架构虚拟化的障碍 2: _8 T) k5 W/ _/ V) }6 @: X
1.1.3 VMX 38 l# K2 e/ k1 z) A0 W7 m
1.1.4 VCPU生命周期 5
3 q/ @) e! Y8 B `4 r3 b! K1.2 虚拟机切入和退出 8
! Z) r& }9 M* ]/ {, E. Y1.2.1 GCC内联汇编 80 |. x2 G% t: n' `3 k- V; s9 H
1.2.2 虚拟机切入和退出及相关的上下文保存 10
# _2 K( i' q2 C; g# @4 B8 c1.3 陷入和模拟 15
# v! r* q% ~3 w/ w1.3.1 访问外设 15
* v/ R5 i* K, o6 w1.3.2 特殊指令 22* b9 _3 i# g. O$ k( Q/ G
1.3.3 访问具有副作用的寄存器 27
3 Y l: i! ]7 K7 W/ w) {3 m1 e4 U1.4 对称多处理器虚拟化 28/ V2 H0 w3 y$ d" |/ r
1.4.1 MP Table 28
5 p6 m) B1 g+ o. z. M1.4.2 处理器启动过程 33: }0 i6 n# a7 E! G3 ~. p4 t
1.5 一个简单KVM用户空间实例 41
8 g5 D6 }. W. h* }% e' w/ \1.5.1 创建虚拟机实例 436 |/ o n( Q* b* X' U0 O; k4 p- \
1.5.2 创建内存 43# g& d9 [3 ?( e9 `; w% I
1.5.3 创建处理器 44: \. p2 Q Y8 u, v9 h/ G1 A
1.5.4 Guest 46 p) W( I% z% U
1.5.5 加载Guest镜像到内存 47
1 Y$ v% g. Z+ t2 _, @5 E! d1.5.6 运行虚拟机 477 _7 t- m8 z& Y) E- v! X$ L
第2章 内存虚拟化 49
1 A' B* a3 d( n# A! J- H2.1 内存寻址 49
! y$ @* O, u- c/ q6 k, e4 ?2.1.1 段式寻址 50* G' H7 m- Q% K. n) B
2.1.2 平坦内存模型 502 Z+ M* ^; Y4 N! L+ k1 Z
2.1.3 页式寻址 54, {; S% L* |' \! U1 B2 \9 H1 N; V7 _+ O
2.1.4 页式寻址实例 55
: W9 \$ C, i# I- \4 Z! s! g O2.2 VMM为Guest准备物理内存 61
8 g/ q0 L5 I" w$ s0 C2 W2.2.1 内核是如何获取内存的 62/ V5 n- w& O! N0 e, w+ {
2.2.2 建立内存段信息 641 f4 H/ J; |1 q v
2.2.3 准备中断0x15的处理函数以及设置IVT 65
1 A6 M4 D0 G5 P1 ~2.2.4 中断0x15的处理函数实现 68
3 V7 J& Z% p6 h' l& v) [' h! R8 `' f/ k2.2.5 虚拟内存条 69
! d5 q* ~+ r, A2.3 实模式Guest的寻址 72
7 g5 N+ R7 I: A$ @; T( q2.3.1 设置CPU运行于Virtual-8086模式 746 e S1 k& ~( H' B8 i1 o
2.3.2 设置Guest模式下的cr3寄存器 75' @! X8 R- X# }- `- l1 _5 ~8 D% {
2.3.3 虚拟MMU的上下文 75
9 @* a; ~. a6 n; m) o! l2.3.4 缺页异常处理 77
# ?+ H4 y4 f- z5 F2.4 保护模式Guest的寻址 81
8 \) |9 j4 D8 W1 H. w# l' d2.4.1 偷梁换柱cr3 838 T9 o) F4 [5 M5 X' }
2.4.2 影子页表缺页异常处理 86% S1 X% t+ g0 U) R3 u
2.5 EPT 92
6 i. H/ G! F; D, M) Q. L4 C2.5.1 设置EPT页表 93: _" u2 ^# w* N3 |$ s! o
2.5.2 EPT异常处理 95% ~: @5 L, N( d) _
2.5.3 EPT支持下的地址翻译过程 97
( G: K5 n9 a+ t& N* p: @第3章 中断虚拟化 99
5 @/ x: Y& R) S3 ~3.1 虚拟中断 99
& g N: G1 I; S/ M3 k( E3.2 PIC虚拟化 102% T- d" C7 V% g3 j
3.2.1 可编程中断控制器8259A 103, z0 F( a7 d* B6 a/ r" I4 A6 W
3.2.2 虚拟设备向PIC发送中断请求 106
1 a/ x( W+ V$ u5 H1 k% e2 o3.2.3 记录中断到IRR 107" X. [, W/ U9 `& r2 Q3 `
3.2.4 设置待处理中断标识 108
: a! e/ w$ k+ B3.2.5 中断评估 110
+ U# ^3 r+ [# A' A; u0 q7 Y3.2.6 中断ACK 112
! D% ~' @- n1 P9 G F3.2.7 关于EOI的处理 113& F8 w, y; f# t: o( Q' K
3.2.8 中断注入 114
* N# [9 K1 G, I# K7 `3.3 APIC虚拟化 116, M S3 F2 P( \% R5 o# V
3.3.1 外设中断过程 118
- i* d' `! r+ ?6 a. ~; x3.3.2 核间中断过程 123
6 o# n# V2 k0 V5 |3 i3.3.3 IRQ routing 125/ t# z4 a' a9 I9 b$ _7 w; D% t
3.4 MSI(X)虚拟化 128
n3 A( {# H( r; o3.4.1 MSI(X)Capability数据结构 129
8 @# F# P3 I0 S3.4.2 建立IRQ routing表项 131
" S7 o5 u- x- `- V, U3.4.3 MSI设备中断过程 132: X; b+ [5 F5 D
3.5 硬件虚拟化支持 134 Q* |5 ~' p3 u! ]; E4 C+ |/ X" S5 ~2 e
3.5.1 虚拟中断寄存器页面(virtual-APIC page) 134
6 L8 v8 r1 M. I3.5.2 Guest模式下的中断评估逻辑 136
2 G3 J: L' b: e+ I- _7 G( M, [3.5.3 posted-interrupt processing 139+ K( S' a9 z& J
第4章 设备虚拟化 142( z T0 E# u. f& L$ e! w: v( r
4.1 设备虚拟化模型演进 142' o6 t/ T* n: u% ~6 G) j
4.2 PCI配置空间及其模拟 144
+ P( @& e5 U; B4.3 设备透传 1525 h8 C; J, i$ ]3 a' I" ?6 i
4.3.1 虚拟配置空间 153/ j; f( _1 f+ i0 L
4.3.2 DMA重映射 157
2 _7 Y5 Y8 o* `% r/ Y. h! d# G6 A4.3.3 中断重映射 1605 n" _1 _" l7 r5 v3 j% W0 k/ D+ X! M
4.4 完全虚拟化 166( V r6 ^- G# e! W( @: D% w( a# J0 B
4.4.1 Guest发送数据 167
- w; L$ I' M4 B( y4.4.2 Guest接收数据 173
1 C) \* q# c1 m4 C' l0 \7 Q第5章 Virtio虚拟化 182
5 t' G' q1 V% f" d, Q+ M5.1 I/O栈 182
! h/ G. D; y) A7 D% a5 ?+ e; h5.1.1 文件系统 182
; `6 L: Q, U5 v5.1.2 通用块层 190; b5 q) [& ]% ]/ c; |" b/ o
5.1.3 块设备驱动 194( Q* S: p- ]" O7 V, s, l S
5.1.4 page cache 196
/ j* J' u: M# k0 l4 w. G5.1.5 bio 201
1 |) K$ O7 q2 P' I, C& D5.1.6 I/O调度器 202
+ n a( S" N* m+ U% `2 l& i5.2 Virtio协议 204
* @. m9 o6 S. v( o4 y5.2.1 描述符表 205
* _3 C- m7 s! ~5.2.2 可用描述符区域 207
1 T" ^9 W: D, N. t7 T5 B5.2.3 已用描述符区域 208
2 ^4 d) r( s& h5.2.4 Virtio设备的PCI配置空间 209
: t9 y y( c' p3 l( t. W1 b5.3 初始化Virtqueue 210* m0 Z; j& m) C$ f
5.4 驱动根据I/O请求组织描述符链 216$ V2 A5 `+ p4 Y% r
5.5 驱动通知设备处理请求 221+ T2 R& O% J5 _! P0 K* d) p
5.6 设备处理I/O请求 222
* r4 y* T3 q) L# i; B5.7 驱动侧回收I/O请求 226
& z( G, b/ {* i. ^7 {* R" L' w9 t5.8 设备异步处理I/O 229
% m; B d+ f3 {1 F) H5.9 轻量虚拟机退出 231( M* T2 l, g, s/ J8 n3 u* _1 c
5.9.1 创建eventfd 232
N( \7 S- B% U `! s5.9.2 kvmtool监听eventfd 235
/ Q. D! f; F! d, U( l' D5.9.3 VM exit处理函数唤醒I/O任务 236
3 i8 Y8 u; f# z! o4 P- z: G第6章 网络虚拟化 239; G; X. ?) n" B0 n- L! \$ X
6.1 基于Overlay的虚拟网络方案 239
1 [ @* S; p5 c* M" D3 X6.1.1 计算节点 240$ D. O' Q: ^. s: {7 \
6.1.2 网络节点 247 java8.com+ C3 t2 t" T2 k
6.1.3 Open vSwitch 251$ F+ V4 X3 ]8 \) z5 P4 ^4 Q0 J: }
6.2 虚拟机访问外部主机 255
7 W- y: J0 A: P9 {6.2.1 数据包在计算节点Linux网桥中的处理 256
! k7 Y/ w3 f* J6 ?1 e& H6.2.2 数据包在计算节点的Open vSwitch中的处理 257
& L; p6 y3 j3 u, k9 B6.2.3 数据包在网络节点的Open vSwitch中的处理 265
3 n- |; g( D d/ \+ }6 ^* @6.3 外部主机访问虚拟机 272) {0 _' X$ R* a/ P; }7 q. b' V0 O
6.3.1 数据包在网关中的处理过程 273" t$ }# I% n8 g" Y8 Y
6.3.2 数据包在网络节点的Open vSwitch中的处理 274
; F2 ]6 J; M: I- p6.3.3 数据包在计算节点的Open vSwitch中的处理 279. b; y* A6 J# C% ^9 A, C7 ]- E
6.3.4 数据包在Linux网桥中的处理 2836 B( y/ w* ^, c2 ?1 m2 n% T
2 G4 p+ s# ~/ C% ]+ O4 _
s/ f W" W5 M$ F. d% ^
百度云盘下载地址(完全免费-绝无套路):# l3 g- B" c- t2 z
- m" V2 q5 `7 W. e# w% K) n9 R( m
2 b1 O/ z u% m; F0 P
* a. R& |( b# [ l' H0 Q1 _
/ [& G0 f! v2 M/ h |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|