图书介绍

Linux 内核完全剖析-基于0.12内核PDF|Epub|txt|kindle电子书版本网盘下载

Linux 内核完全剖析-基于0.12内核
  • 赵炯编著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111250470
  • 出版时间:2009
  • 标注页数:945页
  • 文件大小:264MB
  • 文件页数:962页
  • 主题词:Linux操作系统

PDF下载


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

下载说明

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

热门推荐