图书介绍
Linux 内核完全剖析-基于0.12内核PDF|Epub|txt|kindle电子书版本网盘下载
![Linux 内核完全剖析-基于0.12内核](https://www.shukui.net/cover/25/30126226.jpg)
- 赵炯编著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111250470
- 出版时间:2009
- 标注页数:945页
- 文件大小:264MB
- 文件页数:962页
- 主题词:Linux操作系统
PDF下载
下载说明
Linux 内核完全剖析-基于0.12内核PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 概述1
1.1 Linux的诞生和发展1
UNIX操作系统的诞生1
MINIX操作系统1
GNU计划2
POSIX标准2
Linux操作系统的诞生3
Linux操作系统版本的变迁4
Linux名称的由来6
早期Linux系统开发的主要贡献者7
1.2内容综述8
1.3本章小结12
第2章 微型计算机组成结构13
2.1微型计算机组成原理13
2.2 I/O端口寻址和访问控制方式15
I/O端口和寻址15
接口访问控制17
2.3主存储器、BIOS和CMOS存储器17
主存储器17
基本输入/输出程序BIOS18
CMOS存储器19
2.4控制器和控制卡19
中断控制器19
DMA控制器20
定时/计数器21
键盘控制器21
串行控制卡22
显示控制24
软盘和硬盘控制器25
2.5本章小结28
第3章 内核编程语言和环境29
3.1 as86汇编器29
as86汇编语言语法30
as86汇编语言程序31
as86汇编语言程序的编译和链接33
as86和ld86使用方法和选项34
3.2 GNU as汇编35
编译as汇编语言程序36
as汇编语法37
指令语句、操作数和寻址38
区与重定位41
符号43
as汇编命令44
编写16位代码46
AS汇编器命令行选项46
3.3 C语言程序46
C程序编译和链接46
嵌入汇编47
圆括号中的组合语句51
寄存器变量52
内联函数52
3.4 C与汇编程序的相互调用54
C函数调用机制54
在汇编程序中调用C函数59
在C程序中调用汇编函数61
3.5 Linux 0.12目标文件格式63
目标文件格式63
Linux 0.12中的目标文件格式66
链接程序输出68
链接程序预定义变量69
System.map文件70
3.6 Make程序和Makefile文件72
Makefile文件内容72
Makefile文件中的规则73
Makefile文件示例73
make处理Makefile文件的方式75
Makefile中的变量76
让make自动推断命令76
隐含规则中的自动变量77
3.7本章小结78
第4章 80x86保护模式及其编程79
4.1 80x86系统寄存器和系统指令79
标志寄存器79
内存管理寄存器80
控制寄存器81
系统指令84
4.2保护模式内存管理85
内存寻址85
地址变换86
保护88
4.3分段机制89
段的定义89
段描述符表91
段选择符93
段描述符95
代码和数据段描述符类型98
系统描述符类型99
4.4分页机制100
页表结构102
页表项格式103
虚拟存储104
4.5保护104
段级保护105
访问数据段时的特权级检查107
代码段之间转移控制时的特权级检查108
页级保护113
组合页级和段级保护115
4.6中断和异常处理115
异常和中断向量115
中断源和异常源116
异常分类117
程序或任务的重新执行117
开启和禁止中断118
异常和中断的优先级118
中断描述符表119
IDT描述符119
异常与中断处理120
中断处理任务123
错误码123
4.7任务管理124
任务的结构和状态125
任务的执行126
任务管理数据结构126
任务切换129
任务链131
任务地址空间132
4.8保护模式编程初始化133
进入保护模式时的初始化操作134
模式切换135
4.9一个简单的多任务内核实例137
多任务程序结构和工作原理137
引导启动程序boot.s140
多任务内核程序head.s142
第5章 Linux内核体系结构147
5.1 Linux内核模式147
5.2 Linux内核系统体系结构148
5.3 Linux内核对内存的管理和使用150
物理内存150
内存地址空间概念150
内存分段机制151
内存分页管理154
CPU多任务和保护方式157
虚拟地址、线性地址和物理地址之间的关系157
用户申请内存的动态分配161
5.4中断机制162
中断操作原理162
80x86微机的中断子系统163
中断向量表164
Linux内核的中断处理164
标志寄存器的中断标志166
5.5 Linux的系统调用166
系统调用接口166
系统调用处理过程167
Linux系统调用的参数传递方式168
5.6系统时间和定时168
系统时间168
系统定时169
5.7 Linux进程控制170
任务数据结构170
进程运行状态175
进程初始化176
创建新进程177
进程调度178
终止进程179
5.8 Linux系统中堆栈的使用方法179
初始化阶段180
任务的堆栈181
任务内核态堆栈与用户态堆栈之间的切换183
5.9 Linux 0.12采用的文件系统184
5.10 Linux内核源代码的目录结构184
内核主目录linux185
引导启动程序目录boot185
文件系统目录fs186
头文件主目录include187
内核初始化程序目录init188
内核程序主目录kernel188
内核库函数目录lib191
内存管理程序目录mm191
编译内核工具程序目录tools192
5.11内核系统与应用程序的关系192
5.12 linux/Makefile文件192
功能描述193
代码注释194
5.13本章小结198
第6章 引导启动程序199
6.1总体功能199
6.2 bootsect.S程序201
功能描述201
代码注释202
其他信息213
6.3 setup.S程序214
功能描述214
代码注释216
其他信息232
6.4 head.s程序242
功能描述242
代码注释243
其他信息251
6.5本章小结253
第7章 初始化程序255
7.1 main.c程序255
功能描述255
代码注释258
其他信息265
7.2环境初始化工作268
7.3本章小结269
第8章 内核代码271
8.1总体功能271
中断处理程序271
系统调用处理相关程序272
其他通用类程序273
8.2 asm.s程序273
功能描述273
代码注释275
Intel保留中断向量的定义279
8.3 traps.c程序279
功能描述279
代码注释279
8.4 sys call.s程序284
功能描述284
代码注释286
其他信息294
8.5 mktime.c程序296
功能描述296
代码注释297
闰年的计算方法298
8.6 sched.c程序298
功能描述298
代码注释300
其他信息312
8.7 signal.c程序317
功能描述317
代码注释325
进程信号说明331
8.8 exit.c程序332
功能描述332
代码注释333
8.9 fork.c程序345
功能描述345
代码注释346
任务状态段信息351
8.10 sys.c程序352
功能描述352
代码注释353
8.11 vsprintf.c程序366
功能描述366
代码注释367
vsprintf()的格式字符串372
与当前版本的区别374
8.12 printk.c程序374
功能描述374
代码注释375
8.13 panic.c程序375
功能描述375
代码注释376
8.14本章小结376
第9章 块设备驱动程序377
9.1总体功能378
块设备请求项和请求队列378
块设备访问调度处理380
块设备操作方式380
9.2 blk.h文件381
功能描述381
代码注释382
9.3 hd.c程序386
功能描述386
代码注释388
其他信息400
9.4 ll_rw_blk.c程序409
功能描述409
代码注释409
9.5 ramdisk.c程序415
功能描述415
代码注释417
9.6 floppy.c程序421
功能描述421
代码注释422
其他信息435
第10章 字符设备驱动程序449
10.1总体功能449
终端驱动程序基本原理449
Linux支持的终端设备类型450
终端基本数据结构451
规范模式和非规范模式455
控制台终端和串行终端设备456
终端驱动程序接口459
10.2 keyboard.S程序459
功能描述459
代码注释459
其他信息473
10.3 console.c程序477
功能描述477
代码注释477
其他信息503
10.4 serial.c程序510
功能描述510
代码注释510
异步串行通信控制器UART512
10.5 rs_io.s程序517
功能描述517
代码注释518
10.6 tty_io.c程序522
功能描述522
代码注释523
控制字符VTIME、 VMIN536
10.7 tty_ioctl.c程序536
功能描述536
代码注释537
波特率与波特率因子543
第11章 数学协处理器545
11.1总体功能描述545
浮点数据类型546
数学协处理器功能和结构550
11.2 math_emulate.c程序553
功能描述553
代码注释555
11.3 error.c程序565
功能描述565
代码注释566
11.4 ea.c程序566
功能描述566
代码注释567
11.5 convert.c程序570
功能描述570
代码注释570
11.6 add.c程序574
功能描述574
代码注释575
11.7 compare.c程序577
功能描述577
代码注释577
11.8 get_put.c程序579
功能描述579
代码注释579
11.9 mul.c程序585
功能描述585
代码注释585
11.10 div.c程序586
功能描述586
代码注释587
第12章 文件系统589
12.1总体功能589
MINIX文件系统590
文件类型、属性和目录项594
高速缓冲区598
文件系统底层函数599
文件中数据的访问操作599
文件和目录管理系统调用601
360KB软盘中文件系统实例分析602
12.2 buffer.c程序605
功能描述605
代码注释611
12.3 bitmap.c程序621
功能描述622
代码注释622
12.4 truncate.c程序627
功能描述627
代码注释627
12.5 inode.c程序630
功能描述630
代码注释632
12.6 super.c程序641
功能描述641
代码注释642
12.7 namei.c程序650
功能描述650
代码注释651
12.8 file_table.c程序675
功能描述675
代码注释675
12.9 block_dev.c程序676
功能描述676
代码注释677
12.10 file_dev.c程序680
功能描述680
代码注释680
12.11 pipe.c程序682
功能描述682
代码注释683
12.12 char_dev.c程序687
功能描述687
代码注释687
12.13 read_write.c程序690
功能描述690
代码注释690
用户程序读写操作过程693
12.14 open.c程序695
功能描述696
代码注释696
12.15 exec.c程序703
功能描述703
代码注释706
其他信息718
12.16 stat.c程序722
功能描述722
代码注释722
12.17 fcntl.c程序724
功能描述724
代码注释725
12.18 ioctl.c程序727
功能描述727
代码注释728
12.19 select.c程序729
功能描述729
代码注释733
第13章 内存管理741
13.1总体功能741
内存分页管理机制741
Linux中物理内存的管理和分配744
Linux内核对线性地址空间的使用分配745
页面出错异常处理745
写时复制机制746
需求加载机制746
13.2 memory.c程序747
功能描述747
代码注释749
13.3 page.s程序765
功能描述765
代码注释765
页出错异常处理766
13.4 swap.c程序767
功能描述767
代码注释767
第14章 头文件775
14.1 include/目录下的文件775
14.2 a.out.h文件776
功能描述776
代码注释777
a.out执行文件格式783
14.3 const.h文件786
功能描述786
代码注释786
14.4 ctype.h文件787
功能描述787
代码注释787
14.5 errno.h文件788
功能描述788
代码注释789
14.6 fcntl.h文件790
功能描述790
代码注释790
14.7 signal.h文件792
功能描述792
文件注释792
14.8 stdarg.h文件795
功能描述795
代码注释795
14.9 stddef.h文件796
功能描述796
代码注释796
14.10 string.h文件797
功能描述797
代码注释797
14.11 termios.h文件806
功能描述806
代码注释807
控制字符TIME和MIN812
14.12 time.h文件813
功能描述813
代码注释813
14.13 unistd.h文件815
功能描述815
代码注释815
14.14 utime.h文件821
功能描述821
代码注释821
14.15 include/asm/目录下的文件821
14.16 io.h文件821
功能描述821
代码注释822
14.17 memory.h文件822
功能描述822
代码注释822
14.18 segment.h文件823
功能描述823
代码注释823
14.19 system.h文件825
功能描述825
代码注释827
14.20 include/linux/目录下的文件829
14.21 config.h文件829
功能描述829
代码注释829
14.22 fdreg.h头文件831
功能描述831
文件注释832
14.23 fs.h文件834
功能描述834
代码注释834
14.24 hdreg.h文件839
功能描述839
代码注释840
硬盘分区表841
14.25 head.h文件842
功能描述842
代码注释842
14.26 kernel.h文件843
功能描述843
代码注释843
14.27 mm.h文件844
功能描述844
代码注释844
14.28 sched.h文件845
功能描述845
代码注释846
14.29 sys.h文件853
功能描述853
代码注释854
14.30 tty.h文件856
功能描述856
代码注释856
14.31 include/sys/目录中的文件859
14.32 param.h文件859
功能描述859
代码注释859
14.33 resource.h文件859
功能描述859
代码注释860
14.34 stat.h文件862
功能描述862
代码注释862
14.35 time.h文件863
功能描述863
代码注释863
14.36 times.h文件865
功能描述865
代码注释865
14.37 types.h文件865
功能描述865
代码注释865
14.38 utsname.h文件866
功能描述866
代码注释867
14.39 wait.h文件867
功能描述867
代码注释867
第15章 库文件869
15.1 exit.c程序869
功能描述869
代码注释870
相关信息870
15.2 close.c程序870
功能描述870
代码注释870
15.3 ctype.c程序871
功能描述871
代码注释871
15.4 dup.c程序872
功能描述872
代码注释872
15.5 errno.c程序872
功能描述872
代码注释872
15.6 execve.c程序873
功能描述873
代码注释873
15.7 malloc.c程序873
功能描述873
代码注释875
15.8 open.c程序882
功能描述882
代码注释882
15.9 setsid.c程序883
功能描述883
代码注释883
15.10 string.c程序884
功能描述884
代码注释884
15.11 wait.c程序884
功能描述884
代码注释885
15.12 write.c程序885
功能描述885
代码注释885
第16章 建造工具887
16.1 build.c程序887
功能描述887
代码注释888
16.2 MINIX可执行文件头部数据结构893
第17章 实验环境设置与使用方法895
17.1 Bochs仿真软件系统895
设置Bochs系统896
配置文件*.bxrc897
17.2在Bochs中运行Linux 0.1x系统900
软件包中文件说明900
安装Bochs模拟系统902
运行Linux 0.1x系统902
17.3访问磁盘映像文件中的信息904
使用WinImage工具软件904
利用现有Linux系统905
17.4编译运行简单内核示例程序906
17.5利用Bochs调试内核908
运行Bochs调试程序908
定位内核中的变量或数据结构914
17.6创建磁盘映像文件915
利用Bochs软件自带的Image生成工具916
在Linux系统下使用dd命令创建Image文件917
利用WinImage创建DOS格式的软盘Image文件917
17.7制作根文件系统918
根文件系统和根文件设备918
创建文件系统919
Linux-0.12的Bochs配置文件921
在hdc.img上建立根文件系统922
使用硬盘Image上的根文件系统924
17.8在Linux 0.12系统中编译0.12内核925
17.9在Fedora系统中编译Linux 0.1 x内核926
修改Makefile文件926
修改汇编程序中的注释927
内存位置对齐语句align值的修改927
修改嵌入宏汇编程序927
C程序变量在汇编语句中的引用表示928
保护模式下调试显示函数928
17.10内核引导启动+根文件系统组成的集成盘929
集成盘制作原理929
集成盘的制作过程931
运行集成盘系统933
17.11利用GDB和Bochs调试内核源代码933
编译带gdbstub的Bochs系统933
编译带调试信息的Linux 0.1 x内核934
调试方法和步骤935
附录939
附录A ASCII码表939
附录B 常用C0、 C1控制字符表940
附录C 常用转义序列和控制序列941
附录D 第1套键盘扫描码集943
参考文献944