关于linux驱动管理笔记
2017-03-20 22:33
197 查看
前言
最近研究linux驱动,感觉有点心得,可是不够系统,但是我做应用的,基本了解原理,就已经足够了,这里主要讲解一些个人感悟,有机会写一些整体笔记,这里我还是记录下主要的看驱动的思路,可以让人更加快速的了解驱动的流程,加深记忆正文
linux的所有东西都是以文件形式存在的,当然我们驱动也是这样出来的,基本文件当然是在文件系统,也就是硬盘中有一个目录项,让后存储所有目录,和文件。但是对于驱动,这种当然是靠注册来的,也就是我们通过一些特定的函数,吧我们文件挂在特定节点,比如、/dev/,/proc/之类的,这里我们暂时不要纠结挂在这个函数的如何实现,这个太难,我们只要知道在父目录中,也就是/dev/或者/proc/这里面试一个数据结构,里面有个队列,这些队列保存了所有的子目录,或者文件,这里我们只要在开机或者特定时候,直接添加到这个对列中,就好了。但是有个问题,我们如何操作这些文件呢?你们会发现,当这是一个文件目录时候,我们需求显示所有的子文件,当是文件时候,我们需求显示内容,可是对于驱动呢?鼠标,网卡等等,我们需要一套特定的处理函数,这里也是我们需要挂入的,这里还算简单,我们最好的方法对于同一种介质,我们只用使用根目录的方法表即可。这里我们不用关注。
那么我们如何编写驱动呢,
这里我也不太懂,这里是用的是注册机制。貌似通过声明来注册,
module_init(你的init方法); module_exit(你的注销方法);
这里的注册方法需要一些特定的函数,吧file_ops方法函数注册进去,并且分出驱动号等等,这个file_ops里面有至少应该有open()和read(),write()方法,这里到底处理什么东西,当然是我们驱动的寄存器,可是我们只用挂入系统一些全局的东西,我们只用在内存中申请一片空间即可,log和binder就是这个道理。
在我们系统读取文件的时候,我们仅仅知道一个目录,可是我们通过目录,可以找到需要的目录项,刚才我们知道我们挂入的是一个目录项这里有操作函数列表,当我们open(path)的时候,首先找到path对应的目录项,然后调用方法列表中的open函数,这里我们有一个file的结构体。这里我们应该知道file_ops中open函数的参数其实就是你找到的结构体,这里记住呦!!
后记
这里很简单,但是道理就是这样。好多具体实现都没有写,有机会我在好好补充!!相关文章推荐
- linux内核演进中设备驱动关于电源管理方式的变更 .
- 关于Android电池管理系统(一)Linux驱动部分
- linux内核演进中设备驱动关于电源管理方式的变更
- 《Linux4.0设备驱动开发详解》笔记--第十九章:Linux电源管理的系统架构和驱动
- 一些关于Python的基础知识 - 千月的python linux 系统管理指南学习笔记(3)
- Linux 学习笔记(1) 程序与资源管理
- 写得蛮好的linux学习笔记六-帐号管理(收藏)
- Linux电源管理研究笔记—acpid工作原理
- Linux电源管理研究笔记—gnome-power-manager的工作原理
- linux编程笔记 关于信号
- 卡卡笔记之Linux Service 服务管理
- 关于Linux下的CVS的安装与配置管理
- Linux基础知识学习笔记(一)--文件系统的权限管理
- Linux操作系统下关于用户和组的配置管理指南
- linux笔记06(进程管理)
- linux蓝牙驱动代码阅读笔记
- linux驱动学习笔记(1)
- Linux电源管理研究笔记—acpid工作原理
- 关于Linux内核开发的管理
- Linux电源管理研究笔记—动态电源管理(DPM)