深入Linux内核架构与底层原理(第2版)

深入Linux内核架构与底层原理(第2版)

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

本书带你深入Linux的世界,让你的嵌入式和运维开发更上一层楼。

内容简介

本书主要描述Linux系统的总体框架和设计思想,包含很多可以直接操作的实例。希望读者对Linux系统背后的逻辑有一个全面的了解。

本书对比较核心且常用的技术点有更加深入的解释,对实际使用Linux系统工作大有裨益,同时,选择重点的方向进行源码级深度分析,包含大量的案例,而且增加了与Windows同类操作系统的对比,涉及FuchsiaOS和Android系统的一些实现,对操作系统的描述更清晰。

本书适合Linux系统开发人员、嵌入式系统开发人员阅读,也可供计算机相关专业的师生阅读。

作者简介

作者刘京洋,从事Linux内核相关研发十余年,工作内容包括对内核子系统的实际产业应用。尤其擅长网络研发与性能调优,对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 二进制安全

深入Linux内核架构与底层原理(第2版)是2022年由电子工业出版社出版,作者刘京洋。

得书感谢您对《深入Linux内核架构与底层原理(第2版)》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
微服务设计原理与架构 电子书
本书共分为四大篇幅内容,包括:1.直面微服务篇,剖析微服务架构的基本特征、优势和劣势,并给出实施微服务架构的系统方法。2.服务建模篇,介绍服务建模的思路和方法,并从服务拆分和集成角度对服务模型进行重点展开。3.服务实现篇,介绍微服务架构涉及的基础组件、关键要素以及目前主流的技术实现体系。4.服务转型篇,包括对遗留系统进行微服务架构的改造方法以及对研发过程转型的讨论。
分布式架构原理与实践 电子书
本书从软件结构的发展历史入手,描述了分布式架构的特性和存在的问题,并围绕这些问题展开了分析和实践。
嵌入式Linux与物联网软件开发——C语言内核深度解析 电子书
  针对性强:面向嵌入式Linux内核源码、底层驱动软件开发等技术方向。   精华原创:凝结作者多年研发及教学经验,帮助读者真正深度理解难点。   求职必读:详解常见面试题,完全应对 “嵌入式软件工程师”岗位需求。
Linux程序设计(第4版) 电子书
最负盛名的Linux程序设计图书。
Linux操作系统(第3版) 电子书
以RedHat Linux 7为讲解版本,全面讲解linux知识。