-
2021-05-15 08:46:23
LINUX内核完全注释中
6.8 floppy.c 程序
122 }
123 printk ("\010\010\010\010\010done \n");
124 ROOT_DEV=0x0101; // 修改 ROOT_DEV使其指向虚拟盘 ramdisk。
125 }
126
6.8 floppy.c 程序
6.8.1 功能描述
本程序是软盘控制器驱动程序。与其它块设备驱动程序一样,该程序也以请求项操作函数
do_fd_request()为主,执行对软盘上数据的读写操作。
考虑到软盘驱动器在不工作时马达通常不转,所以在实际能对驱动器中的软盘进行读写操作之前,
我们需要等待马达启动并达到正常的运行速度。与计算机的运行速度相比,这段时间较长,通常需要 0.5
秒左右的时间。
另外,当对一个磁盘的读写操作完毕,我们也需要让驱动器停止转动,以减少对磁盘表面的摩搽。
但我们也不能在对磁盘操作完后就立刻让它停止转动。因为,可能马上又需要对其进行读写操作。因此,
在一个驱动器没有操作后还是需要让驱动器空转一段时间,以等待可能到来的读写操作,若驱动器在一
个较长时间内都没有操作,则程序让它停止转动。这段维持旋转的时间可设定在大约 3 秒左右。
当一个磁盘的读写操作发生错误,或某些其它情况导致一个驱动器的马达没有被关闭。此时我们也
需要让系统在一定时间之后自动将其关闭。Linus 在程序中把这个延时值设定在 100 秒。
由此可见,在对软盘驱动器进行操作时会用到很多延时(定时)操作。因此在该驱动程序中涉及较
多的定时处理函数。还有几个与定时处理关系比较密切的函数被放在了kernel/sched.c 中(行201-262 )。
这是软盘驱动程序与硬盘驱动程序之间的最大区别,也是软盘驱动程序比硬盘驱动程序复杂的原因。
虽然本程序比较复杂,但对软盘读写操作的工作原理却与其它块设备是一样的。本程序也是使用请
求项和请求项链表结构来处理所有对软盘的读写操作。因此请求项操作函数 do_fd_request()仍然是本程
序中的重要函数之一。在阅读时应该以该函数为主线展开。另外,软盘控制器的使用比较复杂,其中涉
及到很多控制器的执行状态和标志。因此在阅读时,还需要频繁地参考程序后的有关说明以及本程序的
头文件 include/linux/fdreg.h 。该文件定义了所有软盘控制器参数常量,并说明了这些常量的含义。
6.8.2 代码注释
程序 6-6 linux/kernel/blk_drv/floppy.c
1 /*
2 * linux/kernel/floppy.c
3 *
4 * (C) 1991 Linus Torvalds
5 */
6
7 /*
8 * 02.12.91 - Changed to static variables to indicate need for reset
9 * and recalibrate. This makes some things easier (output_byte reset
10 * checking etc), and means less interrupt jumping in case of errors,
11 * so the code is hopefully easier to understand.
12 */
/*
- 212 -
6.8 floppy.c 程序
* 02.12.91 - 修改成静态变量,以适应复位和重新校正操作。这使得某些事情
* 做起来较为方便(output_
更多相关内容 -
Linux 内核完全注释0.11内核(修正版V3.0).pdf.7z
2020-11-06 07:23:12linux 内核 注释 0.11版本 -
Linux内核完全注释(修正版v5.0).zip
2021-12-30 11:23:300.12版源码注释。非常详细。 -
Linux内核完全注释 PDF
2021-05-10 10:18:27本书对Linux早期操作系统内核(v0.11)全部代码文件进行了详细全面的注释和说明,旨在使读者能够在尽量短的时间内对Linux的工作机理获得全面而深刻的理解,为进一步学习和研究Linux系统打下坚实的基础.虽然所选择的版本...本书对Linux早期操作系统内核(v0.11)全部代码文件进行了详细全面的注释和说明,旨在使读者能够在尽量短的时间内对Linux的工作机理获得全面而深刻的理解,为进一步学习和研究Linux系统打下坚实的基础.虽然所选择的版本较低,但该内核已能够正常编译运行,其中已经包括了LINUX工作原理的精髓,通过阅读其源代码能快速地完全理解内核的运作机制.
书中首先以Linux源代码版本的变迁历史为主线,详细介绍了Linux系统的发展历史,着重说明了各个内核版本之间的重要区别和改进方面,给出了选择0.11(0.95)版作为研究的对象的原因.另外介绍了内核源代码的组织结构及相互关系,同时还说明了编译和运行该版本内核的方法.然后本书依据内核源代码的组织结构对所有内核程序和文件进行了注释和详细说明.每章的安排基本上分为具体研究对象的概述,每个文件的功能介绍,代码内注释,代码中难点及相关资料介绍,与当前版本的主要区别等部分.最后一章内容总结性地介绍了继续研究Linux系统的方法和着手点.
Linux内核完全注释修正版V3.0 带目录 PDF 版下载:
具体下载目录在 /2014年资料/3月/18日/Linux内核完全注释 PDF
-
LINUX内核完全注释中.pdf
2021-05-15 08:46:23LINUX内核完全注释中6.8 floppy.c 程序122 }123 printk ("\010\010\010\010\010done \n");124 ROOT_DEV=0x0101; // 修改 ROOT_DEV使其指向虚拟盘 ramdisk。125 }1266.8 floppy.c 程序6...LINUX内核完全注释中
6.8 floppy.c 程序
122 }
123 printk ("\010\010\010\010\010done \n");
124 ROOT_DEV=0x0101; // 修改 ROOT_DEV使其指向虚拟盘 ramdisk。
125 }
126
6.8 floppy.c 程序
6.8.1 功能描述
本程序是软盘控制器驱动程序。与其它块设备驱动程序一样,该程序也以请求项操作函数
do_fd_request()为主,执行对软盘上数据的读写操作。
考虑到软盘驱动器在不工作时马达通常不转,所以在实际能对驱动器中的软盘进行读写操作之前,
我们需要等待马达启动并达到正常的运行速度。与计算机的运行速度相比,这段时间较长,通常需要 0.5
秒左右的时间。
另外,当对一个磁盘的读写操作完毕,我们也需要让驱动器停止转动,以减少对磁盘表面的摩搽。
但我们也不能在对磁盘操作完后就立刻让它停止转动。因为,可能马上又需要对其进行读写操作。因此,
在一个驱动器没有操作后还是需要让驱动器空转一段时间,以等待可能到来的读写操作,若驱动器在一
个较长时间内都没有操作,则程序让它停止转动。这段维持旋转的时间可设定在大约 3 秒左右。
当一个磁盘的读写操作发生错误,或某些其它情况导致一个驱动器的马达没有被关闭。此时我们也
需要让系统在一定时间之后自动将其关闭。Linus 在程序中把这个延时值设定在 100 秒。
由此可见,在对软盘驱动器进行操作时会用到很多延时(定时)操作。因此在该驱动程序中涉及较
多的定时处理函数。还有几个与定时处理关系比较密切的函数被放在了kernel/sched.c 中(行201-262 )。
这是软盘驱动程序与硬盘驱动程序之间的最大区别,也是软盘驱动程序比硬盘驱动程序复杂的原因。
虽然本程序比较复杂,但对软盘读写操作的工作原理却与其它块设备是一样的。本程序也是使用请
求项和请求项链表结构来处理所有对软盘的读写操作。因此请求项操作函数 do_fd_request()仍然是本程
序中的重要函数之一。在阅读时应该以该函数为主线展开。另外,软盘控制器的使用比较复杂,其中涉
及到很多控制器的执行状态和标志。因此在阅读时,还需要频繁地参考程序后的有关说明以及本程序的
头文件 include/linux/fdreg.h 。该文件定义了所有软盘控制器参数常量,并说明了这些常量的含义。
6.8.2 代码注释
程序 6-6 linux/kernel/blk_drv/floppy.c
1 /*
2 * linux/kernel/floppy.c
3 *
4 * (C) 1991 Linus Torvalds
5 */
6
7 /*
8 * 02.12.91 - Changed to static variables to indicate need for reset
9 * and recalibrate. This makes some things easier (output_byte reset
10 * checking etc), and means less interrupt jumping in case of errors,
11 * so the code is hopefully easier to understand.
12 */
/*
- 212 -
6.8 floppy.c 程序
* 02.12.91 - 修改成静态变量,以适应复位和重新校正操作。这使得某些事情
* 做起来较为方便(output_
-
《Linux内核完全剖析基于0.12内核》 (带目录可注释)-pdf
2021-09-12 18:20:51《Linux内核完全剖析基于0.12内核》 -
《Linux 0.11内核完全注释》PDF
2018-08-31 16:45:30《Linux 0.11内核完全注释》 -
Linux内核完全注释:基于0.11内核(V5.0)_0.11内核_linux_linux内核完全注释_Linux内核注释_
2021-10-03 17:24:49Linux内核完全注释:基于0.11内核(V5.0) -
linux内核完全注释CLK-5.0-WithCover.pdf
2019-05-31 20:46:52学习linux内核比较好的入门资源,内核版本虽然低,但是更有利于理解和学习 -
Linux内核0.11完全注释-V3.0.pdf
2021-02-25 15:34:35Linux内核0.11完全注释-V3.0.pdf 是学习linux原始精髓的利器 -
Linux内核完全注释V3.0_linux内核_linux_
2021-10-01 17:46:34Linux内核完全注释V3.0,很详细很不错,希望喜欢 -
Linux内核注释
2021-05-11 12:42:30《Linux内核注释》通过对完整的0.95版本Linux内核源代码进行完全剖析和逐行注释,使得读者能够在较短时间内深刻理解Linux操作系统的基本功能和实现方式,为深入研究Linux操作系统打下坚实基础。作为Linux早期内核...《Linux内核注释》通过对完整的0.95版本Linux内核源代码进行完全剖析和逐行注释,使得读者能够在较短时间内深刻理解Linux操作系统的基本功能和实现方式,为深入研究Linux操作系统打下坚实基础。作为Linux早期内核版本的0.95版本,其内核是目前所使用的较新内核的精简版,代码量比较小,却包括了几乎所有的基本功能原理的内容,通过阅读源代码能够使读者快速地理解内核工作的基本原理。
《Linux内核注释》共分10章,全面系统地介绍了Linux内核发展历史和版本变化,详细说明了Linux运行的硬件基础和Linux内核体系结构,完全剖析和注释了Linux内存管理、中断处理与系统调用、进程控制、块设备驱动程序、字符设备驱动程序、文件系统、引导启动程序、初始化程序,最后总结性地介绍了继续研究Linux系统的方法和着手点。
本书适合Linux爱好者学习内核工作原理使用,也可作为高校计算机专业学生学习操作系统课程的辅助和实验教材,还可供一般技术人员作为开发嵌入式系统的参考书使用。 第1章Linux操作系统原理
1.1Linux操作系统简介
1.1.1Linux內核的构成
1.1.2Linux操作系统的特征
1.2Linux内核概述
1.2.1Linux內核的版本
1.2.2研究Linux内核的意义
1.3Linux运行的硬件基础
1.3.1i386寄存器和系统指令
1.3.2分段机制
1.3.3分页机制
1.4Linux内核体系结构
1.4.1Linux内核体系结构及模式
1.4.2Linux內核源代码目录结构
1.4.3Linux内核的编译
第2章引导启动与初始化程序
2.1引导启动程序(boot)
2.1.1总体功能
2.1.2bootsect.s文件
2.1.3setup.s文件
2.1.4head.s文件
2.2初始化程序(init)
2.2.1概述
2.2.2main.c文件
第3章头文件
3.1include/目录下的文件
3.2a.out.h文件
3.3const.h文件
3.4ctype.h文件
3.5errno.h文件
3.6fcntl.h文件
3.7signal.h文件
3.8stdarg.h文件
3.9stddef.h文件
3.10string.h文件
3.11termios.h文件
3.12time.h文件
3.13unistd.h文件
3.14utime.h文件
3.15include/asm目录下的文件
3.16io.h文件
3.17memory.h文件
3.18segment.h文件
3.19system.h文件
3.20include/1inux/目录下的文件
3.21config.h文件
3.22fdreg.h头文件
3.22.1功能描述
3.22.2代码注释
3.23fs.h文件
3.24hdreg.h文件
3.25head.h文件
3.26keraael.h文件
3.26.1功能描述
3.26.2代码注释
3.27mm.h文件
3.28sched.h文件
3.29sys.h文件
3.30tty.h文件
3.31math-emu.h文件
3.31.1功能描述
3.31.2代码注释
3.32minix-fs.h文件
3.33timer.h文件
3.34include/sys/目录下的文件
3.35param.h文件
3.36ptrace.h文件
3.37resource.h文件
3.38stat.h文件
3.39time.h文件
3.40times.h文件
3.41types.h文件
3.42utsname.h文件
3.43wait.h文件
……
第4章中断处理与系统调用
第5章进程控制
第6章字符设备驱动程序
第7章块设备驱动程序
第8章文件系统
第9章内存管理
第10章Linux内核编程环境
内容简介:
《Linux内核注释》通过对完整的0.95版本Linux内核源代码进行完全剖析和逐行注释,使得读者能够在较短时间内深刻理解Linux操作系统的基本功能和实现方式,为深入研究Linux操作系统打下坚实基础。作为Linux早期内核版本的0.95版本,其内核是目前所使用的较新内核的精简版,代码量比较小,却包括了几乎所有的基本功能原理的内容,通过阅读源代码能够使读者快速地理解内核工作的基本原理。
《Linux内核注释》共分10章,全面系统地介绍了Linux内核发展历史和版本变化,详细说明了Linux运行的硬件基础和Linux内核体系结构,完全剖析和注释了Linux内存管理、中断处理与系统调用、进程控制、块设备驱动程序、字符设备驱动程序、文件系统、引导启动程序、初始化程序,最后总结性地介绍了继续研究Linux系统的方法和着手点。
本书适合Linux爱好者学习内核工作原理使用,也可作为高校计算机专业学生学习操作系统课程的辅助和实验教材,还可供一般技术人员作为开发嵌入式系统的参考书使用。
目录:
第1章Linux操作系统原理
1.1Linux操作系统简介
1.1.1Linux內核的构成
1.1.2Linux操作系统的特征
1.2Linux内核概述
1.2.1Linux內核的版本
1.2.2研究Linux内核的意义
1.3Linux运行的硬件基础
1.3.1i386寄存器和系统指令
1.3.2分段机制
1.3.3分页机制
1.4Linux内核体系结构
1.4.1Linux内核体系结构及模式
1.4.2Linux內核源代码目录结构
1.4.3Linux内核的编译
第2章引导启动与初始化程序
2.1引导启动程序(boot)
2.1.1总体功能
2.1.2bootsect.s文件
2.1.3setup.s文件
2.1.4head.s文件
2.2初始化程序(init)
2.2.1概述
2.2.2main.c文件
第3章头文件
3.1include/目录下的文件
3.2a.out.h文件
3.3const.h文件
3.4ctype.h文件
3.5errno.h文件
3.6fcntl.h文件
3.7signal.h文件
3.8stdarg.h文件
3.9stddef.h文件
3.10string.h文件
3.11termios.h文件
3.12time.h文件
3.13unistd.h文件
3.14utime.h文件
3.15include/asm目录下的文件
3.16io.h文件
3.17memory.h文件
3.18segment.h文件
3.19system.h文件
3.20include/1inux/目录下的文件
3.21config.h文件
3.22fdreg.h头文件
3.22.1功能描述
3.22.2代码注释
3.23fs.h文件
3.24hdreg.h文件
3.25head.h文件
3.26keraael.h文件
3.26.1功能描述
3.26.2代码注释
3.27mm.h文件
3.28sched.h文件
3.29sys.h文件
3.30tty.h文件
3.31math-emu.h文件
3.31.1功能描述
3.31.2代码注释
3.32minix-fs.h文件
3.33timer.h文件
3.34include/sys/目录下的文件
3.35param.h文件
3.36ptrace.h文件
3.37resource.h文件
3.38stat.h文件
3.39time.h文件
3.40times.h文件
3.41types.h文件
3.42utsname.h文件
3.43wait.h文件
……
第4章中断处理与系统调用
第5章进程控制
第6章字符设备驱动程序
第7章块设备驱动程序
第8章文件系统
第9章内存管理
第10章Linux内核编程环境
-
Linux内核完全注释V3.0书签版.pdf
2019-06-12 18:23:16Linux内核完全注释 V3.0对Linux早期操作系统内核(v0.11)全部代码文件进行了详细全面的注释和说明,旨在使读者能够在尽量短的时间内对Linux的工作机理获得全面而深刻的理解,为进一步学习和研究Linux系统打下坚实的... -
《Linux内核完全注释》pdf v3.0
2016-05-04 20:51:15《Linux内核完全注释》pdf v3.0 -
Linux内核0.11完全注释 PDF+WORD版本
2011-06-13 10:12:10Linux内核0.11完全注释 PDF+WORD版本,阅读方便。 -
linux内核完全注释v2.zip
2021-07-13 16:44:39linux内核完全注释 修正版v2.0 赵炯 pdf 800页 +源码 -
Linux内核完全注释
2018-06-30 10:29:15Linux内核完全注释书本的高清pdf文档,很经典 。 -
Linux内核完全注释_0.11版
2018-08-16 06:51:38赵烱的力作《Linux内核完全注释》,深入剖析了Linux内核0.11版的代码,是学习操作系统原理的不二选择。资源同时包括了作者一篇论文《Linux内核源代码漫游》及0.11版Linux内核源码及其中英文注释,能够帮且初学者快速... -
linux内核0.11完全注释_linux_注释_源代码_
2021-10-04 05:25:51Linux内核0.11完全注释,有章级目录,Linux0.11源代码已经打包进去了。 -
Linux内核完全注释(内核版本0.11)及源码.rar
2019-08-05 19:19:18linux 0.11版本的源码和Linux内核完全注释(修正版v1.9.5).pdf -
Linux内核0.11详细注释.pdf
2016-07-20 16:40:00学习linux内核就要从最核心代码开始学习,这样才能学到真本事,这本书非常适合刚开始学习内核编程的 -
Linux内核完全注释5.0版 (Note)
2022-01-10 18:53:04Linux内核完全注释 -
linux内核完全注释
2017-11-01 23:35:31Linux内核完全注释,ISBN:9787111149682,作者:赵炯编著 -
《Linux内核完全注释》内核版本0.11+赵炯+V2.0.1.pdf
2011-04-10 01:48:43网络与通信程序开发 qq群号:28363065 欢迎加入交流学习 TCP/IP, QoS, SNMP,VxWorks, Linux, Windows, SDK, MFC, WinSocket, DDK,WDM,NDIS, TDI,---本群现招管理员若干名有意联系群主.. -
Linux内核0.11完全注释(赵炯).pdf
2011-09-14 14:02:09·选择早期Linux内核进行介绍,排除了目前内核中复杂而庞大的实现细节 ·整个内核代码仅有14000行 ·提供可运行相关内核的完整实验系统 本书对早期的Linux操作系统内核(v0.11)全部源代码文件进行了详细的注释和... -
Linux-0.11内核完全注释.zip
2021-03-08 19:41:51赵炯老师的书,Linux0.11内核完全注释,V3.1版本 -
linux0.11-1+内核设计艺术2版+linux内核完全注释.rar
2021-06-07 10:06:59linux内核完全注释根据linux0.11编写的。搭配内核设计的艺术2版,学习linux内核的神组合。学习内核建议从linux0.11看起,初始版本内容比较简单,但包含的都是内核的精髓。先上手,学到了方法,后面再看最新版本就更... -
Linux+内核完全注释.pdf
2010-04-03 11:26:26Linux内核完全注释.PDF 一本好书 与大家分享