图书中心

专业基础课首页>图书中心>计算机类

操作系统内核
  • 书     名:操作系统内核
  • 出版时间:2025-04-09
  • 编 著 者:杨文川
  • 版       次:1-1
  • I  S  B N:978-7-5635-7516-9
  • 定       价:¥49.00元

内容简介线

本书全面系统的介绍了操作系统内核中的关键概念及开源社区的Linux学习方法,全书共分10章,第1章操作系统内核基础介绍了操作系统的发展过程,第2章Linux操作系统内核实战环境搭建介绍了Linux内核开发模式,第3章内存寻址介绍了内存寻址,保护模式之段机制,分页机制等内容,第4章进程管理介绍了Linux进程的创建和进程调度,第5章内存管理介绍了进程用户空间管理机制,物理内存分配与回收,物理内存的组织及相关的内存管理实验,第6章中断处理介绍了中断处理机制概念及分析中断机制的实验,第7章系统调用介绍了Linux中的各种API,第8章内核同步介绍了原子操作,内核同步机制,第9章文件系统介绍了虚拟文件系统,第10章设备驱动介绍了设备驱动及相关实验。本书将复杂的操作系统理论内容简化易懂,便于教学和自学,教材中包含丰富的操作实例和案例分析,提高了教材的实用性,帮助学生更好的理解和应用所学知识,并从开源、国产和安全等角度介绍了操作系统内核的发展新趋势以及在网络空间安全方面的应用,适合作为网络空间安全相关专业的本科教材,计划在作者执教的北邮网安院《操作系统内核》课程中使用,对相近领域的技术人员也具有很好的参考价值。

目录介绍线

第1章操作系统内核基础1

1.1操作系统的目标和作用1

1.1.1什么是操作系统1

1.1.2操作系统的结构1

1.1.3操作系统的目标2

1.1.4操作系统的作用2

1.2操作系统的发展过程3

1.2.1操作系统发展的主要动力及发展阶段3

1.2.2典型操作系统介绍4

1.3操作系统的基本特性和主要功能6

1.3.1操作系统的基本特性6

1.3.2操作系统的主要功能7

1.4开源社区的Linux学习新体验8

1.4.1自由软件和开源软件8

1.4.2开源软件协议9

1.4.3著名的开源软件10

1.5创建和管理一个开源项目10

1.5.1签署CLA和使用Git11

1.5.2提交PR的流程11

1.5.3实验详解12

课程思政13

课后练习题13

第2章Linux操作系统内核实战环境搭建14

2.1Linux操作系统简介14

2.1.1Linux系统发展史14

2.1.2Linux发行版介绍15

2.1.3Linux内核源码目录结构16

2.2Linux内核设计17

2.2.1宏内核与微内核17

2.2.2Linux内核模块的设计及可加装19

2.2.3Linux内核模块编程入门19

2.2.4Linux内核模块程序与C语言应用程序的比较21

2.3Linux内核开发模式21






2.4Linux内核架构总览23

2.4.1Linux内核系统的划分23

2.4.2Linux内核系统各层情况24

2.5操作系统内核实验环境搭建和配置25

2.5.1VMWare WorkStation的安装25

2.5.2利用VMWare虚拟机安装Linux26

2.5.3编译安装所需的Linux内核27

课程思政29

课后练习题30

第3章内存寻址31

3.1内存寻址方法31

3.1.1哈佛结构和冯·诺依曼结构31

3.1.2内存寻址的概念33

3.1.3X86不同时期的内存寻址34

3.1.4保护模式下的寄存器36

3.2段式内存管理机制38

3.2.1段式内存管理38

3.2.2程序的地址空间分析39

3.2.3段描述符表41

3.3页式内存管理机制43

3.3.1地址转换相关知识43

3.3.2分页机制43

3.3.3页表45

3.4地址转换实验49

3.4.1查看地址转换实验50

3.4.2获取物理内存地址实验52

课程思政53

课后练习题54

第4章进程管理55

4.1进程概述55

4.1.1从程序到进程55

4.1.2进程树57

4.1.3task_struct数据结构分析59

4.1.4进程控制块61

4.2Linux进程创建66

4.2.1进程和线程66

4.2.2进程的API实现67

4.2.3进程中的其他系统调用72

4.3Linux进程调度73

4.3.1Linux进程调度基本模型73

4.3.2进程调度优先级及O(n)调度器75

4.3.3O(1)调度器及其特征77

4.3.4完全公平调度80

4.4进程管理实验81

4.4.1打印进程控制块中的字段81

4.4.2fork和clone系统调用的用法81

课程思政84

课后练习题84

第5章内存管理85

5.1Linux内存管理机制85

5.1.1内存的层次85

5.1.2虚拟内存实现机制86

5.1.3进程虚拟地址空间88

5.1.4进程的用户空间划分92

5.2进程用户空间管理机制94

5.2.1创建进程用户空间94

5.2.2虚存映射96

5.2.3请页机制98

5.2.4用户空间管理100

5.3内核空间划分与管理102

5.3.1内核空间的划分102

5.3.2内存管理机制105

5.3.3slab内存分配机制105

5.3.4vmalloc对高端物理内存的分配106

5.4物理内存的组织108

5.4.1UMA和NUMA计算机108

5.4.2物理内存的组织及内存节点109

5.4.3伙伴算法概述113

5.5内存管理实验115

5.5.1进程的虚存区举例115

5.5.2编写虚存区内核模块116

5.5.3slab内存分配机制实验118

课程思政121

课后练习题122

第6章中断处理123

6.1中断处理机制概述123

6.1.1中断的基本概念123

6.1.2中断模型解释125

6.1.3中断向量和中断描述符表127

6.2中断处理机制130

6.2.1中断描述表的初始化130

6.2.2中断处理过程132

6.2.3中断处理程序与中断服务例程134

6.2.4中断返回138

6.3中断下半部处理机制140

6.3.1中断上半部和下半部140

6.3.2软中断机制141

6.3.3tasklet机制142

6.3.4workqueue机制144

6.4时钟中断机制147

6.5tasklet机制分析实验148

6.5.1编写tasklet机制实验程序148

6.5.2tasklet机制实验步骤149

课程思政150

课后练习题151

第7章系统调用152

7.1Linux中的各种API152

7.1.1Linux内核提供的常用系统调用152

7.1.2Linux API和常见的库153

7.1.3比较Linux API与POSIX API154

7.2系统调用的机制156

7.2.1系统调用的作用156

7.2.2中断、异常和系统调用比较157

7.3系统调用的流程158

7.3.1系统调用基本流程158

7.3.2系统调用表160

7.3.3从用户态跟踪一个系统调用到内核161

7.4系统调用的优化162

7.5添加系统调用实验163

7.5.1Linux添加系统调用的方法163

7.5.2编译内核法添加系统调用163

7.5.3验证添加系统调用是否成功164

课程思政165

课后练习题165

第8章内核同步166

8.1内核同步概述166

8.1.1内核同步引入166

8.1.2竞态条件及其导致的错误167

8.1.3临界区168

8.2原子操作和锁169

8.2.1原子操作169

8.2.2锁机制171

8.2.3死锁172

8.3其他同步机制173

8.3.1中断屏蔽173

8.3.2自旋锁174

8.3.3信号量176

8.4生产者消费者问题178

8.5RCU锁的使用实验179

8.5.1RCU锁使用179

8.5.2实验流程180

课程思政182

课后练习题182

第9章文件系统183

9.1虚拟文件系统的引入183

9.1.1一切皆是文件183

9.1.2文件系统类型184

9.1.3文件存储186

9.1.4安装文件系统187

9.2虚拟文件系统的主要数据结构188

9.2.1虚拟文件系统框架188

9.2.2虚拟文件系统对象189

9.2.3相关的数据结构196

9.3文件系统中的各种缓存198

9.3.1缓冲区分类198

9.3.2页和块缓存200

9.3.3节点和目录缓存203

9.4文件系统的查找和读写205

9.4.1文件查找过程205

9.4.2文件的读写过程208

9.5文件系统查看实验210

9.5.1文件系统查看流程210

9.5.2创建、挂载和分析文件210

9.5.3分析超级块信息和inode表211

课程思政213

课后练习题214

第10章设备驱动215

10.1设备驱动概述215

10.1.1设备驱动程序215

10.1.2设备驱动的分层217

10.1.3设备的分类218

10.2I/O空间管理219

10.2.1设备控制器219

10.2.2内存映射和I/O映射220

10.3设备驱动模型226

10.3.1设备驱动模型的引入226

10.3.2kobject、ktype和kset228

10.3.3platform平台总线模型230

10.4字符设备驱动程序233

10.4.1字符设备233

10.4.2字符设备驱动接口函数237

10.5块设备驱动程序239

10.5.1块设备239

10.5.2电梯调度240

10.5.3块设备驱动的核心结构243

10.6字符设备编写实验249

10.6.1字符设备和编译源码249

10.6.2字符设备实验步骤250

课程思政251

课后练习题251

参考文献252