书籍详情
Linux 内核完全注释 赵炯(20周年版)
作者:赵炯
出版社:机械工业出版社
出版时间:2024-01-01
ISBN:9787111740650
定价:¥198.00
购买这本书可以去
内容简介
本书对早期的Linux操作系统内核(v0.11)全部源代码文件进行了详细的注释和说明,旨在帮助读者够在短时间内对Linux的工作机理获得全面而深刻的理解,为进一步学习和研究Linux系统打下坚实的基础。书中首先介绍了Linux系统的发展历史,着重说明了各个内核版本之间的重要区别,给出了选择0.11版作为研究对象的原因;然后依据内核源代码的组织结构对所有代码进行了详细注释。在注释的同时,还介绍了读者应该了解的相关知识,并给出了相关的硬件信息。本书还介绍了内核源代码的组织结构及相互关系。
作者简介
赵炯,工学博士,计算机专家,Intel公司访问学者,国际计算机仿真协会、上海市通信学会会员。研究方向为计算机通信。曾经为本科、硕士和博士研究生开设《计算机网络》、《计算机通信技术》、《计算机通信与工控网络》、《微型计算机》和《计算机原理》等课程。参与国家自然科学基金项目“系统芯片在线测试与容错技术研究”和上海市自然科学基金“基于节点主动控制的大规模复杂输送系统控制模型研究”等工作。
目录
前言
第1章概述1
1.1 Linux的诞生和发展1
1.1.1 UNIX、MINIX、GNU和POSIX1
1.1.2 Linux操作系统的诞生和版本的变迁1
1.2 内容综述3
1.3 本章小结5
1.4 习题6
第2章Linux内核体系结构7
2.1 Linux内核模式和体系结构7
2.2 Linux中断机制9
2.3 Linux系统定时10
2.4 Linux内核进程控制11
2.4.1 任务数据结构11
2.4.2 进程运行状态11
2.4.3 进程初始化12
2.4.4 创建新进程14
2.4.5 进程调度14
2.4.6 终止进程15
2.5 Linux内核对内存的使用方法16
2.6 Linux系统中堆栈的使用方法19
2.6.1 初始化阶段19
2.6.2 任务的堆栈20
2.6.3 内核态与用户态堆栈之间的切换21
2.7 Linux内核源代码的目录结构21
2.7.1 引导启动程序目录boot22
2.7.2 文件系统目录fs22
2.7.3 头文件主目录include23
2.7.4 内核初始化程序目录init23
2.7.5 内核程序主目录kernel24
2.7.6 内核库函数目录lib25
2.7.7 内存管理程序目录mm26
2.7.8 编译内核工具程序目录tools26
2.8 内核系统与用户程序的关系26
2.9 Linux内核的编译实验环境26
2.10 linux/Makefile文件28
2.11 本章小结34
2.12 习题35
第3章内核引导启动程序36
3.1 总体功能描述36
3.2 程序分析37
3.2.1 bootsect.s程序37
3.2.2 setup.s程序44
3.2.3 head.s程序52
3.3 本章小结60
3.4 习题60
第4章内核初始化过程61
4.1 main.c程序分析61
4.2 本章小结68
4.3 习题69
第5章进程调度与系统调用70
5.1 总体功能描述70
5.1.1 中断处理程序70
5.1.2 系统调用处理相关程序71
5.2 程序分析72
5.2.1 asm.s程序72
5.2.2 traps.c程序77
5.2.3 systemcall.s程序83
5.2.4 mktime.c程序91
5.2.5 sched.c程序92
5.2.6 signal.c程序103
5.2.7 exit.c程序108
5.2.8 fork.c程序112
5.2.9 sys.c程序117
5.2.10 vsprintf.c程序122
5.2.11 printk.c程序127
5.2.12 panic.c程序128
5.3 本章小结129
5.4 习题129
第6章输入输出系统——块设备驱动程序130
6.1 总体功能描述130
6.1.1 块设备请求项和请求队列130
6.1.2 块设备操作方式132
6.2 程序分析133
6.2.1 blk.h文件133
6.2.2 hd.c程序136
6.2.3 llrwblk.c程序149
6.2.4 ramdisk.c程序154
6.2.5 floppy.c程序157
6.3 本章小结170
6.4 习题170
第7章输入输出系统——字符设备驱动程序171
7.1 总体功能描述171
7.1.1 终端驱动程序基本原理171
7.1.2 终端基本数据结构172
7.1.3 规范模式和非规范模式174
7.1.4 控制台驱动程序175
7.1.5 串行终端驱动程序176
7.1.6 终端驱动程序接口177
7.2 程序分析177
7.2.1 keyboard.S程序177
7.2.2 console.c程序191
7.2.3 serial.c程序210
7.2.4 rsio.s程序213
7.2.5 tty_io.c程序216
7.2.6 tty_ioctl.c程序225
7.3 本章小结230
7.4 习题230
第8章数学协处理器231
8.1 mathemulation.c程序分析231
8.2 本章小结232
8.3 习题232
第9章文件系统233
9.1 总体功能描述233
9.1.1 MINIX文件系统233
9.1.2 高速缓冲区237
9.1.3 文件系统底层函数237
9.1.4 文件中数据的访问操作237
9.2 程序分析239
9.2.1 buffer.c程序239
9.2.2 bitmap.c程序251
9.2.3 inode.c程序255
9.2.4 super.c程序264
9.2.5 namei.c程序272
9.2.6 filetable.c程序292
9.2.7 blockdev.c程序292
9.2.8 filedev.c程序295
9.2.9 pipe.c程序297
9.2.10 chardev.c程序300
9.2.11 readwrite.c程序303
9.2.12 truncate.c程序306
9.2.13 open.c程序307
9.2.14 exec.c程序312
9.2.15 stat.c程序322
9.2.16 fcntl.c程序323
9.2.17 ioctl.c程序325
9.3 本章小结326
9.4 习题326
第10章内存管理328
10.1 总体功能描述328
10.1.1 内存分页管理机制328
10.1.2 Linux中内存的管理和分配331
10.1.3 写时复制机制332
10.2 程序分析332
10.2.1 memory.c程序332
10.2.2 page.s程序345
10.3 本章小结346
10.4 习题346
第11章包含文件347
11.1 程序分析347
11.1.1 include/目录下的文件347
11.1.2 a.out.h文件347
11.1.3 const.h文件356
11.1.4 ctype.h文件356
11.1.5 errno.h文件357
11.1.6 fcntl.h文件359
11.1.7 signal.h文件360
11.1.8 stdarg.h文件362
11.1.9 stddef.h文件363
11.1.10 string.h文件363
11.1.11 termios.h文件372
11.1.12 time.h文件379
11.1.13 unistd.h文件380
11.1.14 utime.h文件385
11.1.15 incl
第1章概述1
1.1 Linux的诞生和发展1
1.1.1 UNIX、MINIX、GNU和POSIX1
1.1.2 Linux操作系统的诞生和版本的变迁1
1.2 内容综述3
1.3 本章小结5
1.4 习题6
第2章Linux内核体系结构7
2.1 Linux内核模式和体系结构7
2.2 Linux中断机制9
2.3 Linux系统定时10
2.4 Linux内核进程控制11
2.4.1 任务数据结构11
2.4.2 进程运行状态11
2.4.3 进程初始化12
2.4.4 创建新进程14
2.4.5 进程调度14
2.4.6 终止进程15
2.5 Linux内核对内存的使用方法16
2.6 Linux系统中堆栈的使用方法19
2.6.1 初始化阶段19
2.6.2 任务的堆栈20
2.6.3 内核态与用户态堆栈之间的切换21
2.7 Linux内核源代码的目录结构21
2.7.1 引导启动程序目录boot22
2.7.2 文件系统目录fs22
2.7.3 头文件主目录include23
2.7.4 内核初始化程序目录init23
2.7.5 内核程序主目录kernel24
2.7.6 内核库函数目录lib25
2.7.7 内存管理程序目录mm26
2.7.8 编译内核工具程序目录tools26
2.8 内核系统与用户程序的关系26
2.9 Linux内核的编译实验环境26
2.10 linux/Makefile文件28
2.11 本章小结34
2.12 习题35
第3章内核引导启动程序36
3.1 总体功能描述36
3.2 程序分析37
3.2.1 bootsect.s程序37
3.2.2 setup.s程序44
3.2.3 head.s程序52
3.3 本章小结60
3.4 习题60
第4章内核初始化过程61
4.1 main.c程序分析61
4.2 本章小结68
4.3 习题69
第5章进程调度与系统调用70
5.1 总体功能描述70
5.1.1 中断处理程序70
5.1.2 系统调用处理相关程序71
5.2 程序分析72
5.2.1 asm.s程序72
5.2.2 traps.c程序77
5.2.3 systemcall.s程序83
5.2.4 mktime.c程序91
5.2.5 sched.c程序92
5.2.6 signal.c程序103
5.2.7 exit.c程序108
5.2.8 fork.c程序112
5.2.9 sys.c程序117
5.2.10 vsprintf.c程序122
5.2.11 printk.c程序127
5.2.12 panic.c程序128
5.3 本章小结129
5.4 习题129
第6章输入输出系统——块设备驱动程序130
6.1 总体功能描述130
6.1.1 块设备请求项和请求队列130
6.1.2 块设备操作方式132
6.2 程序分析133
6.2.1 blk.h文件133
6.2.2 hd.c程序136
6.2.3 llrwblk.c程序149
6.2.4 ramdisk.c程序154
6.2.5 floppy.c程序157
6.3 本章小结170
6.4 习题170
第7章输入输出系统——字符设备驱动程序171
7.1 总体功能描述171
7.1.1 终端驱动程序基本原理171
7.1.2 终端基本数据结构172
7.1.3 规范模式和非规范模式174
7.1.4 控制台驱动程序175
7.1.5 串行终端驱动程序176
7.1.6 终端驱动程序接口177
7.2 程序分析177
7.2.1 keyboard.S程序177
7.2.2 console.c程序191
7.2.3 serial.c程序210
7.2.4 rsio.s程序213
7.2.5 tty_io.c程序216
7.2.6 tty_ioctl.c程序225
7.3 本章小结230
7.4 习题230
第8章数学协处理器231
8.1 mathemulation.c程序分析231
8.2 本章小结232
8.3 习题232
第9章文件系统233
9.1 总体功能描述233
9.1.1 MINIX文件系统233
9.1.2 高速缓冲区237
9.1.3 文件系统底层函数237
9.1.4 文件中数据的访问操作237
9.2 程序分析239
9.2.1 buffer.c程序239
9.2.2 bitmap.c程序251
9.2.3 inode.c程序255
9.2.4 super.c程序264
9.2.5 namei.c程序272
9.2.6 filetable.c程序292
9.2.7 blockdev.c程序292
9.2.8 filedev.c程序295
9.2.9 pipe.c程序297
9.2.10 chardev.c程序300
9.2.11 readwrite.c程序303
9.2.12 truncate.c程序306
9.2.13 open.c程序307
9.2.14 exec.c程序312
9.2.15 stat.c程序322
9.2.16 fcntl.c程序323
9.2.17 ioctl.c程序325
9.3 本章小结326
9.4 习题326
第10章内存管理328
10.1 总体功能描述328
10.1.1 内存分页管理机制328
10.1.2 Linux中内存的管理和分配331
10.1.3 写时复制机制332
10.2 程序分析332
10.2.1 memory.c程序332
10.2.2 page.s程序345
10.3 本章小结346
10.4 习题346
第11章包含文件347
11.1 程序分析347
11.1.1 include/目录下的文件347
11.1.2 a.out.h文件347
11.1.3 const.h文件356
11.1.4 ctype.h文件356
11.1.5 errno.h文件357
11.1.6 fcntl.h文件359
11.1.7 signal.h文件360
11.1.8 stdarg.h文件362
11.1.9 stddef.h文件363
11.1.10 string.h文件363
11.1.11 termios.h文件372
11.1.12 time.h文件379
11.1.13 unistd.h文件380
11.1.14 utime.h文件385
11.1.15 incl
猜您喜欢