
再读驱动开发
airsflying
这个作者很懒,什么都没留下…
展开
-
简介
网络接口:负责发送和接收数据由于网络接口不是面向流的设备,所以很难映射到文件系统中的节点。所以为它分配一个唯一的名字eth0缓冲区溢出,由程序员忘记检查缓冲区中写了多少数据导致写到了缓冲区边界之外,覆盖了系统无关数据造成破坏整个系统当心为初始化内存导致信息泄漏模块被链接到内核,因原创 2011-07-28 16:05:15 · 544 阅读 · 0 评论 -
地址
内核逻辑地址:与物理地址一般只存在一个偏移量,通常保存在 unsigned long和void *类型的变量中, 由malloc返回的内存就是逻辑地址;映射低端内存(接触的大多数系统,所有的内存都是低端内存),不能用于高端内存(高端内存是超过32位可寻址的范围 内核虚拟地址:原创 2011-09-02 10:07:43 · 369 阅读 · 0 评论 -
可重入函数
可重入代码:任何状态信息都是进程自己所特定的,不使用全局变量来记录状态信息 记录状态信息的方法:保存在驱动程序的局部变量中(每个进程在内核空间都有不同的堆栈页来保存局部变量) 典型内存空间布局 对于一个完整的程序,在内存中分布情况如下图:原创 2011-08-17 14:58:23 · 482 阅读 · 0 评论 -
输入子系统
输入子系统的结构 物理设备 -> input Dirver -> input_core ->input_handler ->上层应用程序 每个输入设备都在/dev/input下生成一个文件,输入设备的驱动需实现文件的相应操作,如read write open 等等 在我们需要为我们设备创建驱动时,我们不需要这么麻烦去实现每个接口,因为这个已经被输入子系统为我们做了,我们只需要注册一个输入设原创 2011-11-09 10:08:42 · 527 阅读 · 0 评论