基本信息
源码名称:Linux内核完全注释.pdf(V5.0)
源码大小:11.64M
文件格式:.pdf
开发语言:C/C++
更新时间:2020-10-21
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
CLK-5.0-WithCover.pdf
CLK-5.0-WithCover.pdf
目录 序言................................................................................ 1 本书目标.................................................................... 1 本书特点.................................................................... 1 阅读早期内核的其他好处 ........................................ 2 阅读完整源代码的重要性和必要性 ........................ 2 如何选择要阅读的内核版本 .................................... 3 阅读本书需具备的基础知识 .................................... 3 使用早期版本是否过时? ........................................ 4 EXT 文件系统与 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 本章小结...................................................... 32 3 内核编程语言和环境.......................................... 33 3.1 AS86 汇编器 ................................................ 33 3.2 GNU AS 汇编 ............................................... 39 3.3 C 语言程序.................................................. 49 3.4 C 与汇编程序的相互调用.......................... 57 3.5 LINUX 0.12 目标文件格式 .......................... 65 3.6 MAKE 程序和 MAKEFILE 文件.................... 74 3.7 本章小结...................................................... 79 4 80X86 保护模式及其编程.................................. 81 4.1 80X86 系统寄存器和系统指令 ................. 81 4.2 保护模式内存管理...................................... 87 4.3 分段机制...................................................... 91 4.4 分页机制.................................................... 102 4.5 保护 ........................................................... 106 4.6 中断和异常处理........................................ 116 4.7 任务管理.................................................... 126 4.8 保护模式编程初始化................................ 134 4.9 一个简单的多任务内核实例.................... 137 4.10 本章小结.................................................... 147 5 LINUX 内核体系结构...................................... 149 5.1 LINUX 内核模式 ........................................ 149 5.2 LINUX 内核系统体系结构 ........................ 150 5.3 LINUX 内核对内存的管理和使用............. 152 5.4 中断机制.................................................... 165 5.5 LINUX 的系统调用..................................... 169 5.6 系统时间和定时........................................ 172 5.7 LINUX 进程控制 ........................................ 173 5.8 LINUX 系统中堆栈的使用方法................. 183 5.9 LINUX 0.12 采用的文件系统..................... 187 5.10 LINUX 内核源代码的目录结构................. 188 5.11 内核与应用程序的关系............................ 196 5.12 LINUX/MAKEFILE 文件............................... 197 5.13 本章小结.................................................... 202 6 引导启动程序(BOOT)................................. 203 6.1 总体功能.................................................... 203 6.2 BOOTSECT.S 程序 ....................................... 205 6.3 SETUP.S 程序.............................................. 219 6.4 HEAD.S 程序 ............................................... 248 6.5 本章小结.................................................... 261 7 初始化程序(INIT)............................................. 263 7.1 MAIN.C 程序 ............................................... 263 7.2 环境初始化工作........................................ 276 7.3 本章小结.................................................... 278 8 内核代码(KERNEL)......................................... 279 8.1 总体功能.................................................... 279 8.2 ASM.S 程序 ................................................. 282 8.3 TRAPS.C 程序.............................................. 288 8.4 SYS_CALL.S 程序........................................ 294 8.5 MKTIME.C 程序........................................... 307 8.6 SCHED.C 程序 ............................................. 309 8.7 SIGNAL.C 程序............................................ 329 8.8 EXIT.C 程序................................................. 345 8.9 FORK.C 程序 ............................................... 359 8.10 SYS.C 程序.................................................. 366 8.11 VSPRINTF.C 程序......................................... 382 8.12 PRINTK.C 程序 ............................................ 390 8.13 PANIC.C 程序 .............................................. 391 8.14 本章小结.................................................... 392 9 块设备驱动程序(BLOCK DRIVER) .............. 393 9.1 总体功能.................................................... 394 9.2 BLK.H 文件 ................................................. 398 9.3 HD.C 程序................................................... 402 9.4 LL_RW_BLK.C 程序..................................... 425 9.5 RAMDISK.C 程序......................................... 432 9.6 FLOPPY.C 程序 ............................................ 438 目录 - II - 9.7 本章小结.................................................... 466 10 字符设备驱动程序(CHAR DRIVER)......... 467 10.1 总体功能.................................................... 467 10.2 KEYBOARD.S 程序...................................... 478 10.3 CONSOLE.C 程序......................................... 497 10.4 SERIAL.C 程序 ............................................ 532 10.5 RS_IO.S 程序............................................... 540 10.6 TTY_IO.C 程序............................................ 544 10.7 TTY_IOCTL.C 程序...................................... 560 10.8 本章小结.................................................... 568 11 数学协处理器(MATH)................................. 569 11.1 总体功能描述............................................ 569 11.2 MATH-EMULATION.C 程序........................... 578 11.3 ERROR.C 程序............................................. 590 11.4 EA.C 程序 ................................................... 591 11.5 CONVERT.C 程序......................................... 595 11.6 ADD.C 程序................................................. 600 11.7 COMPARE.C 程序 ........................................ 603 11.8 GET_PUT.C 程序.......................................... 605 11.9 MUL.C 程序 ................................................ 611 11.10 DIV.C 程序.............................................. 613 11.11 本章小结 ............................................... 615 12 文件系统(FS) ................................................ 617 12.1 总体功能.................................................... 617 12.2 BUFFER.C 程序............................................ 634 12.3 BITMAP.C 程序............................................ 652 12.4 TRUNCATE.C 程序....................................... 658 12.5 INODE.C 程序.............................................. 661 12.6 SUPER.C 程序.............................................. 673 12.7 NAMEI.C 程序 ............................................. 683 12.8 FILE_TABLE.C 程序..................................... 710 12.9 BLOCK_DEV.C 程序..................................... 710 12.10 FILE_DEV.C 程序..................................... 714 12.11 PIPE.C 程序............................................. 717 12.12 CHAR_DEV.C 程序 .................................. 722 12.13 READ_WRITE.C 程序............................... 725 12.14 OPEN.C 程序........................................... 731 12.15 EXEC.C 程序........................................... 739 12.16 STAT.C 程序 ............................................ 756 12.17 FCNTL.C 程序 ......................................... 759 12.18 IOCTL.C 程序.......................................... 762 12.19 SELECT.C 程序........................................ 764 12.20 本章小结 ............................................... 776 13 内存管理(MM) ............................................. 777 13.1 总体功能.................................................... 777 13.2 MEMORY.C 程序.......................................... 786 13.3 PAGE.S 程序................................................ 805 13.4 SWAP.C 程序 ............................................... 806 13.5 本章小结.................................................... 815 14 头文件(INCLUDE)....................................... 817 14.1 INCLUDE/目录下的文件............................. 817 14.2 A.OUT.H 文件.............................................. 819 14.3 CONST.H 文件 ............................................. 829 14.4 CTYPE.H 文件 ............................................. 830 14.5 ERRNO.H 文件............................................. 831 14.6 FCNTL.H 文件 ............................................. 834 14.7 SIGNAL.H 文件............................................ 836 14.8 STDARG.H 文件........................................... 838 14.9 STDDEF.H 文件............................................ 840 14.10 STRING.H 文件........................................ 841 14.11 TERMIOS.H 文件 ..................................... 851 14.12 TIME.H 文件............................................ 858 14.13 UNISTD.H 文件........................................ 859 14.14 UTIME.H 文件 ......................................... 866 14.15 INCLUDE/ASM/目录下的文件................. 867 14.16 IO.H 文件................................................ 867 14.17 MEMORY.H 文件...................................... 868 14.18 SEGMENT.H 文件..................................... 869 14.19 SYSTEM.H 文件....................................... 871 14.20 INCLUDE/LINUX/目录下的文件.............. 876 14.21 CONFIG.H 文件 ....................................... 876 14.22 FDREG.H 头文件..................................... 878 14.23 FS.H 文件................................................ 881 14.24 HDREG.H 文件 ........................................ 887 14.25 HEAD.H 文件 .......................................... 890 14.26 KERNEL.H 文件....................................... 890 14.27 MATH_EMU.H 文件 ................................. 892 14.28 MM.H 文件.............................................. 896 14.29 SCHED.H 文件......................................... 898 14.30 SYS.H 文件 ............................................. 906 14.31 TTY.H 文件.............................................. 909 14.32 INCLUDE/SYS/目录中的文件.................. 913 14.33 PARAM.H 文件........................................ 913 14.34 RESOURCE.H 文件................................... 914 14.35 STAT.H 文件 ............................................ 916 14.36 TIME.H 文件............................................ 918 14.37 TIMES.H 文件.......................................... 919 14.38 TYPES.H 文件.......................................... 920 14.39 UTSNAME.H 文件.................................... 921 14.40 WAIT.H 文件............................................ 922 14.41 本章小结 ............................................... 923 15 库文件(LIB) .................................................. 925 15.1 _EXIT.C 程序............................................... 926 15.2 CLOSE.C 程序.............................................. 927 15.3 CTYPE.C 程序.............................................. 927 15.4 DUP.C 程序.................................................. 928 15.5 ERRNO.C 程序............................................. 929 15.6 EXECVE.C 程序........................................... 929 15.7 MALLOC.C 程序 .......................................... 930 15.8 OPEN.C 程序 ............................................... 939 15.9 SETSID.C 程序............................................. 940 目录 - III - 15.10 STRING.C 程序........................................ 941 15.11 WAIT.C 程序............................................ 941 15.12 WRITE.C 程序 ......................................... 942 15.13 本章小结 ............................................... 943 16 建造工具(TOOLS) ....................................... 945 16.1 BUILD.C 程序.............................................. 945 16.2 本章小结.................................................... 952 17 实验环境设置与使用方法............................ 953 17.1 BOCHS 仿真软件系统................................ 953 17.2 在 BOCHS 中运行 LINUX 0.1X 系统 .......... 958 17.3 访问磁盘映像文件中的信息.................... 962 17.4 编译运行简单内核示例程序.................... 965 17.5 利用 BOCHS 调试内核............................... 967 17.6 创建磁盘映像文件.................................... 974 17.7 制作根文件系统........................................ 978 17.8 在 LINUX 0.12 系统上编译 0.12 内核....... 985 17.9 在 REDHAT 系统下编译 LINUX 0.1X 内核 986 17.10 内核引导 根文件系统组成的集成盘.. 990 17.11 利用 GDB 和 BOCHS 调试内核源代码 995 17.12 本章小结 ............................................. 1000 参考文献 .................................................................. 1001 附录 .......................................................................... 1003 附录 1 ASCII 码表 ............................................... 1003 附录 2 常用 C0、C1 控制字符表 ...................... 1004 附录 3 常用转义序列和控制序列...................... 1005 附录 4 第 1 套键盘扫描码集.............................. 1008