程序员必备的技能-深入理解 Linux 内核拆解

简介: 程序员必备的技能-深入理解 Linux 内核拆解

841 页的《深入理解 Linux内核》堪称经典,时隔多年打开,泛黄的纸张上面仍然跳跃出一个个让人心潮澎湃的知识点,突然让我想起一位微信朋友的昵称:知识的舔狗!


拆,开始~



前言


第一章 绪论


Linux与其他类Unix内核的比较

硬件的依赖性
Linux版本

操作系统基本概念

Unix文件系统概述

Unix内核概

第二章 内存寻址


内存地址

硬件中的分段

Linux中的分段

硬件中的分页

Linux中的分页

第三章 进程


进程、轻量级进程和线程

进程描述符

进程切换

创建进程

撤消进程

第四章 中断和异常


中断信号的作用

中断和异常

中断和异常处理程序的嵌套执行

初始化中断描述符表

异常处理

中断处理

软中断及tasklet

工作队列

从中断和异常返

第五章 内核同步

内核如何为不同的请求提供服务

同步原语

对内核数据结构的同步访问

避免竞争条件的实

第六章 定时测量

时钟和定时器电路

Linux计时体系结构

更新时间和日期

更新系统统计数

软定时器和延迟函数

与定时测量相关的系统调用

第七章 进程调度

调度策略

调度算法

调度程序所使用的数据结构

调度程序所使用的函数

多处理器系统中运行队列的平衡

与调度相关的系统调用

第八章 内存管理

页框管理

内存区管理

非连续内存区管理

第九章 进程地址空间

进程的地址空间

内存描述符

线性区

缺页异常处理程序

创建和删除进程的地址空间

堆的管理

第十章 系统调用

POSIX API和系统调用

系统调用处理程序及服务例程

进入和退出系统调用

参数传递

内核封装例程

第十一章 信号

信号的作用

产生信号

传递信号

与信号处理相关的系统调用

第十二章 虚拟文件系统

虚拟文件系统(VFS)的作用

VFS的数据结构

文件系统类型

文件系统处理

路径名查找

VFS系统调用的实现

文件加锁

第十三章 I/O体系结构和设备驱动程序

I/O体系结构

设备驱动程序模型

设备文件

设备驱动程序

字符设备驱动程序

第十四章 块设备驱动程序

块设备的处理

通用块层

I/O调度程序

块设备驱动程序

打开块设备文件

第十五章 页高速缓存

页高速缓存

把块存放在页高速缓存中

把脏页写入磁盘

sync()、fsync()和fdatasync()系统调用

第十六章 访问文件

读写文件

内存映射

直接I/O传送

异步I/O

第十七章 回收页框

页框回收算法

反向映射

PFRA实现

交换

第十八章 Ext2和Ext3文件系统

Ext2的一般特征

Ext2磁盘数据结构

Ext2的内存数据结构

创建Ext2文件系统

Ext2的方法

管理Ext2磁盘空间

Ext3文件系统

第十九章 进程通信

管道

FIFO

System V IPC

POSIX消息队列

第二十章 程序的执行

可执行文件

可执行格式

执行域

exec函数

附录一 系统启动

附录二 模块

附录

《深入理解Linux内核》第三版是2007年中国电力出版社出版的图书。将引领你畅游内核中用到的最主要数据结构、算法和编程技巧。如果你的确想了解计算机内部的实现机理,那么作者透过现象探寻本质,提供了颇有价值的深入分析。本书针对具体的Intel平台,讨论了其重要特征,逐行剖析了相关的代码片段。但是,本书涵盖的内容不仅仅局限于代码的机理,还解释了Linux运作方式的理论支撑。


相关文章
|
17天前
|
Linux C语言
Linux内核队列queue.h
Linux内核队列queue.h
|
1月前
|
存储 Shell Linux
【Shell 命令集合 系统设置 】Linux 生成并更新内核模块的依赖 depmod命令 使用指南
【Shell 命令集合 系统设置 】Linux 生成并更新内核模块的依赖 depmod命令 使用指南
33 0
|
1月前
|
Shell Linux C语言
【Shell 命令集合 系统设置 】⭐Linux 卸载已加载的内核模块rmmod命令 使用指南
【Shell 命令集合 系统设置 】⭐Linux 卸载已加载的内核模块rmmod命令 使用指南
29 1
|
2月前
|
Ubuntu Linux 虚拟化
Linux下的IMX6ULL——构建bootloader、内核、文件系统(四)
Linux下的IMX6ULL——构建bootloader、内核、文件系统(四)
80 0
Linux下的IMX6ULL——构建bootloader、内核、文件系统(四)
|
10天前
|
算法 Linux 调度
深入理解Linux内核的进程调度机制
【4月更文挑战第17天】在多任务操作系统中,进程调度是核心功能之一,它决定了处理机资源的分配。本文旨在剖析Linux操作系统内核的进程调度机制,详细讨论其调度策略、调度算法及实现原理,并探讨了其对系统性能的影响。通过分析CFS(完全公平调度器)和实时调度策略,揭示了Linux如何在保证响应速度与公平性之间取得平衡。文章还将评估最新的调度技术趋势,如容器化和云计算环境下的调度优化。
|
15天前
|
算法 Linux 调度
深度解析:Linux内核的进程调度机制
【4月更文挑战第12天】 在多任务操作系统如Linux中,进程调度机制是系统的核心组成部分之一,它决定了处理器资源如何分配给多个竞争的进程。本文深入探讨了Linux内核中的进程调度策略和相关算法,包括其设计哲学、实现原理及对系统性能的影响。通过分析进程调度器的工作原理,我们能够理解操作系统如何平衡效率、公平性和响应性,进而优化系统表现和用户体验。
20 3
|
22天前
|
负载均衡 算法 Linux
深度解析:Linux内核调度器的演变与优化策略
【4月更文挑战第5天】 在本文中,我们将深入探讨Linux操作系统的核心组成部分——内核调度器。文章将首先回顾Linux内核调度器的发展历程,从早期的简单轮转调度(Round Robin)到现代的完全公平调度器(Completely Fair Scheduler, CFS)。接着,分析当前CFS面临的挑战以及社区提出的各种优化方案,最后提出未来可能的发展趋势和研究方向。通过本文,读者将对Linux调度器的原理、实现及其优化有一个全面的认识。
|
22天前
|
Ubuntu Linux
Linux查看内核版本
在Linux系统中查看内核版本有多种方法:1) 使用`uname -r`命令直接显示版本号;2) 通过`cat /proc/version`查看内核详细信息;3) 利用`dmesg | grep Linux`显示内核版本行;4) 如果支持,使用`lsb_release -a`查看发行版及内核版本。
36 6
|
25天前
|
Linux 内存技术
Linux内核读取spi-nor flash sn
Linux内核读取spi-nor flash sn
18 1
|
1月前
|
存储 网络协议 Linux
【Linux 解惑 】谈谈你对linux内核的理解
【Linux 解惑 】谈谈你对linux内核的理解
24 0