图书介绍

Linux 操作系统原理与应用2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

Linux 操作系统原理与应用
  • 陈莉君编著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302278368
  • 出版时间:2012
  • 标注页数:256页
  • 文件大小:23MB
  • 文件页数:276页
  • 主题词:Linux操作系统-高等学校-教材

PDF下载


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

下载说明

Linux 操作系统原理与应用PDF格式电子书版下载

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

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

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

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

图书目录

第1章 概述1

1.1认识操作系统1

1.1.1从使用者角度看1

1.1.2从程序开发者的角度看2

1.1.3从操作系统在整个计算机系统所处位置看2

1.1.4从操作系统设计者的角度看3

1.1.5操作系统组成4

1.2开放源代码的UNIX/Linux操作系统5

1.2.1 UNIX诞生和发展5

1.2.2 Linux诞生6

1.2.3操作系统标准POSIX6

1.2.4 GNU和Linux6

1.2.5 Linux的开发模式7

1.3 Linux内核7

1.3.1 Linux内核的技术特点7

1.3.2 Linux内核的位置8

1.3.3 Linux内核体系结构9

1.4 Linux内核源代码10

1.4.1 Linux内核版本10

1.4.2 Linux内核源代码的结构11

1.4.3 Linux内核源代码分析工具12

1.5 Linux内核模块编程入门12

1.5.1模块的定义13

1.5.2编写一个简单的模块13

1.5.3应用程序与内核模块的比较15

1.6 Linux内核中链表的实现及应用15

1.6.1链表的演化15

1.6.2链表的定义和操作16

1.6.3链表的应用19

1.7小结21

习题21

第2章 内存寻址22

2.1内存寻址22

2.1.1 Intel x86 CPU寻址的演变22

2.1.2 80x86寄存器简介24

2.1.3物理地址、虚拟地址及线性地址26

2.2段机制27

2.2.1段描述符27

2.2.2地址转换及保护29

2.2.3 Linux中的段29

2.3分页机制31

2.3.1页与页表31

2.3.2线性地址到物理地址的转换34

2.3.3分页举例34

2.3.4页面高速缓存35

2.4 Linux中的分页机制36

2.5 Linux中的汇编语言38

2.5.1 AT&T与Intel汇编语言的比较38

2.5.2 AT&T汇编语言的相关知识39

2.5.3 GCC嵌入式汇编40

2.6 Linux系统地址映射举例43

2.7小结45

习题45

第3章 进程47

3.1进程介绍47

3.1.1程序和进程47

3.1.2进程的层次结构49

3.1.3进程状态50

3.1.4进程举例50

3.2 Linux系统中的进程控制块52

3.2.1进程状态53

3.2.2进程标识符55

3.2.3进程之间的亲属关系56

3.2.4进程控制块的存放56

3.2.5当前进程57

3.3 Linux系统中进程的组织方式58

3.3.1进程链表58

3.3.2哈希表59

3.3.3就绪队列60

3.3.4等待队列61

3.4进程调度63

3.4.1基本原理64

3.4.2时间片65

3.4.3 Linux进程调度时机65

3.4.4进程调度的依据66

3.4.5调度函数schedule()的实现67

3.4.6 Linux2.6调度程序的改进70

3.5进程的创建73

3.5.1创建进程73

3.5.2线程及其创建74

3.6与进程相关的系统调用及其应用76

3.6.1 fork系统调用76

3.6.2 exec系统调用77

3.6.3 wait系统调用78

3.6.4 exit系统调用79

3.6.5进程的一生80

3.7系统调用及应用81

3.8小结82

习题82

第4章 内存管理84

4.1 Linux的内存管理概述84

4.1.1虚拟内存、内核空间和用户空间84

4.1.2虚拟内存实现机制间的关系87

4.2进程的用户空间管理87

4.2.1进程用户空间的描述89

4.2.2进程用户空间的创建93

4.2.3虚存映射94

4.2.4进程的虚存区举例95

4.2.5与用户空间相关的系统调用97

4.3请页机制98

4.3.1缺页异常处理程序99

4.3.2请求调页101

4.3.3写时复制102

4.4物理内存分配与回收102

4.4.1页描述符102

4.4.2伙伴算法104

4.4.3物理页面的分配104

4.4.4物理页面的回收106

4.4.5 Slab分配机制107

4.4.6内核空间非连续内存区的分配111

4.4.7物理内存分配举例113

4.5交换机制115

4.5.1交换的基本原理115

4.5.2页面交换守护进程kswapd118

4.6内存管理实例119

4.6.1相关背景知识119

4.6.2代码体系结构介绍120

4.6.3实现过程122

4.6.4程序代码122

4.7小结128

习题128

第5章 中断和异常130

5.1中断是什么130

5.1.1中断向量130

5.1.2外设可屏蔽中断131

5.1.3异常及非屏蔽中断131

5.1.4中断描述符表132

5.1.5相关汇编指令133

5.2中断描述符表的初始化134

5.2.1 IDT表项的设置134

5.2.2对陷阱门和系统门的初始化135

5.2.3中断门的设置135

5.2.4中断处理程序的形成136

5.3中断处理137

5.3.1中断和异常的硬件处理137

5.3.2中断请求队列的建立138

5.3.3中断处理程序的执行141

5.3.4从中断返回142

5.3.5中断的简单应用142

5.4中断的下半部处理机制144

5.4.1为什么把中断分为两部分来处理144

5.4.2小任务机制145

5.4.3工作队列147

5.5中断应用——时钟中断150

5.5.1时钟硬件150

5.5.2时钟运作机制151

5.5.3 Linux时间系统152

5.5.4时钟中断153

5.5.5定时器及应用156

5.6小结159

习题159

第6章 系统调用161

6.1系统调用与应用编程接口、系统命令以及内核函数的关系161

6.1.1系统调用与API161

6.1.2系统调用与系统命令162

6.1.3系统调用与内核函数162

6.2系统调用基本概念163

6.2.1系统调用号163

6.2.2系统调用表163

6.2.3系统调用服务例程和系统调用处理程序164

6.3系统调用实现164

6.3.1初始化系统调用165

6.3.2 system_call()函数165

6.3.3参数传递166

6.3.4跟踪系统调用的执行167

6.4封装例程168

6.5添加新系统调用169

6.5.1添加系统调用的步骤170

6.5.2系统调用的调试171

6.6实例-系统调用日志收集系统172

6.6.1代码结构体系介绍172

6.6.2把代码集成到内核中176

6.7小结179

习题179

第7章 内核中的同步180

7.1临界区和竞争状态180

7.1.1临界区举例180

7.1.2共享队列和加锁181

7.1.3确定保护对象182

7.1.4死锁182

7.1.5并发执行的原因183

7.2内核同步措施184

7.2.1原子操作184

7.2.2自旋锁186

7.2.3信号量187

7.3生产者-消费者并发实例191

7.3.1问题分析191

7.3.2实现机制191

7.3.3具体实现193

7.4内核多任务并发实例193

7.4.1内核任务及其并发关系193

7.4.2问题描述194

7.4.3实现机制194

7.5小结197

习题198

第8章 文件系统199

8.1 Linux文件系统基础199

8.1.1 Linux文件结构199

8.1.2文件类型200

8.1.3存取权限和文件模式201

8.1.4 Linux文件系统201

8.2虚拟文件系统204

8.2.1虚拟文件系统的引入204

8.2.2 VFS中对象的演绎206

8.2.3 VFS的超级块207

8.2.4 VFS的索引结点208

8.2.5目录项对象210

8.2.6与进程相关的文件结构212

8.2.7主要数据结构间的关系214

8.2.8实例——观察数据结构中的数据215

8.3文件系统的注册、安装与卸载217

8.3.1文件系统的注册和注销217

8.3.2文件系统的安装218

8.3.3文件系统的卸载219

8.4文件的打开与读写219

8.4.1文件打开219

8.4.2文件读写220

8.5编写一个文件系统222

8.5.1 Linux文件系统的实现要素222

8.5.2什么是Romfs文件系统224

8.5.3 Romfs文件系统布局与文件结构224

8.5.4具体实现的对象225

8.6小结228

习题228

第9章 设备驱动230

9.1概述230

9.2设备驱动程序框架232

9.3 I/O空间的管理237

9.3.1 I/O端口和I/O内存237

9.3.2 I/O资源管理237

9.3.3访问I/O端口空间239

9.3.4访问I/O内存资源240

9.4字符设备驱动程序241

9.4.1字符设备的数据结构241

9.4.2分配和释放设备号242

9.4.3字符设备驱动的组成243

9.4.4加载和卸载函数243

9.4.5实现file_operaions中定义的函数246

9.5块驱动程序248

9.5.1块驱动程序的注册249

9.5.2块设备请求252

9.6小结254

习题255

参考文献256

热门推荐