写点什么

同事跳槽阿里,临走甩给一份上千页的 Linux 源码笔记,真香

用户头像
山田心
关注
发布于: 刚刚

UNIX 操作系统以简单、-致、优雅的设计著称,这种真正非凡的特性使得 UNIX 系统在超过 1/4 世纪的时间里影响了整个世界。而且,正是由于 Linux 的蓬勃发展,发源于 UNIX 的思想才依然活力依旧,并在可预见的未来其发展势头会一直持续下去。

UNIX 和 Linux 操作系统带有某种强烈的吸引力,前述的两段引文很好地描述了这种吸引力的精神本质。UNIX 操作系统诞生于贝尔实验室,Dennis Ritchie 是其发明人之一。他在引文中提到,只有天才才能欣赏 UNIX 操作系统的简单性|这是否是完全正确的呢?显然不是,因为 Ritchie 在经过全面考虑后立即改口,称程序员也同样有资格欣赏 UNIX 操作系统。

UNIX 和 Linux 操作系统的源代码复杂、文档少、对程序员的要求高,要想看懂这些代码并不是一件容易事。但只要一个人开始感受到内核源代码中所能获得的远见卓识,那就很难逃脱 Linux 的吸引力了。在此我给读者提出一个忠告: 一旦开始潜心钻研操作系统内核,就很容易沉溺于此种乐趣之中。

事实上,Benny Goodheart 和 James Cox 在其书 The Magic Garden Explained (该书解释了 UNIX System V 的内部实现机制)的序言中,早已对此做过说明(前文第二段引文)。当然,Linux 肯定 也能让读者发疯!

内容提要

本书讨论了 Linux 内核的概念、结构和实现。主要内容包括多任务、调度和进程管理,物理内存的管理以及内核与相关硬件的交互,用户空间的进程如何访问虚拟内存,如何编写设备驱动程序,模块机制以及虚拟文件系统,Ext 文件系统属性和访问控制表的实现方式,内核中网络的实现,系统调用的实现方式,内核对时间相关功能的处理,页面回收和页交换的相关机制以及审计的实现等。此外,本书借助内核源代码中最关键的部分进行讲解,帮助读者掌握重要的知识点,从而在运用中充分展现 Linux 系统的魅力。

本书讨论了 Linux 内核的概念、结构和实现。各章分别介绍了下述主题。






由于篇幅限制小编,小编只在这里给大家展示目录及部分内容,有需要完整文档的程序猿(媛)可以帮忙转发+关注,

添加微信免费获取全部

WX:MXZ11980 


第 1 章简介和概述

概述 Linux 内核,讲述了内核的总体图景,后续章节则根据总体结构对内核进行更详细的研究。



第 2 章进程管理和调度

讨论了多任务、调度和进程管理的基本知识,并分析了这些基本技术和概念抽象的实现方式。



第 3 章内存管理

讨论了如何管理物理内存。本章既讨论了内核与相关硬件的交互,也讨论了内核内部通过伙伴系统和 slab 分配器来分配内存的方式。



第 4 章进程虚拟内存

继续对内存进行讨论,讲解了用户空间的进程如何访问虚拟内存,以及在内核层面实现虚拟内存视图所需要的详细的数据结构和相关机制。



第 5 章锁与进程间通信

介绍了保证内核能够在多处理器系统上正确运作所需的机制。此外,本章还介绍了进程如何相互通信。



第 6 章设备驱动程序

引导读者理解如何编写设备驱动程序,使内核支持新的硬件。



第 7 章模块

阐述了模块机制,该机制能够向内核动态添加新的功能。



第 8 章虚拟文件系统

讨论了虚拟文件系统,这是内核中一个一般的间接层,能够支持各种各样的不同文件系统,包括物理文件系统和虚拟文件系统。



由于篇幅限制小编,pdf 文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!不会只有大纲和目录,有需要的程序猿(媛)可以帮忙转发+关注

添加微信免费获取全部

WX:MXZ11980 


第 9 章 Ext 文件系统族

讲解了 Ext 文件系统族,包括 Ext2 和 Ext3 文件系统,这是很多 Linux 系统安装的标准选项。



第 10 章无持久存储的文件系统

继续讨论文件系统,包括 procfs 和 sysfs。 这两个文件系统并非用来存储信息,而是向用户层提供关于内核的元信息。此外,本章阐述了一些减轻编写文件系统负担的方法。



第 11 章扩展属性和访问控制表

给出了 Ext 文件系统属性和访问控制表的实现方式,这两者有助于提高系统的安全性。



第 12 章网络

讨论内核中网络的实现,内容集中于 IPv4、TCP、UDP 和 netfilter。



第 13 章系统调用

介绍了系统调用的实现方式,系统调用是从用户层请求内核服务的标准机制。



第 14 章内核活动

对中断触发内核活动的方式进行了分析,并介绍了内核中将工作延迟至后续时间点执行的机制。



第 15 章时间管理

说明了内核对时间相关功能的处理,包括了高低两种分辨率的情形。



第 16 章页缓存和块缓存

讨论了借助于页缓存和块缓存来加速内核操作。



第 17 章数据同步

讨论了如何对内存中缓存的数据与持久存储设备上的数据源进行同步。



第 18 章页面回收和页交换

介绍了页面回收和页交换的相关机制。



第 19 章审计

介绍了审计的实现,审计负责详细记录内核的活动。



附录 A 体系结构相关知识

讨论了内核所支持的各种计算机体系结构的特点。



附录 B 使用源代码

简述了有效使用内核源代码的各种工具和方法。



附录 C 有关 C 语言的注记

提供了关于 C 语言的一些技术札记,并讨论了 GNU C 编译器的结构。



附录 D 系统启动

给出了内核的启动过程。



附录 EELF 二进制格式

介绍了 ELF 二进制格式。



附录 F 内核开发过程

讨论了内核开发的许多社会性的方面,以及 Linux 内核社区。



由于篇幅限制小编,pdf 文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!不会只有大纲和目录,有需要的程序猿(媛)可以帮忙转发+关注

添加微信免费获取全部

WX:MXZ11980 


发布于: 刚刚阅读数: 2
用户头像

山田心

关注

还未添加个人签名 2021.07.24 加入

还未添加个人简介

评论

发布
暂无评论
同事跳槽阿里,临走甩给一份上千页的Linux源码笔记,真香