linux中设备和驱动到底有什么区别,有什么联系啊?学习2.6的内核,搞得好晕呢!
发布网友
发布时间:2022-04-28 12:15
我来回答
共4个回答
热心网友
时间:2023-10-09 00:46
设备和驱动,有啥区别,一个硬件一个软件。linux驱动现在到2.6版已经改进很多了,现在的驱动架构早已框架化,硬件生产商提供一套sheet表,里面详细注明了该硬件的各项参数,重点是各个寄存器的赋值方式,中断号,某些特殊管脚的地址等,参照这个sheet表,照linux驱动设计流程写驱动,一般是cdev(其他的没写过不太懂,这就不提了),重点是注册中断,对管脚的轮询,读写寄存器等。
这样硬件的状态通过硬中断或轮询管脚状态获得,上报给工作队列,唤醒进程,在对寄存器读写操作,这样硬件和软件就联系起来了。
lz重点是要学驱动还是kerenl?学kernel的话2.6版本太高了(若只是学习代码修改修改除外),很多东西隐藏太深不易理解啊!追问重点想学习驱动,不知道什么水平才能作为linux驱动工程师啊?
热心网友
时间:2023-10-09 00:47
2.6.x版本的内核,核心部分变动不大。
每个小版本之间,都是在不停的添加新驱动、解一些小bug、对现有系统进行完善。
你如果让我在这里说每个版本之间的区别的话,估计要写好几页了。建议你到官网(www.kernel.org/目前已经可以访问了)上去看下每个版本的ChangeLog。这个东西,没有任何人比它说的更详细了。如果你对某个修改比较感兴趣,还可以下载对应的patch包,看看那些Hacker究竟做了哪些修改。
当然,最方便的方法,还是使用git把Kerne的代码下载下来,然后用git log命令可以看到每次修改的历史信息的。非常方便和详细。
不明白的请追问。追问谢谢您的回复,感觉很受用,不过那个设备和驱动是什么关系啊?比如那个总线-设备-驱动模型,设备和驱动有何不同啊?我所理解的设备是外围的硬件,驱动是驱动硬件的软件,为什么设备还有结构体描述它呢?
热心网友
时间:2023-10-09 00:47
设备建立在驱动之上;例如串口,它是一个设备,我们可以用读写文件的方式去访问它,而驱动则是直接跟串口的硬件层打交道的,它提供相关的接口函数给设备
热心网友
时间:2023-10-09 00:48
LINUX中外部硬件也是用文件形式来表示的就是etc目录下的,叫做设备,驱动还是驱动程序
热心网友
时间:2023-10-09 00:46
设备和驱动,有啥区别,一个硬件一个软件。linux驱动现在到2.6版已经改进很多了,现在的驱动架构早已框架化,硬件生产商提供一套sheet表,里面详细注明了该硬件的各项参数,重点是各个寄存器的赋值方式,中断号,某些特殊管脚的地址等,参照这个sheet表,照linux驱动设计流程写驱动,一般是cdev(其他的没写过不太懂,这就不提了),重点是注册中断,对管脚的轮询,读写寄存器等。
这样硬件的状态通过硬中断或轮询管脚状态获得,上报给工作队列,唤醒进程,在对寄存器读写操作,这样硬件和软件就联系起来了。
lz重点是要学驱动还是kerenl?学kernel的话2.6版本太高了(若只是学习代码修改修改除外),很多东西隐藏太深不易理解啊!追问重点想学习驱动,不知道什么水平才能作为linux驱动工程师啊?
热心网友
时间:2023-10-09 00:47
2.6.x版本的内核,核心部分变动不大。
每个小版本之间,都是在不停的添加新驱动、解一些小bug、对现有系统进行完善。
你如果让我在这里说每个版本之间的区别的话,估计要写好几页了。建议你到官网(www.kernel.org/目前已经可以访问了)上去看下每个版本的ChangeLog。这个东西,没有任何人比它说的更详细了。如果你对某个修改比较感兴趣,还可以下载对应的patch包,看看那些Hacker究竟做了哪些修改。
当然,最方便的方法,还是使用git把Kerne的代码下载下来,然后用git log命令可以看到每次修改的历史信息的。非常方便和详细。
不明白的请追问。追问谢谢您的回复,感觉很受用,不过那个设备和驱动是什么关系啊?比如那个总线-设备-驱动模型,设备和驱动有何不同啊?我所理解的设备是外围的硬件,驱动是驱动硬件的软件,为什么设备还有结构体描述它呢?
热心网友
时间:2023-10-09 00:47
设备建立在驱动之上;例如串口,它是一个设备,我们可以用读写文件的方式去访问它,而驱动则是直接跟串口的硬件层打交道的,它提供相关的接口函数给设备
热心网友
时间:2023-10-09 00:48
LINUX中外部硬件也是用文件形式来表示的就是etc目录下的,叫做设备,驱动还是驱动程序