实例介绍
【实例简介】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
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论