封面
版权信息
对本书的赞誉
前言
Linux体系结构
推荐预备知识
本书章节概述
致谢
第1章 进程与线程
1.1 进程和线程的概念
1.1.1 进程的历史
1.1.2 线程的不同玩法
1.2 Linux对进程和线程的实现
1.2.1 Linux中的进程实现
1.2.2 进程创建之后
1.2.3 内核线程和进程的区别
1.2.4 用户线程库pthread
1.3 进程的调度
1.3.1 进程调度机制的架构
1.3.2 进程切换的原理
1.3.3 调度中的CPU亲和度
1.4 在应用程序中管理进程和线程
1.4.1 Memcached线程池模型分析
1.4.2 Nginx进程模型分析
1.5 处理进程和线程的相关工具
1.5.1 开发环境调试线程
1.5.2 进程崩溃调试方法
1.5.3 strace工具
1.5.4 SystemTap工具
1.5.5 DTrace工具
1.6 本章小结
第2章 并发
2.1 什么是并发
2.1.1 并发是如何产生的
2.1.2 并发会带来什么问题
2.1.3 如何解决并发带来的问题
2.2 操作系统会在哪些场景遇到并发
2.3 Linux中并发工具的实现
2.3.1 原子变量
2.3.2 自旋锁
2.3.3 信号量
2.3.4 互斥锁
2.3.5 读写锁
2.3.6 抢占
2.3.7 per-cpu变量
2.3.8 RCU机制
2.3.9 内存屏障
2.4 常见开源软件中的并发问题分析
2.4.1 Nginx原子性
2.4.2 Memcached中的互斥锁
2.4.3 Redis无锁解决方案
2.4.4 Linux中惊群问题分析
2.4.5 解决MyCat同步问题
2.4.6 false-sharing问题解决方案
2.5 本章小结
第3章 内存管理
3.1 为什么需要内存管理
3.2 MMU和地址空间
3.2.1 虚拟地址、线性地址、物理地址
3.2.2 MMU的内存管理机制
3.3 Linux中的分段和分页机制
3.3.1 分段机制
3.3.2 分页机制
3.4 Linux的内存管理
3.4.1 物理内存管理
3.4.2 进程地址空间管理
3.5 Linux的内存分配和管理
3.5.1 物理内存分配算法
3.5.2 slab分配器
3.5.3 内核态内存管理
3.5.4 用户态内存申请
3.6 栈内存分配和管理
3.7 内存管理案例分析
3.7.1 Memcached内存管理机制分析
3.7.2 Redis内存管理机制分析
3.8 本章小结
第4章 中断机制
4.1 x86系统的中断机制
4.1.1 x86中断架构
4.1.2 x86在保护模式下的中断
4.2 Linux对中断的支持和实现
4.2.1 初始化IRQ中断门
4.2.2 中断响应流程
4.2.3 中断回调handler注册过程
4.3 Linux加速中断处理的机制
4.3.1 软中断
4.3.2 tasklet
4.3.3 工作队列
4.4 系统调用
4.5 时钟中断
4.6 信号处理机制
4.7 Nginx信号处理机制
4.8 本章小结
第5章 输入输出
5.1 I/O在Linux中的生命周期
5.1.1 vfs层
5.1.2 文件系统层
5.1.3 Block层
5.1.4 scsi层
5.1.5 I/O流程总结
5.2 I/O调度器
5.3 多队列机制
5.4 I/O多路复用实现
5.5 Redis对epoll的封装
5.6 Nginx文件异步I/O
5.7 tail指令为何牛
5.8 零拷贝技术应用分析
5.8.1 mmap
5.8.2 sendfile
5.8.3 mmap和sendfile在开源软件中的使用
5.9 本章小结
第6章 文件系统
6.1 Linux文件系统架构
6.2 文件系统的主要功能
6.2.1 文件系统的安装
6.2.2 文件路径查找
6.3 ext4文件系统
6.3.1 磁盘布局
6.3.2 inode定位
6.3.3 碎片问题解决方案
6.3.4 extent tree结构
6.4 淘宝TFS小文件系统分析
6.5 本章小结
第7章 Linux的进程隔离技术与Docker容器
7.1 虚拟化相关技术
7.2 Linux进程隔离技术
7.2.1 chroot
7.2.2 namespace
7.2.3 cgroup
7.3 Docker容器的部分实现
7.3.1 新版Docker架构
7.3.2 containerd的实现
7.4 本章小结
第8章 Linux网络层数据流分析
8.1 数据在网络层的流转
8.1.1 sk_buff结构
8.1.2 数据流转过程
8.2 socket接口层的实现
8.2.1 socket系统初始化
8.2.2 socket创建
8.2.3 socket绑定
8.2.4 socket监听
8.2.5 socket接受连接
8.2.6 新连接的到来
8.2.7 socket整体流程
8.3 netfilter和lvs
8.3.1 netfilter
8.3.2 lvs
8.4 网络相关的一些参数
8.4.1 Java socket相关的参数
8.4.2 Linux TCP相关队列
8.5 Nginx服务器监听socket初始化过程
8.6 本章小结
更新时间:2019-01-05 06:09:13