TA的每日心情 | 开心 6 天前 |
---|
签到天数: 40 天 [LV.5]常住居民I
管理员
- 积分
- 2824
|
Java电子书:深度探索Linux系统虚拟化:原理与实现 PDF 电子书 Java吧 java8.com
& [5 i0 G9 N w( C% B O# u
0 I& h/ e6 M# E9 ^) I作者:王柏生 谢广军出版社:机械工业出版社出版时间:2020年10月 ) D7 B( C: A; M! I$ {
5 m: l# D7 Z- B+ w$ ?$ g. ]
编号:166-Java吧资源免费-X0148【Java吧 java8.com】
; r0 y* O8 s9 m1 j8 |( I1 D; W5 | g( R8 D. M1 P
! s/ B6 m5 m. i8 r0 U& z! j, Y, f' V( q4 R& v
目录:
9 j: ?& B; }8 O6 S5 ]第1章 CPU虚拟化 1% g8 j7 P. w$ \9 E9 u3 @
1.1 x86架构CPU虚拟化 1
, n1 V. Y3 W6 L6 `% i1.1.1 陷入和模拟模型 2, z% V" P& z k, g O0 b! q
1.1.2 x86架构虚拟化的障碍 2
5 q8 L3 W7 z8 U1.1.3 VMX 33 Q8 v) ^) ^5 Y: o6 b. A0 W
1.1.4 VCPU生命周期 5
! r3 d9 i6 s9 T' n9 |% O4 X1.2 虚拟机切入和退出 8( ?- G! f9 ^. y+ C# N- N
1.2.1 GCC内联汇编 8+ K# p" Y7 R' e( i0 {/ H: R: u
1.2.2 虚拟机切入和退出及相关的上下文保存 10# m1 V- k* E( M+ X3 |0 A5 ]7 I
1.3 陷入和模拟 15
) ~7 @& \4 f) ^2 ~' a3 S1.3.1 访问外设 15" C, [; K/ z, l" ?9 J) @ c
1.3.2 特殊指令 226 W6 Z' L- ]& a) ]4 {. X
1.3.3 访问具有副作用的寄存器 278 J) K7 Q% _# C$ a
1.4 对称多处理器虚拟化 288 r' |- r9 ]3 \& e, v9 y$ a- A
1.4.1 MP Table 28. }7 O0 o& {) E( ^1 e
1.4.2 处理器启动过程 33
% v* s) |6 z& l$ h* [) Z. ]1.5 一个简单KVM用户空间实例 418 V' B5 e5 b/ Y
1.5.1 创建虚拟机实例 43; c6 f, u! T1 f9 X2 w( N6 E
1.5.2 创建内存 435 F2 Q1 ~- N" B) }
1.5.3 创建处理器 44
8 O6 v U, Y" N+ T* u1.5.4 Guest 46* Q9 ]; W4 _% W [# d
1.5.5 加载Guest镜像到内存 47
- i: Y" Z/ c7 {- D1.5.6 运行虚拟机 476 w( J' p$ K! D+ q8 c" R, @* S" o
第2章 内存虚拟化 49/ C; ~+ J4 Z8 H
2.1 内存寻址 49
# C& z+ v2 ~+ \; e( P6 p2.1.1 段式寻址 50
) J0 L# K1 |! B, {, ^# f) L2 _) R2.1.2 平坦内存模型 503 N$ _' p( D: @$ }2 q/ T p. ?! P
2.1.3 页式寻址 54
4 x3 O6 S6 y3 N3 p. n9 c2.1.4 页式寻址实例 552 |) W4 {0 m$ |
2.2 VMM为Guest准备物理内存 61$ N3 ^ h! _% ]$ ~
2.2.1 内核是如何获取内存的 62
/ R7 n1 C* c2 Y/ p4 y2.2.2 建立内存段信息 642 J7 @" {: _+ Z0 @8 A
2.2.3 准备中断0x15的处理函数以及设置IVT 652 b/ o! M& a! Z' s( ?
2.2.4 中断0x15的处理函数实现 68$ ~% x$ G% T6 h
2.2.5 虚拟内存条 696 f' M* g. g) l. F0 w1 m
2.3 实模式Guest的寻址 72
8 v, U* o. ^! F O/ s0 C/ q9 m- B2.3.1 设置CPU运行于Virtual-8086模式 74- e8 D) `1 q$ o, V2 }) W
2.3.2 设置Guest模式下的cr3寄存器 75
: D" F+ N3 b- D0 I3 S2.3.3 虚拟MMU的上下文 75
2 r @$ G9 }" L; p o4 a$ P2.3.4 缺页异常处理 77
! S% {: \1 \0 D3 L/ D4 V7 D9 n2.4 保护模式Guest的寻址 81* r/ T. G1 d I3 |1 E
2.4.1 偷梁换柱cr3 83
5 [: A1 Q% d1 K3 F2.4.2 影子页表缺页异常处理 86
6 f4 m) ]- n8 \7 T' K2.5 EPT 92
4 l- v8 t& R6 O2.5.1 设置EPT页表 93
N* S" x6 j) \8 [9 s! O& w7 ^) f2.5.2 EPT异常处理 95
3 @9 z( Y6 z' J6 y& X1 x2.5.3 EPT支持下的地址翻译过程 977 q; ^; Y& F0 E1 x$ s/ m* \
第3章 中断虚拟化 99. V9 z6 a* E& t5 @" H- h! O/ Y
3.1 虚拟中断 99" o9 h8 B) J$ C; p" W
3.2 PIC虚拟化 102
* X& m0 j. `* N3.2.1 可编程中断控制器8259A 103; ^. t! E, p Z( A" x* w4 @4 Z9 X0 b- N
3.2.2 虚拟设备向PIC发送中断请求 1066 ]( b" p+ [2 U2 D9 A
3.2.3 记录中断到IRR 107
) e2 p: ^9 t4 d) G/ N, M& P& q3.2.4 设置待处理中断标识 108
' o* I$ f: T' P) O3.2.5 中断评估 110
$ p8 V2 ?* n& v- a3.2.6 中断ACK 112 x! s7 L9 X8 U8 I
3.2.7 关于EOI的处理 113! b; f$ x" t; \' Z2 Q9 Z6 ^1 l# Z# M
3.2.8 中断注入 114
& e! P, E6 }4 P E1 y. ~& B3.3 APIC虚拟化 1167 }) v, \& n; s3 T+ k0 ^
3.3.1 外设中断过程 118+ A( x$ \& ~# N( ]9 b, [5 Z C, k
3.3.2 核间中断过程 1235 A# o2 V* {4 K+ A _7 d% T+ h
3.3.3 IRQ routing 125# n1 k6 O8 n" I5 K
3.4 MSI(X)虚拟化 128$ V0 u9 u5 W4 T/ \+ Y' d) j8 Q
3.4.1 MSI(X)Capability数据结构 129
* a* ~. d C& A' Q1 }& `3.4.2 建立IRQ routing表项 131
9 d- |6 Q5 H6 E* E3 R; b" g3.4.3 MSI设备中断过程 132' ]! U; |! K# Z9 D5 Y- k
3.5 硬件虚拟化支持 134
. w2 d+ z3 u2 X0 {" l7 B! Z3.5.1 虚拟中断寄存器页面(virtual-APIC page) 134
$ b) O/ O; r/ t3.5.2 Guest模式下的中断评估逻辑 136
U7 ?* ?2 D. b6 u8 y, S2 f3.5.3 posted-interrupt processing 139. [$ x+ i2 q% A+ s Z
第4章 设备虚拟化 142
3 e# y8 X8 `8 ~+ H h8 [4.1 设备虚拟化模型演进 142
. I; e2 Q o& C1 {, a4.2 PCI配置空间及其模拟 144
8 R; G% J& K& i( I4.3 设备透传 1525 B5 }8 e2 [% G8 N) T1 v
4.3.1 虚拟配置空间 153/ e& D+ p7 s' F6 j' F
4.3.2 DMA重映射 157& H1 r- o4 k" X5 Q% F
4.3.3 中断重映射 160: i1 w' b w* x
4.4 完全虚拟化 1664 ]- Q% F' Y9 ]
4.4.1 Guest发送数据 167
" a$ A: e* m" F5 G- u4.4.2 Guest接收数据 173
6 m) M9 t3 l/ y/ {9 _4 k; P4 l4 Q第5章 Virtio虚拟化 1829 U+ M9 \: V; P& U" ^6 w" L
5.1 I/O栈 182) D) e G" p6 F# r" i9 ?6 ]9 f
5.1.1 文件系统 182$ Z5 N& ?* J# O0 H
5.1.2 通用块层 190
' M; T1 X0 Q2 A% ]5.1.3 块设备驱动 194
+ ~( F9 D. [* E: [5 r3 g, Q8 m9 _* q5.1.4 page cache 1967 i% Q: O% l, y/ S
5.1.5 bio 201
& q$ F' f i0 q& `7 _# j4 V5.1.6 I/O调度器 202
( x# m; o8 A, q. Z1 D; J6 w5.2 Virtio协议 2040 e" i: P# t4 ^ Q
5.2.1 描述符表 205
9 T O! B- n X- Z o( ~; i5 d1 ]5.2.2 可用描述符区域 207
8 T! I$ r& M: `2 B+ h2 U7 j5.2.3 已用描述符区域 208
- R: ?+ H T% D1 u+ }6 G5 x5 @: i5.2.4 Virtio设备的PCI配置空间 2093 _2 }- j- I/ w7 P5 @3 L
5.3 初始化Virtqueue 210
' t% G- y2 g- P4 }" ?1 J& y( T5.4 驱动根据I/O请求组织描述符链 216( ?3 I7 A( {: s* P
5.5 驱动通知设备处理请求 221
6 s2 F4 p; `3 j# `5.6 设备处理I/O请求 2221 a/ B4 \# w, K# P. j# ~1 p: s
5.7 驱动侧回收I/O请求 226
6 S" c: |/ L7 R0 b5.8 设备异步处理I/O 229
) G& N# ^3 B& C0 V `' S5.9 轻量虚拟机退出 2314 [& s! [. [+ g9 X
5.9.1 创建eventfd 232
4 u( A- ~( F% ?: l3 q, }5.9.2 kvmtool监听eventfd 235
+ `, t( F0 n9 d- S7 b5.9.3 VM exit处理函数唤醒I/O任务 2368 {0 T+ e/ t3 v$ A: d% \
第6章 网络虚拟化 239& c3 W8 M& j/ k
6.1 基于Overlay的虚拟网络方案 239
. }0 @5 E/ W# ~: l6.1.1 计算节点 240# |+ a6 E1 U8 s
6.1.2 网络节点 247 java8.com
- I( z7 q) g6 U+ O" | j+ J) D6.1.3 Open vSwitch 2511 [( {* I0 O' O ?; R2 x+ h) I
6.2 虚拟机访问外部主机 255
# Q# k p# O h+ c6.2.1 数据包在计算节点Linux网桥中的处理 256% ^: i( X% {7 q4 `5 c( A% w. ~- w
6.2.2 数据包在计算节点的Open vSwitch中的处理 257
. N& T& I' L5 E1 y6.2.3 数据包在网络节点的Open vSwitch中的处理 265
, F8 o$ P8 f, A/ F6.3 外部主机访问虚拟机 272
) I% @8 u+ q% n6.3.1 数据包在网关中的处理过程 273 W T7 h# \7 {7 r
6.3.2 数据包在网络节点的Open vSwitch中的处理 2744 N' \% K$ \" h0 k+ c
6.3.3 数据包在计算节点的Open vSwitch中的处理 279
0 ~9 F. n0 V9 L; X4 B: x( g9 H# h6.3.4 数据包在Linux网桥中的处理 283
! n* Q5 r$ |5 B2 O" t+ W ) W- N1 T. k1 D4 t) ` b
& |3 q5 a9 j7 j9 o
百度云盘下载地址(完全免费-绝无套路):
+ h l {1 s0 N4 `
- R, Q- i2 E, Y+ s' z, o6 x' G( t- d/ Y0 }
2 o" h+ h3 Q( h3 `
5 D6 m; { I7 a9 I
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|