深入Linux内核架构与底层原理
2020-03-16 14:15:02 0 举报
AI智能生成
深入Linux内核架构与底层原理
作者其他创作
大纲/内容
7 安全
7.1 概览
7.2 密码学
7.2.1 密码学概览
7.2.2 摘要
7.2.3 加密
7.2.4 认证
7.2.5 数字签名
7.2.6 秘钥交换
7.3 Linux用户和权限系统
7.3.1 系统启动时的权限
7.3.2 系统启动后的权限
7.3.3 内核中的用户和权限模型
7.3.4 Linux安全体系
7.4 网络安全
7.4.1 netfilter概览
7.4.2 Filter(LSF、BPF、eBPF)
7.5 函数调用的调试
7.6 内核调试
7.7 PAM和Apparmor
7.8 内核安全
7.9 常用安全工具和项目
8 网络
8.1 网络架构
8.2 socket
8.2.1 socket简介
8.2.2 类型与接口
8.2.3 Linux socket连接模型
8.3 IP
8.3.1 IP管理
8.3.2 IP隧道
8.4 TCP
8.4.1 TCP存在的原因
8.4.2 TCP的连接状态
8.4.3 TCP拥塞控制
8.4.4 TCP其他的功能特点
8.5 网络服务质量与安全性
8.5.1 TCP安全性
8.5.2 QoS
8.5.3 NAT
9 总线与设备变动
9.1 PCI
9.2 USB
9.2.1 USB概览
9.2.2 USB子系统上层(USB设备驱动层)
9.2.3 USB子系统的中层(USB core)和下层
9.2.4 Platform总线
9.3 用户空间的设备管理
9.3.1 设备变化通知用户端
9.3.2 设备类型
9.3.3 内核数据结构的面向用户组织KObject
10 二进制
10.1 函数调用
10.1.1 函数调用约定
10.1.2 栈结构
10.2 Linux的二进制兼容性问题
10.2.1 进程的执行
10.2.2 同操作系统下的ABI
10.2.3 内核版本
10.2.4 库
10.2.5 编译器
10.3 ELF文件执行原理
10.3.1 ELF文件分类
10.3.2 ELF文件格式
10.3.3 进程加载器
10.3.4 链接与执行
10.3.5 ELF文件的初始化
10.3.6 进程初始化前的加载
10.3.7 链接环境变量
10.3.8 内核加载ELF
10.3.9 Audit接口
10.3.10 一个简单的ELF解析程序
10.4 ELF的安全性
10.4.1 二进制修改
10.4.2 二进制格式的病毒和木马
10.4.3 二进制安全特性简介
11 存储
11.1 磁盘管理
11.2 存储协议
11.3 通用块层抽象
11.3.1 通用块层功能概览
11.3.2 数据完整性校验
11.3.3 设备抽象
11.3.4 BIO和bio_set
11.3.5 request
11.3.6 request_queue
11.3.7 电梯算法
11.4 缓存层
11.4.1 BDI:缓存设备
11.4.2 页回收
11.4.3 缓存机制
11.4.4 缓存页的状态
11.5 文件系统
11.5.1 文件系统的种类和选用
11.5.2 拥有特殊功能的文件系统
11.5.3 其他领域的文件系统
11.5.4 文件系统的意义
11.5.5 文件系统的抽象:VFS
11.5.6 ext4
11.6 存储系统
11.6.1 存储形式
11.6.2 存储格式
11.6.3 分布式存储系统
12 虚拟化与云
12.1 常见的虚拟化方案
12.2 虚拟文件系统
12.3 cgroup
12.4 Docker
13 硬件专用子系统
13.1 无线子系统
13.2 音频子系统
作者介绍
1 总览
1.1 简介
1.2 Linux学习曲线和职业曲线
1.2.1 给自己定级
1.2.2 使用者
1.2.3 开发者
1.3 如何形成一个内核
1.3.1 内核形成过程
1.3.2 Exokernels和Anykernel
1.3.3 内核为何使用C语言
2 内核架构
2.1 常见架构范式与核心系统
2.1.1 Linux内核上下层通信方式
2.1.2 横向系统和纵向系统
2.2 基础功能元素
2.2.1 模块支持
2.2.2 模块编程可以使用的内核组件
2.3 特殊硬件框架
2.4 特殊软件机制
3 内核数据结构
3.1 链表与哈希表
3.1.1 双向链表
3.1.2 hlist
3.1.3 ScatterList
3.1.4 llist
3.2 其他数据结构
3.2.1 树
3.2.2 FIFO文件
3.2.3 位数组bitmap
4 Linux系统的启动
4.1 启动的硬件支持
4.1.1 固件
4.1.2 磁盘分区管理
4.2 Bootloader和内核二进制
4.2.1 Bootloader
4.2.2 内核二进制
4.3 Linux的启动原理
4.3.1 Linux的最小系统制作和启动
4.3.2 initrd文件系统
4.3.3 EFI启动桩
4.3.4 启动管理程序
4.3.5 Linux内核启动顺序
5 进程
5.1 进程原理
5.1.1 服务与进程
5.1.2 资源与进程
5.1.3 进程概念
5.1.4 父子关系
5.1.5 ptrace系统调用
5.2 进程调度
5.2.1 调度策略
5.2.2 进程调度策略的配置
5.2.3 公平问题
5.2.4 内核线程的调度
5.3 资源
5.3.1 资源锁
5.3.2 资源限制
5.3.3 进程对系统内存的使用
5.4 多进程与进程通信
5.4.1 多进程模型
5.4.2 用户进程间通信
5.4.3 内核与用户空间的进程通信
5.4.4 Netlink功能模块
5.4.5 其他Netlink种类
5.4.6 genetlink的使用
5.4.7 inet_diag模块
5.4.8 RTNETLINK
6 Linux内核内存管理
6.1 内存模型
6.1.1 内存模型概览
6.1.2 内存组织方式
6.2 申请和释放内存
6.2.1 高端内存
6.2.2 设备内存映射
6.2.3 启动时内存的申请和释放:bootmem
6.2.4 Mempool
6.2.5 CMA(连续内存分配器)
6.2.6 伙伴算法
6.2.7 slab
6.2.8 用户端内存管理基础组件
6.3 内存组件
6.3.1 内存回收算法(PFRA)
6.3.2 其他内存功能组件
6.3.3 内存压缩
6.3.4 BDI(backing device info)
0 条评论
下一页