图书介绍
Linux内核完全剖析PDF|Epub|txt|kindle电子书版本网盘下载
![Linux内核完全剖析](https://www.shukui.net/cover/26/34770678.jpg)
- 赵炯编著 著
- 出版社: 北京:机械工业出版社
- ISBN:7111180321
- 出版时间:2006
- 标注页数:882页
- 文件大小:97MB
- 文件页数:898页
- 主题词:Linux操作系统
PDF下载
下载说明
Linux内核完全剖析PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
1.1.1 UNIX操作系统的诞生1
1.1.2 MINIX操作系统1
目录1
序1
第1章 概述1
1.1 Linux的诞生和发展1
1.1.4 POSIX标准2
1.1.3 GNU计划2
1.1.5 Linux操作系统的诞生3
1.1.6 Linux操作系统版本的变迁5
1.1.8 早期Linux系统开发的主要贡献者7
1.1.7 Linux名称的由来7
1.2 内容综述8
2.1 微型计算机组成原理13
第2章 微型计算机组成结构13
2.2.1 I/O端口和寻址15
2.2 I/O端口寻址和访问控制方式15
2.3.1 主存储器17
2.3 主存储器、BIOS和CMOS存储器17
2.2.2 接口访问控制17
2.3.2 基本输入/输出程序BIOS18
2.4.1 中断控制器19
2.4 控制器和控制卡19
2.3.3 CMOS存储器19
2.4.4 键盘控制器21
2.4.3 定时/计数器21
2.4.2 DMA控制器21
2.4.5 串行控制卡23
2.4.6 显示控制24
2.4.7 软盘和硬盘控制器26
3.1 as86汇编器28
第3章 内核编程语言和环境28
3.1.1 as86汇编语言语法29
3.1.2 as86汇编语言程序30
3.1.3 as86汇编语言程序的编译和链接32
3.2 GNU as汇编34
3.1.4 as86和ld86使用方法和选项34
3.2.1 编译as汇编语言程序35
3.2.2 as汇编语法36
3.2.3 指令语句、操作数和寻址38
3.2.4 区与重定位40
3.2.5 符号42
3.2.6 as汇编命令43
3.3.1 C程序编译和链接45
3.3 C语言程序45
3.2.7 编写16位代码45
3.2.8 as汇编器命令行选项45
3.3.2 嵌入汇编46
3.3.4 寄存器变量50
3.3.3 圆括号中的组合语句50
3.3.5 内联函数51
3.4.1 C函数调用机制53
3.4 C与汇编程序的相互调用53
3.4.2 在汇编程序中调用C函数58
3.4.3 在C程序中调用汇编函数60
3.5.1 目标文件格式62
3.5 Linux 0.11目标文件格式62
3.5.2 Linux 0.11中的目标文件格式65
3.5.3 链接程序输出67
3.5.4 链接程序预定义变量68
3.5.5 System.map文件70
3.6 Make程序和Makefile文件71
4.1.1 标志寄存器74
4.1 80x86系统寄存器和系统指令74
第4章 80x86保护模式及其编程74
4.1.2 内存管理寄存器75
4.1.3 控制寄存器76
4.1.4 系统指令79
4.2.2 地址变换80
4.2.1 内存寻址80
4.2 保护模式内存管理80
4.2.3 保护83
4.3.1 段的定义84
4.3 分段机制84
4.3.2 段描述符表86
4.3.3 段选择符88
4.3.4 段描述符90
4.3.5 代码和数据段描述符类型93
4.3.6 系统描述符类型94
4.4 分页机制95
4.4.1 页表结构96
4.4.3 虚拟存储98
4.4.2 页表项格式98
4.5.1 段级保护99
4.5 保护99
4.5.2 访问数据段时的特权级检查102
4.5.3 代码段之间转移控制时的特权级检查103
4.5.4 页级保护108
4.5.5 组合页级和段级保护109
4.6.2 中断源和异常源110
4.6.1 异常和中断向量110
4.6 中断和异常处理110
4.6.3 异常分类111
4.6.6 异常和中断的优先级112
4.6.5 开启和禁止中断112
4.6.4 程序或任务的重新执行112
4.6.7 中断描述符表113
4.6.8 IDT描述符114
4.6.9 异常与中断处理115
4.6.10 中断处理任务117
4.6.11 错误码118
4.7.1 任务的结构和状态119
4.7 任务管理119
4.7.3 任务管理数据结构120
4.7.2 任务的执行120
4.7.4 任务切换123
4.7.5 任务链125
4.7.6 任务地址空间126
4.8.1 进入保护模式时的初始化操作127
4.8 保护模式编程初始化127
4.8.2 模式切换129
4.9 一个简单的多任务内核实例130
4.9.1 多任务程序结构和工作原理131
4.9.2 引导启动程序boot.s134
4.9.3 多任务内核程序head.s135
5.1 Linux内核模式141
第5章 Linux内核体系结构141
5.2 Linux内核系统体系结构142
5.3.1 物理内存143
5.3 Linux内核对内存的管理和使用143
5.3.2 内存地址空间概念144
5.3.3 内存分段机制145
5.3.4 内存分页管理147
5.3.6 虚拟地址、线性地址和物理地址之间的关系150
5.3.5 CPU多任务和保护方式150
5.3.7 用户申请内存的动态分配154
5.4.1 中断操作原理155
5.4 Linux系统的中断机制155
5.4.2 80x86微机的中断子系统156
5.4.4 Linux内核的中断处理157
5.4.3 中断向量表157
5.5.1 系统调用接口159
5.5 Linux的系统调用159
5.4.5 标志寄存器的中断标志159
5.5.2 系统调用处理过程160
5.6.1 系统时间161
5.6 系统时间和定时161
5.5.3 Linux系统调用的参数传递方式161
5.7 Linux进程控制162
5.6.2 系统定时162
5.7.1 任务数据结构163
5.7.2 进程运行状态167
5.7.3 进程初始化168
5.7.4 创建新进程169
5.7.5 进程调度170
5.7.6 终止进程171
5.8.1 初始化阶段172
5.8 Linux系统中堆栈的使用方法172
5.8.2 任务的堆栈173
5.8.3 任务内核态堆栈与用户态堆栈之间的切换175
5.10 Linux内核源代码的目录结构176
5.9 Linux 0.11采用的文件系统176
5.10.3 文件系统目录fs177
5.10.2 引导启动程序目录boot177
5.10.1 内核主目录linux177
5.10.4 头文件主目录incllude179
5.10.6 内核程序主目录kernel180
5.10.5 内核初始化程序目录init180
5.11 内核系统与应用程序的关系183
5.10.9 编译内核工具程序目录tools183
5.10.7 内核库函数目录lib183
5.10.8 内存管理程序目录mm183
5.12.1 功能描述184
5.12 linux/Makefile文件184
5.12.2 代码注释185
6.1 总体功能190
第6章 引导启动程序190
6.2.2 代码注释192
6.2.1 功能描述192
6.2 botsect.s程序192
6.2.3 其他信息200
6.3.1 功能描述201
6.3 setup.s程序201
6.3.2 代码注释203
6.3.3 其他信息210
6.4.1 功能描述219
6.4 head.s程序219
6.4.2 代码注释221
6.4.3 其他信息228
7.1.1 功能描述232
7.1 main.c程序232
第7章 初始化程序232
7.1.2 代码注释235
7.1.3 其他信息242
7.2 环境初始化工作244
8.1 总体功能246
第8章 内核代码246
8.1.1 中断处理程序247
8.1.3 其他通用类程序248
8.1.2 系统调用处理相关程序248
8.2.2 文件注释249
8.2.1 功能简介249
8.2 Makefile文件249
8.3.1 功能描述251
8.3 asm.s程序251
8.3.2 代码注释252
8.3.3 Intel保留中断向量的定义256
8.4 traps.c程序257
8.4.1 功能描述257
8.4.2 代码注释257
8.5 system_call.s程序262
8.5.1 功能描述262
8.5.2 代码注释264
8.5.3 其他信息272
8.6 mktime.c程序274
8.6.1 功能描述274
8.6.2 代码注释274
8.6.3 闰年的计算方法276
8.7 sched.c程序276
8.7.1 功能描述276
8.7.2 代码注释278
8.7.3 其他信息290
8.8 signal.c程序295
8.8.1 功能描述295
8.8.2 代码注释301
8.8.3 进程信号说明305
8.9 exit.c程序306
8.9.1 功能描述306
8.9.2 代码注释307
8.10 fork.c程序312
8.10.1 功能描述312
8.10.2 代码注释314
8.10.3 任务状态段(TSS)信息318
8.11 sys.c程序320
8.11.1 功能描述320
8.11.2 代码注释321
8.12 vsprintf.c程序326
8.12.1 功能描述326
8.12.2 代码注释327
8.12.3 vsprintf()的格式字符串332
8.13 printk.c程序334
8.13.1 功能描述334
8.12.4 与当前版本的区别334
8.13.2 代码注释335
8.14.1 功能描述336
8.14.2 代码注释336
8.14 panic.c程序336
第9章 块设备驱动程序338
9.1 总体功能339
9.1.1 块设备请求项和请求队列339
9.1.2 块设备操作方式341
9.2.1 功能描述342
9.2.2 代码注释342
9.2 Makefile文件342
9.3 blk.h文件344
9.3.1 功能描述344
9.3.2 代码注释345
9.4 hd.c程序348
9.4.1 功能描述348
9.4.2 代码注释351
9.4.3 其他信息362
9.5.1 功能描述371
9.5.2 代码注释371
9.5 ll_rw_blk.c程序371
9.6 ramdisk.c程序376
9.6.1 功能描述376
9.6.2 代码注释378
9.7.1 功能描述382
9.7.2 代码注释382
9.7 floppy.c程序382
9.7.3 其他信息396
10.1 总体功能409
10.1.1 终端驱动程序基本原理409
第10章 字符设备驱动程序409
10.1.2 Linux支持的终端设备类型410
10.1.3 终端基本数据结构412
10.1.4 规范模式和非规范模式415
10.1.5 控制台终端和串行终端设备416
10.2.1 功能描述419
10.2 Makefile文件419
10.2.2 代码注释419
10.1.6 终端驱动程序接口419
10.3.1 功能描述422
10.3.2 代码注释422
10.3 keyboard.S程序422
10.3.3 其他信息436
10.4.1 功能描述440
10.4.2 代码注释440
10.4 console.c程序440
10.4.3 其他信息459
10.5.1 功能描述466
10.5.2 代码注释466
10.5 serial.c程序466
10.5.3 异步串行通信控制器UART468
10.6.1 功能描述474
10.6.2 代码注释474
10.6 rs_io.s程序474
10.7 tty_io.c程序478
10.7.1 功能描述478
10.7.2 代码注释479
10.8 tty_ioctl.c程序489
10.8.1 功能描述489
10.8.2 代码注释490
10.8.3 波特率与波特率因子495
11.1.1 功能描述497
11.1 Makefile文件497
11.1.2 代码注释497
第11章 数学协处理器497
11.2.1 功能描述499
11.2.2 代码注释499
11.2 math_emulate.c程序499
第12章 文件系统501
12.1 总体功能502
12.1.1 MINIX文件系统502
12.1.2 文件类型、属性和目录项506
12.1.3 高速缓冲区510
12.1.4 文体系统底层函数511
12.1.5 文件中数据的访问操作511
12.1.6 文件和目录管理系统调用513
12.1.7 360 KB软盘中文件系统实例分析513
12.2.2 代码注释517
12.2.1 功能描述517
12.2 Makefile文件517
12.3 buffer.c程序519
12.3.1 功能描述520
12.3.2 代码注释525
12.4.1 功能描述536
12.4 bitmap.c程序536
12.4.2 代码注释537
12.5.1 功能描述542
12.5 truncte.c程序542
12.5.2 代码注释543
12.6.1 功能描述544
12.6 inode.c程序544
12.6.2 代码注释546
12.7.1 功能描述556
12.7 super.c程序556
12.7.2 代码注释557
12.8.1 功能描述565
12.8 namei.c程序565
12.8.2 代码注释566
12.9.2 代码注释588
12.9.1 功能描述588
12.9 file_table.c程序588
12.10.1 功能描述589
12.10 block_dev.c程序589
12.10.2 代码注释590
12.11.2 代码注释592
12.11.1 功能描述592
12.11 file_dev.c程序592
12.12.1 功能描述595
12.12 pipe.c程序595
12.12.2 代码注释596
12.13.2 代码注释599
12.13.1 功能描述599
12.13 char_dev.c程序599
12.14.2 代码注释602
12.14.1 功能描述602
12.14 read_write.c程序602
12.14.3 用户程序读写操作过程605
12.15.2 代码注释608
12.15.1 功能描述608
12.15 open.c程序608
12.16.1 功能描述614
12.16 exec.c程序614
12.16.2 代码注释617
12.17.2 代码注释629
12.17.1 功能描述629
12.17 stat.c程序629
12.18.1 功能描述631
12.18 fcntl.c程序631
12.18.2 代码注释632
12.19.2 代码注释634
12.19.1 功能描述634
12.19 ioctl.c程序634
13.1.1 内存分页管理机制636
13.1 总体功能636
第13章 内存管理636
13.1.2 Linux中物理内存的管理和分配639
13.1.5 写时复制(copy on write)机制640
13.1.4 页面出错异常处理640
13.1.3 Linux内核对线性地址空间的使用分配640
13.1.6 需求加载(Load on demand)机制641
13.2.2 代码注释642
13.2.1 功能描述642
13.2 Makefile文件642
13.3.1 功能描述643
13.3 memory.c程序643
13.3.2 代码注释645
13.4.1 功能描述661
13.4 page.s程序661
13.4.2 代码注释662
13.4.3 页出错异常处理663
14.1 include/目录下的文件664
第14章 头文件664
14.2.1 功能描述666
14.2 a.out.h文件666
14.2.2 代码注释667
14.2.3 a.out执行文件格式672
14.3.2 代码注释676
14.3.1 功能描述676
14.3 const.h文件676
14.4.2 代码注释677
14.4.1 功能描述677
14.4 ctype.h文件677
14.5.2 代码注释678
14.5.1 功能描述678
14.5 errno.h文件678
14.6.2 代码注释680
14.6.1 功能描述680
14.6 fcntl.h文件680
14.7.2 文件注释682
14.7.1 功能描述682
14.7 signal.h文件682
14.8.2 代码注释684
14.8.1 功能描述684
14.8 stdarg.h文件684
14.9.1 功能描述685
14.9 stddef.h文件685
14.9.2 代码注释686
14.10.2 代码注释687
14.10.1 功能描述687
14.10 string.h文件687
14.11.1 功能描述696
14.11 termios.h文件696
14.11.2 代码注释697
14.11.3 控制字符TIME、MIN702
14.12.1 功能描述703
14.12 time.h文件703
14.12.2 代码注释704
14.13.2 代码注释705
14.13.1 功能描述705
14.13 unistd.h文件705
14.16.1 功能描述711
14.16 io.h文件711
14.14 utime.h文件711
14.14.1 功能描述711
14.14.2 代码注释711
14.15 include/asm/目录下的文件711
14.17.1 功能描述712
14.17 memory.h文件712
14.16.2 代码注释712
14.18.2 代码注释713
14.18.1 功能描述713
14.17.2 代码注释713
14.18 segment.h文件713
14.19.1 功能描述715
14.19 system.h文件715
14.19.2 代码注释717
14.20 include/linux/目录下的文件719
14.21.2 代码注释720
14.21.1 功能描述720
14.21 config.h文件720
14.22.1 功能描述722
14.22 fdreg.h头文件722
14.22.2 文件注释723
14.23.2 代码注释725
14.23.1 功能描述725
14.23 fs.h文件725
14.24.2 代码注释730
14.24.1 功能描述730
14.24 hdreg.h文件730
14.24.3 硬盘分区表732
14.26.2 代码注释733
14.26.1 功能描述733
14.25 head.h文件733
14.25.1 功能描述733
14.25.2 代码注释733
14.26 kernel.h文件733
14.27.2 代码注释734
14.27.1 功能描述734
14.27 mm.h文件734
14.28.1 功能描述735
14.28 sched.h文件735
14.28.2 代码注释736
14.29.2 代码注释742
14.29.1 功能描述742
14.29 sys.h文件742
14.30.2 代码注释744
14.30.1 功能描述744
14.30 tty.h文件744
14.31 include/sys/目录中的文件746
14.32.2 代码注释747
14.32.1 功能描述747
14.32 stat.h文件747
14.33.1 功能描述748
14.33 times.h文件748
14.34.2 代码注释749
14.34.1 功能描述749
14.33.2 代码注释749
14.34 types.h文件749
14.35.2 代码注释750
14.35.1 功能描述750
14.35 utsname.h文件750
14.36.2 代码注释751
14.36.1 功能描述751
14.36 wait.h文件751
第15章 库文件753
15.1.2 代码注释754
15.1.1 功能描述754
15.1 Makefile文件754
15.2.3 相关信息756
15.2.2 代码注释756
15.2 _exit.c程序756
15.2.1 功能描述756
15.4.2 代码注释757
15.4.1 功能描述757
15.3 close.c程序757
15.3.1 功能描述757
15.3.2 代码注释757
15.4 ctype.c程序757
15.5.2 代码注释758
15.5.1 功能描述758
15.5 dup.c程序758
15.7.2 代码注释759
15.7.1 功能描述759
15.6 errno.c程序759
15.6.1 功能描述759
15.6.2 代码注释759
15.7 execve.c程序759
15.8.1 功能描述760
15.8 malloc.c程序760
15.8.2 代码注释762
15.9 open.c程序768
15.9.1 功能描述768
15.9.2 代码注释769
15.10 setsid.c程序769
15.10.1 功能描述769
15.10.2 代码注释770
15.11 string.c程序770
15.11.1 功能描述770
15.11.2 代码注释770
15.12 wait.c程序771
15.12.1 功能描述771
15.12.2 代码注释771
15.13 write.c程序772
15.13.1 功能描述772
15.13.2 代码注释772
16.1 build.c程序773
16.1.1 功能概述773
第16章 建造工具773
16.1.2 代码注释774
16.2 MINIX可执行文件头部数据结构778
第17章 实验环境设置与使用方法780
17.1 Bochs仿真软件系统781
17.1.1 设置Bochs系统781
17.1.2 配置文件*.bxrc782
17.2 在Bochs中运行Linux 0.1x系统785
17.2.1 软件包中文件说明785
17.2.2 运行Linux 0.1x系统787
17.3 访问磁盘映像文件中的信息791
17.3.1 使用WinImage工具软件791
17.3.2 利用现有Linux系统792
17.4 编译运行简单内核示例程序793
17.5 利用Bochs调试内核795
17.5.1 运行Bochs调试程序796
17.5.2 定位内核中的变量或数据结构801
17.6 创建磁盘映像文件802
17.6.1 利用Bochs软件自带的Image生成工具803
17.6.2 在Linux系统下使用dd命令创建Image文件804
17.6.3 利用WinImage创建DOS格式的软盘Image文件804
17.7 制作根文件系统805
17.7.1 根文件系统和根文件设备805
17.7.2 创建文件系统806
17.7.3 Linux-0.11的Bochs配置文件808
17.7.4 在hdc.img上建立根文件系统810
17.7.5 使用硬盘Image上的根文件系统811
17.8 在Linux 0.11系统中编译0.11内核812
17.9 在Redhat Linux 9系统中编译Linux 0.11内核813
17.9.1 修改makefile文件814
17.9.2 修改汇编程序中的注释814
17.9.5 C程序变量在汇编语句中的引用表示815
17.9.4 修改嵌入宏汇编程序815
17.9.6 保护模式下调试显示函数815
17.9.3 内存位置对齐语句align值的修改815
17.10 内核引导启动+根文件系统组成的集成盘816
17.10.1 集成盘制作原理817
17.10.2 集成盘的制作过程818
17.10.3 运行集成盘系统821
17.11 从硬盘启动:利用shoelace引导软件821
17.11.2 设置过程822
17.11.3 问题和解决方法822
17.11.1 shoelace程序设置路径822
17.12 利用GDB和Bochs调试内核源代码824
17.12.1 编译带gdbstub的Bochs系统824
17.12.2 编译带调试信息的Linux 0.11内核825
17.12.3 调试方法和步骤826
附录830
附录A 内核数据结构830
附录B ASCII码表838
附录C 常用C0、C1控制字符表840
附录D 常用转义序列和控制序列841
附录E 第1套键盘扫描码集843
索引845
参考文献881