《Linux操作系统实现原理》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:赵炯
  • 出 版 社:上海:同济大学出版社
  • 出版年份:2018
  • ISBN:9787560880563
  • 页数:421 页
图书介绍:本书依据源代码程序详细描述了Linux内核的基本功能。书中首先介绍了Linux的历史,说明了内核的演变发展过程,然后概要介绍了运行Linux操作系统的PC硬件的组成结构以及内核所使用的汇编语言和C语言扩展部分,着重介绍和说明了80x86处理器在保护模式下运行的编程方法。接着详细介绍了Linux内核源代码的程序文件,每个文件的功能和相关的软硬件知识。在最后一章给出了实验内容,读者可以由此对Linux操作系统内核进行仿真实验,以获取对Linux操作系统工作原理的深入理解。本书适合作为大专院校本科高年级学生或研究生学习Linux操作系统和嵌入式系统的辅助和实验教材或自学参考书籍,也可供一般技术人员作为开发嵌入式系统的参考使用书籍。

第1章 概述 1

1.1 Linux的诞生和发展 1

1.2 内容综述 8

1.3 本章小结 11

第2章 微型计算机组成结构 12

2.1 微型计算机组成原理 12

2.2 I/O端口寻址和访问控制方式 14

2.3 主存储器、BIOS和CMOS存储器 16

2.4 控制器和控制卡 17

2.5 本章小结 24

第3章 内核编程语言和环境 25

3.1 as86汇编器 25

3.2 GNU as汇编 31

3.3 C语言程序 41

3.4 C与汇编程序的相互调用 48

3.5 Linux 0.12目标文件格式 55

3.6 Make程序和Makefile文件 63

3.7 本章小结 68

第4章 80x86保护模式及其编程 69

4.1 80x86系统寄存器和系统指令 69

4.2 保护模式内存管理 74

4.3 分段机制 78

4.4 分页机制 86

4.5 保护 90

4.6 中断和异常处理 99

4.7 任务管理 107

4.8 保护模式编程初始化 115

4.9 一个简单的多任务内核实例 118

第5章 Linux内核体系结构 127

5.1 Linux内核模式 127

5.2 Linux内核系统体系结构 128

5.3 Linux内核对内存的管理和使用 129

5.4 中断机制 139

5.5 Linux的系统调用 143

5.6 系统时间和定时 145

5.7 Linux进程控制 146

5.8 Linux系统中堆栈的使用方法 154

5.9 Linux 0.12采用的文件系统 158

5.10 Linux内核源代码的目录结构 158

5.11 内核系统与应用程序的关系 164

5.12 linux/Makefile文件 165

5.13 本章小结 166

第6章 引导启动程序(boot) 167

6.1 总体功能 167

6.2 bootsect.S程序 169

6.3 setup.S程序 170

6.4 head.s程序 181

6.5 本章小结 185

第7章 初始化程序(init) 186

7.1 main.c程序 186

7.2 环境初始化工作 191

7.3 本章小结 193

第8章 内核代码(kernel) 194

8.1 总体功能 194

8.2 asm.s程序 197

8.3 traps.c程序 198

8.4 sys_call.s程序 199

8.5 mktime.c程序 203

8.6 sched.c程序 203

8.7 signal.c程序 209

8.8 exit.c程序 218

8.9 fork.c程序 218

8.10 sys.c程序 220

8.11 vsprintf.c程序 221

8.12 printk.c程序 223

8.13 panic.c程序 223

8.14 本章小结 224

第9章 块设备驱动程序(block driver) 225

9.1 总体功能 226

9.2 blk.h文件 229

9.3 hd.c程序 229

9.4 ll_rw_blk.c程序 241

9.5 ramdisk.c程序 241

9.6 floppy.c程序 243

第10章 字符设备驱动程序(char driver) 256

10.1 总体功能 256

10.2 keyboard.S程序 265

10.3 console.c程序 270

10.4 serial.c程序 277

10.5 rs io.s程序 282

10.6 tty_io.c程序 283

10.7 tty_ioctl.c程序 284

第11章 数学协处理器(math) 286

11.1 总体功能描述 286

11.2 math-emulate.c程序 293

11.3 error.c程序 294

11.4 ea.c程序 295

11.5 convert.c程序 296

11.6 add.c程序 296

11.7 compare.c程序 296

11.8 get_put.c程序 297

11.9 mul.c程序 297

11.10 div.c程序 297

第12章 文件系统(fs) 298

12.1 总体功能 298

12.2 buffer.c程序 312

12.3 bitmap.c程序 317

12.4 truncate.c程序 318

12.5 inode.c程序 318

12.6 super.c程序 320

12.7 namei.c程序 321

12.8 file_table.c程序 322

12.9 block_dev.c程序 322

12.10 file_dev.c程序 323

12.11 pipe.c程序 323

12.12 char_dev.c程序 324

12.13 read_write.c程序 325

12.14 open.c程序 327

12.15 exec.c程序 327

12.16 stat.c程序 334

12.17 fcntl.c程序 334

12.18 ioctl.c程序 335

12.19 select.c程序 335

第13章 内存管理(mm) 340

13.1 总体功能 340

13.2 memory.c程序 345

13.3 page.s程序 347

13.4 swap.c程序 348

第14章 头文件(include) 349

14.1 include/目录下的文件 349

14.2 a.out.h文件 350

14.3 const.h文件 355

14.4 ctype.h文件 355

14.5 errno.h文件 355

14.6 fcntl.h文件 356

14.7 signal.h文件 356

14.8 stdarg.h文件 356

14.9 stddef.h文件 356

14.10 string.h文件 357

14.11 termios.h文件 357

14.12 time.h文件 358

14.13 unistd.h文件 359

14.14 utime.h文件 359

14.15 include/asm/目录下的文件 359

14.16 io.h文件 359

14.17 memory.h文件 359

14.18 segment.h文件 359

14.19 system.h文件 360

14.20 include/linux/目录下的文件 361

14.21 config.h文件 361

14.22 fdreg.h头文件 362

14.23 fs.h文件 362

14.24 hdreg.h文件 363

14.25 head.h文件 363

14.26 kernel.h文件 364

14.27 math_emu.h文件 364

14.28 mm.h文件 364

14.29 sched.h文件 364

14.30 sys.h文件 365

14.31 tty.h文件 365

14.32 include/sys/目录中的文件 365

14.33 param.h文件 365

14.34 resource.h文件 366

14.35 stat.h文件 366

14.36 time.h文件 366

14.37 times.h文件 366

14.38 ltypes.h文件 366

14.39 utsname.h文件 367

14.40 wait.h文件 367

第15章 库文件(lib) 368

15.1 exit.c程序 369

15.2 close.c程序 369

15.3 ctype.c程序 369

15.4 dup.c程序 369

15.5 errno.c程序 369

15.6 execve.c程序 369

15.7 malloc.c程序 369

15.8 open.c程序 371

15.9 setsid.c程序 371

15.10 string.c程序 372

15.11 wait.c程序 372

15.12 write.c程序 372

第16章 建造工具(tools) 373

第17章 实验环境设置与使用方法 375

17.1 Bochs仿真软件系统 375

17.2 在Bochs中运行Linux 0.1x系统 379

17.3 访问磁盘映像文件中的信息 383

17.4 编译运行简单内核示例程序 385

17.5 利用Bochs调试内核 387

17.6 创建磁盘映像文件 393

17.7 制作根文件系统 396

17.8 在Linux 0.12系统上编译0.12内核 402

17.9 在Fedora系统下编译Linux 0.1X内核 403

17.10 内核引导启动+根文件系统组成的集成盘 406

17.11 利用GDB和Bochs调试内核源代码 410

参考文献 415

附录 417