LDD读书笔记及X86下的驱动实验
文章平均质量分 77
barsdy
这个作者很懒,什么都没留下…
展开
-
LDD读书实验笔记——构造和运行模块
本章主要是介绍性的东西为主,可写的东西不多,其中做了两个实验——hello world和带参数的模块,算是为驱动学习最简单的两个模块了。 这章的知识体系较散乱,也就胡乱记些了 版本依赖和平台依赖上,并不是很理解,但感觉也不是很重要,记得vermagic.o与这两者息息相关即可。 不过在此节提及一个观点/忠告:尽量把条件编译放到尽量低层的宏和函数中去。 内核原创 2012-12-11 22:09:10 · 696 阅读 · 0 评论 -
关于copy_to_user和copy_from_user的学习小结
花了一天时间,希望能理解这两个接口和内核空间下对用户空间数据的拷贝问题,可惜事与愿违,虽有收获,还是留下了很多问题。 遗留的问题 首先,关于内核空间下是不允许发生页面错误的疑惑: 1.内核的内存空间本身就具有虚拟性的概念,那么当内核的内存区需要换页时,该如何实现的呢?2.这样的规定是基于什么原因设定的?是操作系统设计时安全性,性能考虑,还是CPU体系结构上就做出了这样的设定?或者说假原创 2012-12-26 16:50:46 · 3771 阅读 · 0 评论 -
LDD读书笔记——字符设备驱动程序
编写字符设备的驱动程序一般流程: 定义驱动程序为用户程序提供的能力(机制); 决定模块的核心数据结构,如:描述设备的,描述设备数据在内存中的存放形式的等; 确定主、次设备号; 通过/proc/devices可获得设备的主设备号,依此在/dev下mknod出设备文件; 编写模块的init, exit函数; 编写file_operations结构中的功能函数:open release,原创 2012-12-28 20:22:44 · 565 阅读 · 0 评论 -
LDD读书笔记——调试技术
本章主要分为四个部分:通过日志(打印)调试,通过proc(查询)调试,通过strace(监视)调试以及通过kgdb调试。kgdb简单看了下,没动手,感觉作用不是很大,如果以后有需要再回头看。先按章节来总结。 通过日志调试 p83页上开户/关闭调试信息的宏的技巧不错,加至了实验代码。 这节可以总结的东西很少,不过,还是遗留下了一个问题——klogd无法安装。由于起初想把de原创 2012-12-31 20:36:02 · 708 阅读 · 0 评论 -
LDD读书笔记——并发与竞态
信号量semaphore down_interruptible故名思义是可以被中断的(这也是为什么要检查返回值的原因),而与之对应的是down无法被中断,这个接口是一般不用的。 读写信号量rwsem( read/write semaphore ) 接口命名上与信号量类似。 completion completion用于“在当原创 2013-01-01 22:24:52 · 569 阅读 · 0 评论