图书介绍

Linux内核源代码2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

Linux内核源代码
  • 范磊编著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:7115098476
  • 出版时间:2002
  • 标注页数:615页
  • 文件大小:38MB
  • 文件页数:628页
  • 主题词:UNIX操作系统

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

Linux内核源代码PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 Linux操作系统概述1

1.1 Linux的历史2

1.2 Linux开发过程4

1.3 Linux的现状4

1.3.1 RedHat 6.0(http://www.redhat.com)5

1.3.2 Slackware 3.4(http://www.cdrom.com)5

1.3.3 Debian 1.3.1(http://www.debian.org)5

1.3.4 SuSE Linux 5.2(http://www.suse.com)5

1.4 分析内核的意义6

1.4.1 开发“自己的”操作系统6

1.3.6 红旗Linux6

1.3.5 Turbo Linux 4.0简体中文标准版10CD6

1.4.2 开发高水平软件7

1.4.3 计算机科学的教学和科研7

1.5 小结与练习8

1.5.1 小结8

1.5.2 习题与思考8

第2章 内核体系结构概述9

2.1.2 兼容性10

2.1 内核设计目标10

2.1.1 清晰性10

2.1.3 可移植性11

2.1.4 健壮性和安全性12

2.1.5 速度12

2.2 内核体系结构初识12

2.3 内核体系结构的深入了解14

2.4 Linux内核的类型15

2.4.1 层次(Layer)15

2.4.2 Linux内核类型16

2.5 了解Linux内核源代码18

2.5.1 内核源代码结构18

2.5.2 体系结构相关和体系结构无关的代码23

2.6 Linux内核源代码的部分特点23

2.6.1 gcc特性的使用23

2.6.2 内核代码习惯用语24

2.6.3 减少#if和#ifdef的使用25

2.7 代码详例25

2.7.1 printk函数26

2.7.2 等待队列29

2.7.3 内核模块32

2.8 配置与编译内核34

2.8.1 配置内核34

2.8.2 构建内核35

2.8.3 备份的重要性35

2.8.4 发布改进36

2.9.2 习题与思考37

2.9.1 小结37

2.9 小结与练习37

2.8.5 多版本的内核代码37

第3章 系统初始化39

3.1 初始化流程40

3.1.1 系统加电或复位41

3.1.2 BIOS启动41

3.1.3 Boot Loader41

3.1.4 操作系统内核的初始化41

3.3 操作系统的初始化42

3.2.2 其他硬件设备对初始化的影响42

3.2 初始化的任务42

3.2.1 处理器对初始化的影响42

3.3.1 引导PC机(BIOS启动和LILO引导)43

3.3.2 准备Linux内核44

3.3.3 初始化Linux内核46

3.3.4 Bogo MIPS48

3.3.5 分析内核选项49

3.4 init进程53

3.5 本章代码54

3.6.2 习题与思考76

3.6 小结与练习76

3.6.1 小结76

第4章 进程77

4.1 进程在内核中的表示方法79

4.2 进程的状态81

4.3 引用计数81

4.4 优先级81

4.5 创建进程83

4.5.1 fork和_clone83

4.5.3 进程的运行84

4.5.2 分配PID84

4.6 进程调度87

4.6.1 调度策略87

4.6.2 调度函数89

4.6.3 计算goodness值91

4.6.4 非实时优先级92

4.6.5 实时优先级93

4.7 遵守限制95

4.7.1 权能95

4.7.3 资源限制98

4.7.2 用户ID和组ID98

4.8 进程的结束99

4.8.1 exit函数组99

4.8.2 wait函数组100

4.9 本章代码101

4.10 小结与练习146

4.10.1 小结146

4.10.2 习题与思考146

第5章 中断和中断处理147

5.1.1 可编程中断控制器149

5.1 硬件基础149

5.1.2 初始化中断处理数据结构150

5.1.3 中断处理任务151

5.2 中断及其有关数据结构152

5.2.1 中断和中断请求IRQ152

5.2.2 数据结构153

5.3 初始化中断请求154

5.4 中断处理157

5.5 本章代码160

5.6.2 习题与思考185

5.6 小结与练习185

5.6.1 小结185

第6章 系统调用187

6.1 什么是系统调用188

6.2 基本原理189

6.3 系统调用的初始化190

6.3.1 在处理系统调用时使用“陷阱门”的原因190

6.3.2 利用“陷阱门”完成向高特权级(内核)切换190

6.4 如何激活系统调用191

6.3.3 “陷阱门”特权切换时堆栈的变化191

6.4.1 system_call函数192

6.4.2 lcall7函数196

6.5 系统调用样例197

6.5.1 sys_ni_syscal函数197

6.5.2 sys_time函数198

6.5.3 sys_reboot199

6.5.4 sys_sysinfo函数200

6.6 本章代码201

6.7.2 习题与思考224

6.7.1 小结224

6.7 小结与练习224

第7章 内存管理225

7.1 虚拟内存226

7.1.1 虚拟内存的抽象模型226

7.1.2 交换和分页228

7.1.3 地址空间229

7.1.4 内存管理单元(MMU)229

7.1.5 页目录和页表230

7.1.7 段232

7.1.6 转换后备缓存232

7.2 进程的内存组织233

7.2.1 struct vm_area_struct233

7.2.2 struct vm_operations_struct234

7.2.3 struct mm_struct235

7.2.4 VMA的操作235

7.3 分页236

7.3.1 页面保护详述236

7.3.3 页面错误237

7.3.2 写拷贝237

7.3.4 页面调出242

7.4 交换设备243

7.4.1 get_swap_page函数244

7.4.2 swap_free函数244

7.4.3 sys_swapoff函数245

7.4.4 sys_swapon函数245

7.5 内存映射mmap247

7.5.1 do_mmap函数247

7.5.2 merge_segments函数248

7.5.3 do_munmap函数249

7.5.4 unmap_fixup函数250

7.6 用户空间和内核空间的动态内存251

7.6.1 brk251

7.6.2 vmalloc和vfree252

7.7 主存储器信息转储255

7.8 缓存和刷新机制257

7.8.1 linux使用的缓存257

7.8.2 缓冲区高速缓存258

7.9 内存的初始化260

7.9.1 内存的初始化过程260

7.9.2 进入用户模式261

7.10 本章代码261

7.11 小结与练习306

7.11.1 小结306

7.11.2 习题与思考306

第8章 虚拟文件系统307

8.1 概述308

8.2 VFS中的重要数据结构309

8.2.1 VFS的超级块310

8.2.2 VFS的索引节点311

8.2.3 与进程联系的三个结构312

8.2.4 有关操作的数据结构314

8.3 高速缓存317

8.3.1 块高速缓存317

8.3.2 索引节点高速缓存320

8.3.3 目录高速缓存320

8.4.1 文件系统的注册321

8.4 文件系统的注册、安装与卸载321

8.4.2 文件系统的安装322

8.4.3 文件系统的卸载323

8.5 限额机制323

8.6 文件系统的系统调用325

8.6.1 open系统调用325

8.6.2 read系统调用326

8.6.3 fcntl系统调用327

8.7 本章代码328

8.8.2 习题与思考360

8.8 小结与练习360

8.8.1 小结360

第9章 EXT2文件系统361

9.1 基本概念362

9.1.1 一组字节到逻辑块的映射363

9.1.2 逻辑块到物理块的映射363

9.2 EXT2的磁盘布局和数据结构364

9.2.1 EXT2的磁盘布局364

9.2.2 EXT2超级块365

9.2.3 EXT2索引节点367

9.2.5 位图370

9.2.4 EXT2组描述符370

9.2.6 索引节点表及举例371

9.2.7 EXT2目录372

9.2.8 在一个EXT2文件系统中查找一个文件373

9.2.9 在EXT2文件系统中改变一个文件的大小373

9.3 文件的访问权限和安全375

9.4 连接文件377

9.5 错误处理377

9.6.2 分配新的索引节点的算法378

9.6 分配策略378

9.6.1 分配新块的算法378

9.7 本章代码379

9.8 小结与练习410

9.8.1 小结410

9.8.2 习题与思考410

第10章 进程间通信411

10.1 管理(pipe)412

10.1.1 Linux管道机制的实现413

10.1.2 管道的应用414

10.1.3 命名管道(FIFO)415

10.2 System V IPC机制416

10.2.1 消息队列416

10.2.2 信号量428

10.3 共享内存437

10.4 信号443

10.4.1 信号的引入443

10.4.2 信号掩码444

10.4.3 系统调用445

10.4.4 进程与信号的关系446

10.5 本章代码447

10.6 小结与练习502

10.6.1 小结502

10.6.2 习题与思考502

第11章 设备驱动503

11.1 Linux的设备驱动504

11.1.1 I/O软件505

11.1.2 设备驱动程序506

11.1.3 Linux驱动程序的几个通用函数508

11.2 中断509

11.2.1 硬件对中断的支持510

11.2.2 Linux对中断的管理511

11.2.3 Linux对中断的处理512

11.3 块设备驱动程序512

11.3.1 块设备驱动程序的登记513

11.3.2 块设备基于缓冲区的数据交换513

11.3.3 PAM盘驱动程序的实现514

11.3.4 硬盘驱动程序的实现515

11.4 字符设备驱动程序517

11.4.1 字符设备的注册517

11.4.2 工作内存518

11.4.3 基本入口点519

11.5 网络设备的初始化519

11.6 本章代码520

11.7 小结与练习542

11.7.1 小结542

11.7.2 习题与思考542

第12章 网络543

12.1 概述544

12.1.1 Linux的网络层次结构544

12.1.2 面向对象的设计方法实现网络层次544

12.2 网络协议545

12.2.1 网络参考模型545

12.2.2 TCP/IP协议工作原理及数据流546

12.2.3 Internet协议548

12.3 套接字(socket)551

12.3.1 套接字在网络中的地位和作用551

12.3.2 套接字接口的种类552

12.3.3 套接字的工作原理553

12.3.4 socket的通信过程554

12.3.5 socket为用户提供的系统调用557

12.4 套接字缓冲区(sk_buff)557

12.4.1 套接字缓冲区的特点557

12.4.2 套接字缓冲区操作基本原理558

12.4.3 sk_buff数据结构的核心内容559

12.4.4 套接字缓冲区提供的函数561

12.4.5 套接字缓冲区的上层支持例程562

12.5 网络设备接口563

12.5.1 基本结构563

12.5.2 命令规则564

12.5.3 设备注册564

12.5.4 网络设备数据结构565

12.5.5 支持函数567

12.6 本章代码570

12.7.1 小结578

12.7.2 习题与思考578

12.7 小结与练习578

第13章 多对称处理579

13.1 并行程序设计概念及其原语581

13.1.1 原子操作581

13.1.2 test-and-set原语583

13.1.3 信号量584

13.1.4 自旋锁589

13.2 APIC和CPU-TO-CPU通信591

13.3.1 对调度的影响592

13.3 SMP对内核的影响592

13.3.2 smp_local_timer_interrupt函数595

13.3.3 lock_kernel函数和unlock_kernel函数596

13.3.4 softirq_trylock函数597

13.3.5 cli宏和sti宏597

13.3.6 irq_enter函数和irq_exit函数598

13.4 本章代码599

13.5 小结与练习606

13.5.1 小结606

13.5.2 习题与思考606

附录 部分习题参考答案607

热门推荐