展开全部

主编推荐语

本书带你深入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 二进制安全
展开全部

评分及书评

评分不足
1个评分
  • 用户头像
    给这本书评了
    5.0

    本书主要描述 Linux 系统的总体框架和设计思想,包含很多可以直接操作的实例。编写本书的目的是希望读者对 Linux 系统背后的逻辑有一个全面的了解。本书对比较核心且常用的技术点有更加深入的解释,对实际使用 Linux 系统工作大有裨益,同时,选择重点的方向进行源码级深度分析,包含大量的案例,而且增加了与 Windows 同类操作系统的对比,涉及 Fuchsia OS Android 系统的一些实现,对操作系统的描述更清晰。

      转发
      评论

    出版方

    电子工业出版社

    电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。