当前位置:首页 > 工业技术
Linux内核设计的艺术图解Linux操作系统架构设与实现原理  第2版
Linux内核设计的艺术图解Linux操作系统架构设与实现原理  第2版

Linux内核设计的艺术图解Linux操作系统架构设与实现原理 第2版PDF电子书下载

工业技术

  • 电子书积分:15 积分如何计算积分?
  • 作 者:新设计团队著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2013
  • ISBN:9787111421764
  • 页数:455 页
图书介绍:作者结合第一版在市场上得到的读者反馈,以及作者用这本书作为中科院研究生的教材时得到的学生反馈,对这本书进行了重写,思路上有了比较大的调整,使得本书的内容质量又有了大幅度的提升。本书以图示化为核心,以操作系统的运行时结构为主线,Linux 0.11代码为载体,从计算机开机、操作系统载入内存开始,通过图示化的方式,逐步展开操作系统的真实运行过程,并以此为基础,结合对应的真实代码,分析其所蕴含的操作系统基本实现原理。本书以图解为核心,方便初学者理解;深入地分析操作系统的运行时结构和系统架构,有助于读者在头脑中建立一个生动、真实的操作系统图象。有了对系统架构和运行时结构的深入理解,相信读者再次面对更为复杂的现代操作系统时,便能够举重若轻,有针对性地解决他们所遇到的问题。
《Linux内核设计的艺术图解Linux操作系统架构设与实现原理 第2版》目录

第1章 从开机加电到执行main函数之前的过程 1

1.1启动BIOS,准备实模式下的中断向量表和中断服务程序 1

1.1.1 BIOS的启动原理 2

1.1.2 BIOS在内存中加载中断向量表和中断服务程序 3

1.2加载操作系统内核程序并为保护模式做准备 5

1.2.1加载第一部分内核代码——引导程序(bootsect) 5

1.2.2加载第二部分内核代码——setup 7

1.2.3加载第三部分内核代码——system模块 13

1.3开始向32位模式转变,为main函数的调用做准备 17

1.3.1关中断并将system移动到内存地址起始位置0x00000 17

1.3.2设置中断描述符表和全局描述符表 19

1.3.3打开A20,实现32位寻址 21

1.3.4为保护模式下执行head.s做准备 23

1.3.5 head.s开始执行 44

1.4本章小结 44

第2章 设备环境初始化及激活进程0 45

2.1设置根设备、硬盘 46

2.2规划物理内存格局,设置缓冲区、虚拟盘、主内存 46

2.3设置虚拟盘空间并初始化 48

2.4内存管理结构mem_map初始化 50

2.5异常处理类中断服务程序挂接 51

2.6初始化块设备请求项结构 57

2.7与建立入机交互界面相关的外设的中断服务程序挂接 59

2.7.1对串行口进行设置 59

2.7.2对显示器进行设置 60

2.7.3对健盘进行设置 61

2.8开机启动时间设置 63

2.9初始化进程0 65

2.9.1初始化进程0 68

2.9.2设置时钟中断 71

2.9.3设置系统调用总入口 71

2.10初始化缓冲区管理结构 73

2.11初始化硬盘 75

2.12初始化软盘 77

2.13开启中断 78

2.14进程0由0特权级翻转到3特权级,成为真正的进程 78

2.15本章小结 80

第3章 进程1的创建及执行 81

3.1进程1的创建 81

3.1.1进程0创建进程1 81

3.1.2在task[64]中为进程1申请一个空闲位置并获取进程号 87

3.1.3调用copy_rocess函数 89

3.1.4设置进程1的分页管理 94

3.1.5进程1共享进程0的文件 99

3.1.6设置进程1在GDT中的表项 99

3.1.7进程1处于就绪态 100

3.2内核第一次做进程调度 103

3.3轮转到进程1执行 107

3.3.1进程1为安装硬盘文件系统做准备 109

3.3.2进程1格式化虚拟盘并更换根设备为虚拟盘 135

3.3.3进程1在根设备上加载根文件系统 138

3.4本章小结 151

第4章 进程2的创建及执行 152

4.1打开终端设备文件及复制文件句柄 152

4.1.1打开标准输入设备文件 152

4.1.2打开标准输出、标准错误输出设备文件 166

4.2进程1创建进程2并切换到进程2执行 169

4.3加载shell程序 178

4.3.1关闭标准输入设备文件,打开rc文件 178

4.3.2检测shell文件 181

4.3.3为shell程序的执行做准备 186

4.3.4执行shell程序 192

4.4系统实现怠速 196

4.4.1创建update进程 196

4.4.2切换到shell进程执行 198

4.4.3重建shell 204

4.5本章小结 205

第5章 文件操作 206

5.1安装文件系统 206

5.1.1获取外设的超级块 206

5.1.2确定根文件系统的挂接点 209

5.1.3将超级块与根文件系统挂接 210

5.2打开文件 211

5.2.1将进程的 filp[20]与file_ table[64]挂接 212

5.2.2获取文件i节点 213

5.2.3将文件i节点与file_table[64]挂接 223

5.3读文件 224

5.3.1确定数据块在外设中的位置 224

5.3.2将数据块读入缓冲块 228

5.3.3将缓冲块中的数据复制到进程空间 228

5.4新建文件 230

5.4.1查找文件 230

5.4.2新建文件i节点 231

5.4.3新建文件目录项 233

5.5写文件 238

5.5.1确定文件的写入位置 238

5.5.2申请缓冲块 241

5.5.3将指定的数据从进程空间复制到缓冲块 241

5.5.4数据同步到外设的两种方法 242

5.6修改文件 245

5.6.1重定位文件的当前操作指针 246

5.6.2修改文件 246

5.7关闭文件 248

5.7.1当前进程的filp与file_ table[64]脱钩 248

5.7.2文件i节点被释放 249

5.8删除文件 250

5.8.1对文件的删除条件进行检查 251

5.8.2进行具体的删除工作 252

5.9本章小结 255

第6章 用户进程与内存管理 256

6.1线性地址的保护 256

6.1.1进程线性地址空间的格局 256

6.1.2段基址、段限长、GDT、LDT、特权级 257

6.2分页 260

6.2.1线性地址映射到物理地址 260

6.2.2进程执行时分页 261

6.2.3进程共享页面 267

6.2.4内核分页 270

6.3一个用户进程从创建到退出的完整过程 273

6.3.1创建strl进程 273

6.3.2 strl进程加载的准备工作 285

6.3.3 str1进程的运行、加载 289

6.3.4 str1进程的退出 296

6.4多个用户进程同时运行 299

6.4.1进程调度 299

6.4.2页写保护 303

6.5本章小结 309

第7章 缓冲区和多进程操作文件 310

7.1缓冲区的作用 310

7.2缓冲区的总体结构 311

7.3 b_ dev、 b_ blocknr及request的作用 312

7.3.1保证进程与缓冲块数据交互的正确性 312

7.3.2让数据在缓冲区中停留的时间尽可能长 320

7.4 uptodate和dirt的作用 325

7.4.1 b_uptodate的作用 326

7.4.2 b _dirt的作用 331

7.4.3 i_ uptodate、 i_dirt和s _dirt的作用 334

7.5 count、 lock、 wait、 request的作用 336

7.5.1 b _count的作用 336

7.5.2 i_ count的作用 338

7.5.3 b_lock、 b_ wait的作用 341

7.5.4 i lock、 i wait、 s lock、*s_ wait的作用 344

7.5.5补充request的作用 347

7.6实例1:关于缓冲块的进程等待队列 349

7.7总体来看缓冲块和请求项 370

7.8实例2:多进程操作文件的综合实例 373

7.9本章小结 388

第8章 进程间通信 389

8.1管道机制 389

8.1.1管道的创建过程 391

8.1.2管道的操作 396

8.2信号机制 410

8.2.1信号的使用 412

8.2.2信号对进程执行状态的影响 422

8.3本章小结 431

第9章 操作系统的设计指导思想 432

9.1运行一个最简单的程序,看操作系统为程序运行做了哪些工作 432

9.2操作系统的设计指导思想——主奴机制 434

9.2.1主奴机制中的进程及进程创建机制 435

9.2.2操作系统的设计如何体现主奴机制 436

9.3实现主奴机制的三种关键技术 438

9.3.1保护和分页 438

9.3.2特权级 440

9.3.3中断 441

9.4建立主奴机制的决定性因素——先机 443

9.5软件和硬件的关系 444

9.5.1非用户进程——进程0、进程1、shell进程 444

9.5.2文件与数据存储 445

9.6父子进程共享页面 450

9.7操作系统的全局中断与进程的局部中断——信号 450

9.8本章小结 451

结束语 452

“新设计团队”简介 453

返回顶部