大小:18.96M
更新时间:23-08-29
系统:Pc
深入linux内核架构是一本专业的linux内核学习指导书,由德国资深Linux专家莫尔勒编著。本书结合了linux内核版本2.6.24源代码中关键的部分,深入讨论Lirnux内核的概念、结构和实现。具体包括进程管理和调度、虚拟内存、进程间通信、设备驱动程序、虚拟文件系统、网络、时间管理、数据同步等,并引导读者阅读内核源代码,熟悉Lirnux妍有的内在工作机理,充分展现Linux系统的魅力,欢迎免费下载阅读。
《深入linux内核架构》讨论了Linux内核的概念、结构和实现。主要内容包括多任务、调度和进程管理,物理内存的管理以及内核与相关硬件的交互,用户空间的进程如何访问虚拟内存,如何编写设备驱动程序,模块机制以及虚拟文件系统,Ext文件系统属性和访问控制表的实现方式,内核中网络的实现,系统调用的实现方式,内核对时间相关功能的处理,页面回收和页交换的相关机制以及审计的实现等。此外,本书还借助内核源代码中关键的部分进行讲解,帮助读者掌握重要的知识点,从而在运用中充分展现Linux系统的魅力。非常适合Linux系统编程人员、系统管理者以及Linux爱好者学习使用。
本书讨论了Linux内核的概念、结构和实现。各章分别介绍了下述主题
第1章概述Linux内核,讲述了内核的总体图景,后续章节则根据总体结构对内核进行更详细的研究。
第2章讨论了多任务、调度和进程管理的基本知识,并分析了这些基本技术和概念抽象的实现方式。
第3章讨论了如何管理物理内存。本章既讨论了内核与相关硬件的交互,也讨论了内核内部通过伙伴系统和slab分配器来分配内存的方式。
第4章继续对内存进行讨论,讲解了用户空间的进程如何访问虚拟内存,以及在内核层面实现虚拟内存视图所需要的详细的数据结构和相关机制。
第5章介绍了保证内核能够在多处理器系统上正确运作所需的机制。此外,本章还介绍了进程如何相互通信。
第6章引导读者理解如何编写设备驱动程序,使内核支持新的硬件。
第7章阐述了模块机制,该机制能够向内核动态添加新的功能。
第8章讨论了虚拟文件系统,这是内核中一个一般的间接层,能够支持各种各样的不同文件系统,包括物理文件系统和虚拟文件系统。
第9章讲解了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语言的一些技术札记,并讨论了GNU C编译器的结构。
附录D给出了内核的启动过程。
附录E介绍了ELF二进制格式。
附录F讨论了内核开发的许多社会性的方面,以及Linux内核社区。
第1章 简介和概述1
1.1 内核的任务2
1.2 实现策略2
1.3 内核的组成部分3
1.3.1 进程、进程切换、调度3
1.3.2 UNIX进程4
1.3.3 地址空间与特权级别6
1.3.4 页表9
1.3.5 物理内存的分配11
1.3.6 计时13
1.3.7 系统调用13
1.3.8 设备驱动程序、块设备和字符设备14
1.3.9 网络14
1.3.10 文件系统14
1.3.11 模块和热插拔15
1.3.12 缓存16
1.3.13 链表处理16
1.3.14 对象管理和引用计数17
1.3.15 数据类型20
1.3.16 本书的局限性22
1.4 为什么内核是特别的23
1.5 行文注记23
1.6 小结27
第2章 进程管理和调度28
2.1 进程优先级28
2.2 进程生命周期30
2.3 进程表示32
2.3.1 进程类型37
2.3.2 命名空间37
2.3.3 进程ID号43
2.3.4 进程关系49
2.4 进程管理相关的系统调用50
2.4.1 进程复制50
2.4.2 内核线程62
2.4.3 启动新程序63
2.4.4 退出进程66
2.5 调度器的实现67
2.5.1 概观67
2.5.2 数据结构69
2.5.3 处理优先级74
2.5.4 核心调度器79
2.6 完全公平调度类84
2.6.1 数据结构85
2.6.2 CFS操作85
2.6.3 队列操作89
2.6.4 选择下一个进程91
2.6.5 处理周期性调度器92
2.6.6 唤醒抢占93
2.6.7 处理新进程93
2.7 实时调度类94
2.7.1 性质94
2.7.2 数据结构95
2.7.3 调度器操作96
2.8 调度器增强97
2.8.1 SMP调度97
2.8.2 调度域和控制组101
2.8.3 内核抢占和低延迟相关工作102
2.9 小结106
第3章 内存管理107
3.1 概述107
3.2 (N)UMA模型中的内存组织109
3.2.1 概述109
3.2.2 数据结构111
3.3 页表123
3.3.1 数据结构124
3.3.2 页表项的创建和操作129
3.4 初始化内存管理129
3.4.1 建立数据结构130
3.4.2 特定于体系结构的设置135
3.4.3 启动过程期间的内存管理153
3.5 物理内存的管理159
3.5.1 伙伴系统的结构159
3.5.2 避免碎片161
3.5.3 初始化内存域和结点数据结构167
3.5.4 分配器API172
3.5.5 分配页177
3.5.6 释放页192
3.5.7 内核中不连续页的分配195
3.5.8 内核映射201
3.6 slab分配器205
3.6.1 备选分配器206
3.6.2 内核中的内存管理207
3.6.3 slab分配的原理209
3.6.4 实现212
3.6.5 通用缓存226
3.7 处理器高速缓存和TLB控制228
3.8 小结230
第4章 进程虚拟内存231
4.1 简介231
4.2 进程虚拟地址空间231
4.2.1 进程地址空间的布局232
4.2.2 建立布局234
4.3 内存映射的原理237
4.4 数据结构238
4.4.1 树和链表238
4.4.2 虚拟内存区域的表示239
4.4.3 优先查找树241
4.5 对区域的操作244
4.5.1 将虚拟地址关联到区域245
4.5.2 区域合并246
4.5.3 插入区域247
4.5.4 创建区域248
4.6 地址空间250
4.7 内存映射251
4.7.1 创建映射251
4.7.2 删除映射253
4.7.3 非线性映射254
4.8 反向映射257
4.8.1 数据结构258
4.8.2 建立逆向映射259
4.8.3 使用逆向映射259
4.9 堆的管理261
4.10 缺页异常的处理263
4.11 用户空间缺页异常的校正268
4.11.1 按需分配/调页269
4.11.2 匿名页271
4.11.3 写时复制271
4.11.4 获取非线性映射272
4.12 内核缺页异常272
4.13 在内核和用户空间之间复制数据274
4.14 小结276
第5章 锁与进程间通信277
5.1 控制机制277
5.1.1 竞态条件277
5.1.2 临界区278
5.2 内核锁机制279
5.2.1 对整数的原子操作280
5.2.2 自旋锁282
5.2.3 信号量283
5.2.4 RCU机制284
5.2.5 内存和优化屏障286
5.2.6 读者/写者锁287
5.2.7 大内核锁288
5.2.8 互斥量288
5.2.9 近似的per-CPU计数器290
5.2.10 锁竞争与细粒度锁291
5.3 SystemV进程间通信292
5.3.1 SystemV机制292
5.3.2 信号量292
5.3.3 消息队列300
5.3.4 共享内存303
5.4 其他IPC机制303
5.4.1 信号303
5.4.2 管道和套接字310
5.5 小结311
第6章 设备驱动程序312
6.1 I/O体系结构312
6.2 访问设备316
6.2.1 设备文件316
6.2.2 字符设备、块设备和其他设备317
6.2.3 使用ioctl进行设备寻址319
6.2.4 主从设备号的表示320
6.2.5 注册321
6.3 与文件系统关联324
6.3.1 inode中的设备文件成员324
6.3.2 标准文件操作325
6.3.3 用于字符设备的标准操作325
6.3.4 用于块设备的标准操作325
6.4 字符设备操作326
6.4.1 表示字符设备326
6.4.2 打开设备文件326
6.4.3 读写操作328
6.5 块设备操作329
6.5.1 块设备的表示330
6.5.2 数据结构331
6.5.3 向系统添加磁盘和分区338
6.5.4 打开块设备文件339
6.5.5 请求结构341
6.5.6 BIO343
6.5.7 提交请求345
6.5.8 I/O调度350
6.5.9 ioctl的实现352
6.6 资源分配353
6.6.1 资源管理353
6.6.2 I/O内存355
6.6.3 I/O端口357
6.7 总线系统358
6.7.1 通用驱动程序模型358
6.7.2 PCI总线363
6.7.3 USB370
6.8 小结376
第7章 模块377
7.1 概述377
7.2 使用模块378
7.2.1 添加和移除378
7.2.2 依赖关系380
7.2.3 查询模块信息381
7.2.4 自动加载382
7.3 插入和删除模块384
7.3.1 模块的表示385
7.3.2 依赖关系和引用389
7.3.3 模块的二进制结构391
7.3.4 插入模块396
7.3.5 移除模块403
7.4 自动化与热插拔404
7.4.1 kmod实现的自动加载404
7.4.2 热插拔405
7.5 版本控制408
7.5.1 校验和方法408
7.5.2 版本控制函数411
7.6 小结412
第8章 虚拟文件系统413
8.1 文件系统类型413
8.2 通用文件模型414
8.2.1 inode415
8.2.2 链接416
8.2.3 编程接口416
8.2.4 将文件作为通用接口417
8.3 VFS的结构417
8.3.1 结构概观418
8.3.2 inode419
8.3.3 特定于进程的信息423
8.3.4 文件操作427
8.3.5 目录项缓存431
8.4 处理VFS对象436
8.4.1 文件系统操作436
8.4.2 文件操作450
8.5 标准函数456
8.5.1 通用读取例程457
8.5.2 失效机制459
8.5.3 权限检查461
8.6 小结463
第9章 Ext文件系统族464
9.1 简介464
9.2 Ext2文件系统465
9.2.1 物理结构465
9.2.2 数据结构470
9.2.3 创建文件系统484
9.2.4 文件系统操作485
9.3 Ext3文件系统507
9.3.1 概念508
9.3.2 数据结构509
9.4 小结511
第10章 无持久存储的文件系统512
10.1 proc文件系统512
10.1.1 /proc的内容513
10.1.2 数据结构519
10.1.3 初始化522
10.1.4 装载proc文件系统523
10.1.5 管理/proc数据项525
10.1.6 读取和写入信息528
10.1.7 进程相关的信息530
10.1.8 系统控制机制535
10.2 简单的文件系统542
10.2.1 顺序文件542
10.2.2 用libfs编写文件系统546
10.2.3 调试文件系统547
10.2.4 伪文件系统549
10.3 sysfs549
10.3.1 概述550
10.3.2 数据结构550
10.3.3 装载文件系统554
10.3.4 文件和目录操作556
10.3.5 向sysfs添加内容562
10.4 小结564
第11章 扩展属性和访问控制表565
11.1 扩展属性565
11.1.1 到虚拟文件系统的接口566
11.1.2 Ext3中的实现570
11.1.3 Ext2中的实现576
11.2 访问控制表577
11.2.1 通用实现577
11.2.2 Ext3中的实现580
11.2.3 Ext2中的实现585
11.3 小结585
第12章 网络586
第13章 系统调用655
第14章 内核活动678
第15章 时间管理714
第16章 页缓存和块缓存761
第17章 数据同步793
第18章 页面回收和页交换821
第19章 审计882
附录A 体系结构相关知识899
附录B 使用源代码919
附录C 有关C语言的注记947
附录D 系统启动985
附录E ELF二进制格式
附录F 内核开发过程
参考文献
1、下载并解压,得出pdf文件
2、如果打不开本文件,请务必下载pdf阅读器
3、安装后,在打开解压得出的pdf文件
4、双击进行阅读
同类热门
类似软件
深入理解linux内核第三版253.33M824人在用深入理解Linux内核第三版是一本高清扫描的PDF中文版电子书,作者是博韦,西斯特。这本书详细地介绍了Linux系统中最重要的数据结构、算法和程序设计,通过逐行剖析相关的代码片段,读者不仅可以了解代码的功能,还能更具体地了解Linux的工作方式,从而更好
查看unetbootin中文版4.63M2440人在用unetbootin是一款能够将Linux操作系统装进U盘或移动硬盘的U盘启动盘制作工具,制作好的U盘启动盘能够用于电脑的维护和系统还原等操作,使用起来非常地不错。该软件不会基于操作系统使用特定的规则,在使用该选项时,大部分Linux ISO文件均可正确
查看linux kernel127M607人在用Linux Kernel是最新版本的Linux内核,支持Intel、Alpha、PPC、Sparc、IA-64 、ARM、MIPS、Amiga、Atari和IBM s/390等,还支持32位大文件系统。而在Intel平台上,物理内存最
查看热门标签
网友评论0人参与,0条评论
最新排行
python 黑帽子黑客与渗透测试编程之道19.73Mpdf扫描版 python 黑帽子黑客与渗透测试编程之道是一本安全畅销书《Python灰帽子》同作者姊妹篇,由[美] Justin Seitz(贾斯汀·塞茨) 著;孙松柏,李聪,润秋三人翻译。本书将向你揭示Python的黑暗面——编写网络嗅探工具、操控数据包、感
查看wireshark使用教程(超详细)2.28Mpdf高清版 wireshark使用教程pdf是专为wireshark软件而编制的实用使用说明书,pdf高清格式,教程详细的介绍了什么是Wireshark、如何编译/安装Wireshark、Wireshark用户界面、如何实时捕捉数据包、如何处理已经捕捉的包、文
查看oracle开发实战经典110.75M李兴华pdf扫描版 oracle开发实战经典是一本Oracle数据库实战手册,由李兴华编著。本书以Oracle 12c版本为基础(也适合Oracle 11g版本),对12c的新功能做了详细讲述。并且实例非常丰富,各类实例达1200个,达到实战水平只需一本书够了。同时本
查看高效能人士的七个习惯(30周年纪念版)14.31Mpdf+epub高清版高效能人士的七个习惯是中国青年出版社出版的一本图书,其作者史蒂芬·柯维是著名的管理学大师,也是美国家喻户晓的启蒙家,书本内容是基于历久弥新效能原则的个人领导力的体系,能够激发组织和个人成就。小编今天带来的是高效能人士的七个习惯(30周年纪念版),它高居《
查看visual c#从入门到精通第8版88.64Mpdf扫描版visual c#从入门到精通第8版是一本C#语言的入门指导书,由英国资深技术作家JohnSharp编著。全书承袭Step-by-Step风格,完美演绎Visual C#精髓,主要讲解了新版本VisualStudio2015与VisualC#的基础编程知
查看Photoshop卡通漫画设计完全实例教程59.58Mpdf全彩版Photoshop卡通漫画设计完全实例教程是一款pdf全彩版的电子书籍,详细的向读者介绍了完整的卡通设计流程与创作技法。全书共有56个匠心独具的流行风格卡漫实战案例,全面解析了8大类前沿卡漫设计领域,是目前网络上最好用的PS卡通设计教程,适合有一定绘画基
查看2017铁路工程管理与实务73.3Mpdf高清版2017铁路工程管理与实务,又称之为2017一级建造师铁路工程管理与实务电子书,是一级建造师必考的科目,该版本根据2014年版一级建造师《专业工程管理与实务)) (铁路工程)科目考试大纲编写,主要阐述了《考试大纲》的核心内容,按照章节目条排序,不考虑前后
查看html5开发精要与实例详解60.84M陆凌牛pdf扫描版html5开发精要与实例详解是一本html5的实战手册,由资深Web开发工程师陆凌牛编著。本书内容丰富,主要以实践为核心,通过28个精心设计的中大型案例对这些理论知识点进行了充分讲解,每个案例都以迭代的方式实现,不仅包含案例需求描述、实现效果展示、开发步
查看后台开发 核心技术与应用实践118M徐晓鑫pdf扫描版 后台开发 核心技术与应用实践是腾讯资深后台工程师徐晓鑫多年经验结晶,本书完整勾勒后台工程师能力体系结构图,详细讲解后台开发所需核心技术、开发工具和实践方法,用通俗的文字、详尽的示例代码,结合实际工作中的案例,讲述了后台开发方方面面的知识,内容丰富,
查看flask web开发基于python的web应用开发实战8.64M格林布戈pdf扫描版 flask web开发是一本流行的Python Web开发框实战图书书,全称事实上叫做flask web开发基于python的web应用开发实战,作者是拥有25年开发经验的美国高级软件工程师格林布戈。本书内容丰富翔实,分为三部分,全面介绍如何基于P
查看搜索引擎营销:网站流量大提速(第2版)173.07M莫兰pdf扫描版 搜索引擎营销:网站流量大提速(第2版)是搜索营销行业的一本圣经,由美国互联网营销人员莫兰Mike Moran编写。本书相比上一版本,加入了对多媒体优化、改进站内搜索等方面富有启发性的内容,并且对新兴社会媒体对搜索的影响进行了介绍,紧紧跟上了迅猛发展
查看modern php 中文版28.02Mpdf高清扫描版modern php 中文版是一本php语言学习指导书籍,也是目前初级PHP的进阶宝典,由美国前端程序员乔希·洛克哈特编著。全书通过实践让读者了解php的新特性,让读者学到更多关于应用架构、规划、数据库、安全、测试、调试和部署方面的新知识,使读者明白面向
查看