logo资料库

Linux内核完全剖析.pdf

第1页 / 共906页
第2页 / 共906页
第3页 / 共906页
第4页 / 共906页
第5页 / 共906页
第6页 / 共906页
第7页 / 共906页
第8页 / 共906页
资料共906页,剩余部分请下载后查看
目录
序言
本书的主要目标
现有书籍的不足之处
阅读早期内核的其他好处
阅读完整源代码的重要性和必要性
如何选择要阅读的内核版本
阅读本书具备的基础知识
使用早期版本是否过时
Ext2文件系统与Minix文件系统
第一章 概述
1.1 Linux的诞生和发展
1.2 内容综述
1.3 本章小结
第二章 微型计算机组成结构
2.1 微型计算机组成原理
2.2 I/O端口寻址和访问控制方式
2.3 主存储器、BIOS和CMOS存储器
2.4 控制器和控制卡
2.5 本章小结
第三章 内核编程语言和环境
3.1 AS86汇编器
3.2 GNU AS汇编器
3.3 C语言程序
3.4 C与汇编程序的相互调用
3.5 Linux0.11目标文件格式
3.6 Make程序和Makefile文件
第四章 80x86保护模式及其编程
4.1 80x86系统寄存器和系统指令
4.2 保护模式内存管理
4.3 分段机制
4.4 分页机制
4.5 保护
4.6 中断和异常处理
4.7 任务管理
4.8 保护模式编程初始化
4.9 一个简单的多任务内核实例
第五章 Linux内核体系结构
5.1 Linux内核模式
5.2 Linux内核系统体系工具
5.3 Linux内核对内存的管理和使用
5.4 中断机制
5.5 Linux的系统调用
5.6 系统时间和定时
5.7 Linux进程控制
5.8 Linux系统中堆栈的使用方法
5.9 Linux0.11采用的文件系统
5.10 Linux内核源代码的目录结构
5.11 内核系统与应用程序的关系
5.12 Linux/Makefile文件
5.13 本章小结
第六章 引导启动程序(BOOT)
6.1 总体功能
6.2 BOOTSECT.S程序
6.3 SETUP.S程序
6.4 HEAS.S程序
6.5 本章小结
第七章 初始化程序(INIT)
7.1 MAIN.C程序
7.2 环境初始化工作
7.3 本章小结
第八章 内核代码(Kernel)
8.1 总体功能
8.2 Makefile文件
8.3 ASM.S程序
8.4 Traps.c程序
8.5 SYSTEM_CALL.S程序
8.6 MKTIME.C程序
8.7 SCHED.C程序
8.8 SIGNAL.C程序
8.9 EXIT.C程序
8.10 FORK.C程序
8.11 SYS.C程序
8.12 VSPRINTF.C程序
8.13 PRINTK.C程序
8.14 PANIC.C程序
8.15 本章小结
第九章 块设备驱动程序(Block Driver)
9.1 总体功能
9.2 Makefile文件
9.3 BLK.H文件
9.4 HD.C程序
9.5 LL_RW_BLK.C程序
9.6 RAMDISK.C程序
9.7 FLOOPY.C程序
第十章 字符设备驱动程序(Char Driver)
10.1 总体功能
10.2 MAKEFILE文件
10.3 KEYBOARD.S程序
10.4 CONSOLE.C程序
10.5 SERIAL.C程序
10.6 RS_IO.S程序
10.7 TTY_IO.C程序
10.8 TTY_IOCTL.C程序
第十一章 数学协处理器(Math)
11.1 MAKEFILE文件
11.2 MATH-EMULATION.C程序
第十二章 文件系统(FS)
12.1 总体功能
12.2 MAKEFILE 文件
12.3 BUFFER.C程序
12.4 BITMAP.C程序
12.5 TRUNCTE.C程序
12.6 INODE.C程序
12.7 SUPER.C程序
12.8 NAMEI.C程序
12.9 FILE_TABLE.C程序
12.10 BLOCK_DEV.C程序
12.11 FILE_DEV.C程序
12.12 PIPE.C程序
12.13 CHAR_DEV.C程序
12.14 READ_WRITE.C程序
12.15 OPEN.C程序
12.16 EXEC.C程序
12.17 STAT.C程序
12.18 FCNTL.C程序
12.19 IOCTL.C程序
第十三章 内存管理(MM)
13.1 总体功能
13.2 MAKEFILE文件
13.3 MEMORY.C程序
13.4 PAGE.S程序
第十四章 头文件(Include)
14.1 INCLUDE/目录下的文件
14.2 A.OUT.H文件
14.3 CONST.H文件
14.4 CTYPE.H文件
14.5 ERRNO.H文件
14.6 FCNTL.H文件
14.7 SIGNAL.H文件
14.8 STDARG.H文件
14.9 STDDEF.H文件
14.10 STRING.H文件
14.11 TERMIOS.H文件
14.12 TIME.H文件
14.13 UNISTD.H文件
14.14 UTIME.H文件
14.15 INCLUDE/ASM/目录下的文件
14.16 IO.H文件
14.17 MEMORY.H文件
14.18 SEGMENT.H文件
14.19 SYSTEM.H文件
14.20 INCLUDE/LINUX/目录下的文件
14.21 CONFIG.H文件
14.22 FDREG.H文件
14.23 FS.H文件
14.24 HDREG.H文件
14.25 HEAD.H文件
14.26 KERNEL.H文件
14.27 MM.H文件
14.28 SCHED.H文件
14.29 SYS.H文件
14.30 TTY.H文件
14.31 INCLUDE/SYS/目录中的文件
14.32 STAT.H文件
14.33 TIMES.H文件
14.34 TYPES.H文件
14.35 UTSNAME.H文件
14.36 WAIT.H文件
第十五章 库文件(Lib)
15.1 MAKEFILE文件
15.2 _EXIT.C程序
15.3 CLOSE.C程序
15.4 CTYPE.C程序
15.5 DUP.C程序
15.6 ERRNO.C程序
15.7 EXECVE.C程序
15.8 MALLOC.C程序
15.9 OPEN.C程序
15.10 SETSID.C程序
15.11 STRING.C程序
15.12 WAIT.C程序
15.13 WRITE.C程序
第十六章 建造工具(Tools)
16.1 BUILD.C
第十七章 实验环境设置与使用方法
17.1 BOCHS仿真系统
17.2 在BOCHS中运行Linux0.11系统
17.3 访问磁盘映像文件中的信息
17.4 编译运行简单内核实例程序
17.5 利用BOCHS调试内核
17.6 创建磁盘映像文件
17.7 制作根文件系统
17.8 在Linux0.11系统上编译0.11内核
17.9 在REDHAT9系统上编译Linux0.11内核
17.10 内核引导启动+根文件系统组成的集成盘
17.11 从硬盘启动:利用SHOELACE引导软件
17.12 利用GDB和BOCHS调试内核源代码
参考文献
附录
附录1 内核数据结构
附录2 ASCII码表
附录3 常用C0、C1控制字符表
附录4 常用转义序列和控制字符
附录5 第1套键盘扫描码集
索引
Linux v0.11 Linux Linux LINUX Linux Linux 0.11 0.95 Linux PC C 80X86 Linux Linux 0.11 www.oldlinux.org Linux .,. gohigh@sh163.net gohigh@gmail.com 1239 ,:200092 © 2002 - 2007 by Zhao Jiong © 2002 - 2007 .
................................................................................ 1 ........................................................ 1 .................................................... 1 ........................................ 2 ........................ 2 ............................ 3 .................................... 3 ........................................ 4 EXT2 MINIX ......................... 4 1 .................................................................. 5 1.1 LINUX ........................................... 5 1.2 ........................................................... 12 1.3 ........................................................... 16 2 .................................... 17 2.1 ........................................ 17 2.2 I/O .......................... 19 2.3 BIOS CMOS ................ 21 2.4 ................................................ 23 2.5 ........................................................... 31 3 .................................... 32 3.1 AS86 ....................................................... 32 3.2 GNU AS ...................................................... 38 3.3 C ......................................................... 48 3.4 C ................................. 55 3.5 LINUX 0.11 ................................. 63 3.6 MAKE MAKEFILE ........................... 72 4 80X86 ............................ 75 4.1 80X86 ........................ 75 4.2 ............................................ 81 4.3 ........................................................... 85 4.4 ........................................................... 96 4.5 ................................................................... 99 4.6 .............................................. 110 4.7 ......................................................... 120 4.8 ...................................... 128 4.9 .......................... 131 5 LINUX ................................ 141 5.1 LINUX ............................................... 141 5.2 LINUX ............................... 142 5.3 LINUX ................... 144 5.4 ......................................................... 157 5.5 LINUX ........................................... 160 5.6 .............................................. 162 5.7 LINUX ............................................... 164 5.8 LINUX ....................... 172 5.9 LINUX 0.11 ............................ 176 5.10 LINUX ..................... 177 5.11 ........................ 184 5.12 LINUX/MAKEFILE .................................... 184 5.13 ........................................................ 189 6 BOOT........................... 191 6.1 .......................................................... 191 6.2 BOOTSECT.S ............................................... 193 6.3 SETUP.S ..................................................... 203 6.4 HEAD.S ...................................................... 221 6.5 .......................................................... 234 7 (INIT) ....................................... 235 7.1 MAIN.C ...................................................... 235 7.2 .............................................. 247 7.3 .......................................................... 249 8 (KERNEL)................................... 251 8.1 .......................................................... 251 8.2 MAKEFILE ................................................. 254 8.3 ASM.S ........................................................ 256 8.4 TRAPS.C ..................................................... 262 8.5 SYSTEM_CALL.S ........................................ 267 8.6 MKTIME.C .................................................. 279 8.7 SCHED.C .................................................... 281 8.8 SIGNAL.C ................................................... 300 8.9 EXIT.C ....................................................... 311 8.10 FORK.C .................................................... 318 8.11 SYS.C ....................................................... 326 8.12 VSPRINTF.C .............................................. 333 8.13 PRINTK.C ................................................. 341 8.14 PANIC.C ................................................... 342 8.15 ........................................................ 343 9 (BLOCK DRIVER)......... 345 9.1 .......................................................... 346 9.2 MAKEFILE ................................................. 349 9.3 BLK.H ........................................................ 351 9.4 HD.C .......................................................... 355 9.5 LL_RW_BLK.C ........................................... 378 9.6 RAMDISK.C ................................................ 384 9.7 FLOPPY.C ................................................... 390
10 (CHAR DRIVER) ..... 417 10.1 ....................................................... 417 10.2 MAKEFILE ............................................... 427 10.3 KEYBOARD.S .......................................... 429 10.4 CONSOLE.C .............................................. 448 10.5 SERIAL.C ................................................. 474 10.6 RS_IO.S ................................................... 483 10.7 TTY_IO.C ................................................. 487 10.8 TTY_IOCTL.C ........................................... 499 11 (MATH).............................. 507 11.1 MAKEFILE ............................................... 507 11.2 MATH-EMULATION.C ................................ 509 12 (FS)............................................. 511 12.1 ....................................................... 511 12.2 MAKEFILE ............................................... 527 12.3 BUFFER.C ................................................ 530 12.4 BITMAP.C ................................................. 547 12.5 TRUNCTE.C .............................................. 553 12.6 INODE.C .................................................. 555 12.7 SUPER.C .................................................. 567 12.8 NAMEI.C .................................................. 577 12.9 FILE_TABLE.C .......................................... 601 12.10 BLOCK_DEV.C ....................................... 601 12.11 FILE_DEV.C ............................................ 605 12.12 PIPE.C .................................................... 608 12.13 CHAR_DEV.C ......................................... 612 12.14 READ_WRITE.C ...................................... 615 12.15 OPEN.C .................................................. 621 12.16 EXEC.C .................................................. 627 12.17 STAT.C ................................................... 647 12.18 FCNTL.C ................................................ 649 12.19 IOCTL.C ................................................. 652 13 (MM).......................................... 655 13.1 ....................................................... 655 13.2 MAKEFILE ............................................... 661 13.3 MEMORY.C ............................................... 662 13.4 PAGE.S ..................................................... 679 14 (INCLUDE) ................................... 683 14.1 INCLUDE/ ................................. 683 14.2 A.OUT.H ................................................... 684 14.3 CONST.H .................................................. 695 14.4 CTYPE.H .................................................. 695 14.5 ERRNO.H ................................................. 697 14.6 FCNTL.H .................................................. 699 14.7 SIGNAL.H ................................................ 701 14.8 STDARG.H ................................................ 703 14.9 STDDEF.H ................................................ 704 14.10 STRING.H ............................................... 705 14.11 TERMIOS.H ............................................ 715 14.12 TIME.H ................................................... 722 14.13 UNISTD.H ............................................... 724 14.14 UTIME.H ................................................ 729 14.15 INCLUDE/ASM/ ....................... 731 14.16 IO.H ....................................................... 731 14.17 MEMORY.H ............................................. 732 14.18 SEGMENT.H ............................................ 733 14.19 SYSTEM.H .............................................. 735 14.20 INCLUDE/LINUX/ .................... 739 14.21 CONFIG.H ............................................... 739 14.22 FDREG.H ............................................ 741 14.23 FS.H ....................................................... 744 14.24 HDREG.H ................................................ 749 14.25 HEAD.H ................................................. 752 14.26 KERNEL.H .............................................. 753 14.27 MM.H ..................................................... 754 14.28 SCHED.H ................................................ 754 14.29 SYS.H .................................................... 761 14.30 TTY.H ..................................................... 763 14.31 INCLUDE/SYS/......................... 766 14.32 STAT.H ................................................... 766 14.33 TIMES.H ................................................. 767 14.34 TYPES.H ................................................. 768 14.35 UTSNAME.H ........................................... 769 14.36 WAIT.H ................................................... 770 15 (LIB)............................................... 773 15.1 MAKEFILE ............................................... 774 15.2 _EXIT.C ................................................... 776 15.3 CLOSE.C .................................................. 777 15.4 CTYPE.C .................................................. 777 15.5 DUP.C ...................................................... 778 15.6 ERRNO.C .................................................. 779 15.7 EXECVE.C ................................................ 779 15.8 MALLOC.C ............................................... 780 15.9 OPEN.C .................................................... 789 15.10 SETSID.C ................................................ 790 15.11 STRING.C ................................................ 791 15.12 WAIT.C ................................................... 791 15.13 WRITE.C ................................................ 792 16 (TOOLS) .................................... 795 16.1 BUILD.C ................................................... 795 17 ........................ 802 17.1 BOCHS ............................................ 802 17.2 BOCHS LINUX 0.11 ............... 806 17.3 ........................ 813 17.4 ........................ 815 17.5 BOCHS ................................... 817 17.6 ........................................ 824 17.7 ............................................ 827 17.8 LINUX 0.11 0.11 ........... 834 17.9 REDHAT 9 LINUX 0.11 .. 835
17.10 + 838 17.11 SHOELACE .... 843 17.12 GDB BOCHS ...... 846 .................................................................... 853 ............................................................................ 855 1 ............................................ 855 2 ASCII ................................................. 863 3 C0C1 ......................... 864 4 ........................ 865 5 1 ................................ 868 ............................................................................ 869
Linux Linux linux linux Linux UNIX Linux Linux Linux Redhat 7.0 2.2.16 Fedora Core 4 2.6.11 Linux 2.2.20 268 Linux Linux Scott Maxwell Linux Linux Linux (*.h) make Linux Linux John Lions UNIX UNIX UNIX V6 PDP-11 A.S.Tanenbaum MINIX Linux Linux Linux Linux Linux Linux
分享到:
收藏