科技
类型
7.9
豆瓣评分
可以朗读
语音朗读
299千字
字数
2020-10-01
发行日期
展开全部
主编推荐语
百度主任架构师和百度云副总裁5年两易其稿,从CPU、内存、中断、外设、网络5维度深入讲解Linux系统虚拟化。
内容简介
这是一部深度讲解如何在Linux操作系统环境下用软件虚拟出一台“物理”计算机的著作。
两位作者都是百度的资深技术专家,一位是百度的主任架构师,一位是百度智能云的副总经理,都在操作系统和虚拟化等领域有多年的实践经验。
本书从计算机体系结构、操作系统、硬件等多个方面深度探索了如何从CPU、内存、中断、外设、网络5个维度去虚拟化Linux系统,不仅剖析了其中的关键技术原理,而且深入阐述了具体的实现。
目录
- 版权信息
- 前言
- 第1章 CPU虚拟化
- 1.1 x86架构CPU虚拟化
- 1.1.1 陷入和模拟模型
- 1.1.2 x86架构虚拟化的障碍
- 1.1.3 VMX
- 1.1.4 VCPU生命周期
- 1.2 虚拟机切入和退出
- 1.2.1 GCC内联汇编
- 1.2.2 虚拟机切入和退出及相关的上下文保存
- 1.3 陷入和模拟
- 1.3.1 访问外设
- 1.3.2 特殊指令
- 1.3.3 访问具有副作用的寄存器
- 1.4 对称多处理器虚拟化
- 1.4.1 MP Table
- 1.4.2 处理器启动过程
- 1.5 一个简单KVM用户空间实例
- 1.5.1 创建虚拟机实例
- 1.5.2 创建内存
- 1.5.3 创建处理器
- 1.5.4 Guest
- 1.5.5 加载Guest镜像到内存
- 1.5.6 运行虚拟机
- 第2章 内存虚拟化
- 2.1 内存寻址
- 2.1.1 段式寻址
- 2.1.2 平坦内存模型
- 2.1.3 页式寻址
- 2.1.4 页式寻址实例
- 2.2 VMM为Guest准备物理内存
- 2.2.1 内核是如何获取内存的
- 2.2.2 建立内存段信息
- 2.2.3 准备中断0x15的处理函数以及设置IVT
- 2.2.4 中断0x15的处理函数实现
- 2.2.5 虚拟内存条
- 2.3 实模式Guest的寻址
- 2.3.1 设置CPU运行于Virtual-8086模式
- 2.3.2 设置Guest模式下的cr3寄存器
- 2.3.3 虚拟MMU的上下文
- 2.3.4 缺页异常处理
- 2.4 保护模式Guest的寻址
- 2.4.1 偷梁换柱cr3
- 2.4.2 影子页表缺页异常处理
- 2.5 EPT
- 2.5.1 设置EPT页表
- 2.5.2 EPT异常处理
- 2.5.3 EPT支持下的地址翻译过程
- 第3章 中断虚拟化
- 3.1 虚拟中断
- 3.2 PIC虚拟化
- 3.2.1 可编程中断控制器8259A
- 3.2.2 虚拟设备向PIC发送中断请求
- 3.2.3 记录中断到IRR
- 3.2.4 设置待处理中断标识
- 3.2.5 中断评估
- 3.2.6 中断ACK
- 3.2.7 关于EOI的处理
- 3.2.8 中断注入
- 3.3 APIC虚拟化
- 3.3.1 外设中断过程
- 3.3.2 核间中断过程
- 3.3.3 IRQ routing
- 3.4 MSI(X)虚拟化
- 3.4.1 MSI(X)Capability数据结构
- 3.4.2 建立IRQ routing表项
- 3.4.3 MSI设备中断过程
- 3.5 硬件虚拟化支持
- 3.5.1 虚拟中断寄存器页面(virtual-APIC page)
- 3.5.2 Guest模式下的中断评估逻辑
- 3.5.3 posted-interrupt processing
- 第4章 设备虚拟化
- 4.1 设备虚拟化模型演进
- 4.2 PCI配置空间及其模拟
- 4.3 设备透传
- 4.3.1 虚拟配置空间
- 4.3.2 DMA重映射
- 4.3.3 中断重映射
- 4.4 完全虚拟化
- 4.4.1 Guest发送数据
- 4.4.2 Guest接收数据
- 第5章 Virtio虚拟化
- 5.1 I/O栈
- 5.1.1 文件系统
- 5.1.2 通用块层
- 5.1.3 块设备驱动
- 5.1.4 page cache
- 5.1.5 bio
- 5.1.6 I/O调度器
- 5.2 Virtio协议
- 5.2.1 描述符表
- 5.2.2 可用描述符区域
- 5.2.3 已用描述符区域
- 5.2.4 Virtio设备的PCI配置空间
- 5.3 初始化Virtqueue
- 5.4 驱动根据I/O请求组织描述符链
- 5.5 驱动通知设备处理请求
- 5.6 设备处理I/O请求
- 5.7 驱动侧回收I/O请求
- 5.8 设备异步处理I/O
- 5.9 轻量虚拟机退出
- 5.9.1 创建eventfd
- 5.9.2 kvmtool监听eventfd
- 5.9.3 VM exit处理函数唤醒I/O任务
- 第6章 网络虚拟化
- 6.1 基于Overlay的虚拟网络方案
- 6.1.1 计算节点
- 6.1.2 网络节点
- 6.1.3 Open vSwitch
- 6.2 虚拟机访问外部主机
- 6.2.1 数据包在计算节点Linux网桥中的处理
- 6.2.2 数据包在计算节点的Open vSwitch中的处理
- 6.2.3 数据包在网络节点的Open vSwitch中的处理
- 6.3 外部主机访问虚拟机
- 6.3.1 数据包在网关中的处理过程
- 6.3.2 数据包在网络节点的Open vSwitch中的处理
- 6.3.3 数据包在计算节点的Open vSwitch中的处理
- 6.3.4 数据包在Linux网桥中的处理
展开全部
出版方
机械工业出版社有限公司
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。