计算机
类型
可以朗读
语音朗读
503千字
字数
2022-07-01
发行日期
展开全部
主编推荐语
本书带你深入Linux的世界,让你的嵌入式和运维开发更上一层楼。
内容简介
本书主要描述Linux系统的总体框架和设计思想,包含很多可以直接操作的实例。希望读者对Linux系统背后的逻辑有一个全面的了解。
本书对比较核心且常用的技术点有更加深入的解释,对实际使用Linux系统工作大有裨益,同时,选择重点的方向进行源码级深度分析,包含大量的案例,而且增加了与Windows同类操作系统的对比,涉及FuchsiaOS和Android系统的一些实现,对操作系统的描述更清晰。
本书适合Linux系统开发人员、嵌入式系统开发人员阅读,也可供计算机相关专业的师生阅读。
目录
- 版权信息
- 内容简介
- 推荐序一
- 推荐序二
- 前言
- 第1章 操作系统总览
- 1.1 操作系统简介
- 1.2 如何形成一个内核
- 1.3 主要操作系统与Linux的对比
- 1.3.1 Linux和Android
- 1.3.2 Windows下Linux运行环境的发展
- 1.3.3 Fuchsia OS与Windows、Linux的对比
- 第2章 系统结构
- 2.1 Linux内核整体结构
- 2.1.1 内核模块
- 2.1.2 内核符号表
- 2.2 Linux内核数据结构
- 2.2.1 链表与哈希表
- 2.2.2 双向链表
- 2.3 hlist
- 2.3.1 llist
- 2.3.2 树与IDR
- 2.3.3 xarray
- 第3章 锁与系统调用
- 3.1 原子操作
- 3.1.1 内存一致性
- 3.1.2 原子类型定义
- 3.1.3 cmpxchg实现
- 3.2 引用计数
- 3.3 自旋锁
- 3.4 读写锁与顺序锁
- 3.5 信号量
- 3.6 读写信号量
- 3.6.1 获得读锁
- 3.6.2 锁状态与锁交接
- 3.6.3 锁持有
- 3.6.4 等待链表
- 3.6.5 读锁慢速路径
- 3.7 互斥锁
- 3.8 RCU锁
- 3.8.1 RCU锁基本接口
- 3.8.2 grace period等待
- 3.8.3 SRCU
- 3.8.4 RCU锁、读写锁与顺序锁对比
- 3.8.5 hlist中的RCU锁
- 3.8.6 reuseport中的RCU锁
- 3.9 引用计数
- 4.1 信号
- 4.1.1 Linux信号处理机制的设计
- 4.1.2 Windows的Event语义设计
- 4.2 中断
- 4.2.1 IDT(中断描述符表)
- 4.2.2 IPI中断
- 4.3 系统调用
- 4.3.1 系统调用原理
- 4.3.2 vsyscall与VDSO
- 4.3.3 系统调用截断
- 第5章 Linux系统的启动与进程
- 5.1 Linux启动过程的组件
- 5.1.1 启动过程相关组件
- 5.1.2 最小系统的制作和启动
- 5.2 内核启动流程:EFI stub
- 5.3 进程
- 5.3.1 进程概述
- 5.3.2 进程内存和PID
- 5.3.3 进程生命周期
- 第6章 调度
- 6.1 任务调度
- 6.1.1 调度优先级
- 6.1.2 上下文切换
- 6.1.3 运行队列与调度类
- 6.1.4 调度域、调度组与调度实体
- 6.1.5 TTWU(唤醒)
- 6.2 时钟
- 6.2.1 时钟概念
- 6.2.2 计时器与定时器
- 6.3 Futex系统调用
- 6.4 C-State
- 第7章 内存管理
- 7.1 地址空间
- 7.1.1 64位Linux地址空间
- 7.1.2 32位Linux地址空间
- 7.2 寻址
- 7.2.1 64位下的寻址
- 7.2.2 Intel的硬件四级寻址过程
- 7.2.3 操作系统的页状态和权限控制
- 7.2.4 页框回收算法
- 7.2.5 段寄存器
- 7.3 堆内存管理
- 7.3.1 用户空间与内核空间的堆内存管理
- 7.3.2 Buddy思想与Slab思想
- 7.3.3 内存回收(PFRA)
- 7.3.4 BDI
- 第8章 存储
- 8.1 VFS
- 8.1.1 文件句柄与文件描述符表
- 8.1.2 _alloc_fd、fd_install、dup2与close_on_exec
- 8.1.3 open系统调用
- 8.1.4 flock文件锁与文件内容锁
- 8.2 通用块层
- 8.2.1 通用块层功能概览
- 8.2.2 bio和bio_set
- 8.2.3 request和request_queue
- 8.2.4 电梯算法
- 8.3 缓存层
- 8.3.1 Linux与Windows在缓存设计上的不同
- 8.3.2 Linux下的缓存机制
- 8.4 文件系统与Ext4
- 8.4.1 Linux文件系统的特性与框架
- 8.4.2 文件系统的种类
- 8.4.3 文件系统的抽象:VFS
- 8.4.4 Ext4文件系统实践
- 8.5 预读机制
- 8.5.1 预读机制框架
- 8.5.2 预读算法
- 第9章 套接字(socket)
- 9.1 socket概览
- 9.1.1 socket类型与接口
- 9.1.2 Linux socket连接模型
- 9.1.3 Linux socket的锁
- 9.1.4 epoll
- 9.2 Netlink
- 9.2.1 Netlink消息格式
- 9.2.2 Netlink功能模块
- 9.2.3 genetlink的使用
- 9.2.4 inet_diag模块
- 9.2.5 RTNETLINK
- 9.3 BPF与eBPF
- 9.3.1 BPF
- 9.3.2 eBPF
- 第10章 网络
- 10.1 网络架构
- 10.2 IP
- 10.2.1 路由条目的意义
- 10.2.2 IP管理
- 10.2.3 IP隧道
- 10.3 TCP
- 10.3.1 TCP的无损特性
- 10.3.2 TCP的连接状态
- 10.3.3 TCP拥塞控制
- 10.4 负载均衡
- 10.4.1 负载均衡的核心技术点
- 10.4.2 四层负载均衡常见架构
- 10.4.3 一致性哈希和分布式哈希
- 10.5 网络服务质量与安全性
- 10.5.1 TCP安全性
- 10.5.2 QoS
- 10.5.3 NAT
- 10.6 netfilter
- 第11章 设备管理
- 11.1 设备模型
- 11.1.1 sys文件系统
- 11.1.2 设备变化通知用户端
- 11.1.3 设备类型
- 11.2 tty子系统
- 11.2.1 tty框架与ttyS硬件
- 11.2.2 terminal硬件
- 11.2.3 tty结构
- 11.2.4 getty、login与shell
- 11.2.5 /dev/ptmx与/dev/pts/n
- 11.2.6 SSH
- 11.3 PCI与USB
- 11.3.1 PCI
- 11.3.2 USB
- 第12章 二进制
- 12.1 二进制原理
- 12.1.1 编译、链接与执行
- 12.1.2 裸程序
- 12.1.3 加载器
- 12.1.4 链接过程
- 12.2 ELF格式
- 12.2.1 ABI
- 12.2.2 ELF
- 12.3 函数调用约定
- 12.4 二进制安全
展开全部
出版方
电子工业出版社
电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。