Linux设备与驱动学习之----什么是设备

【 声明:版权所有,欢迎转载,转载请注明出处,请勿用于商业用途】      

【 声明:本文属于作者个人理解,如有错误,欢迎大家指正】        

        在学习Linux设备驱动的过程中我们用到也是看到最多的就是设备和驱动了,接下来我会详细介绍Linux设备,驱动的关系。

        首先我们需要搞清楚两个名词,device (设备)和 driver(驱动),由于作者英文不是很好在初学的时候经常把这两个词语搞混淆,希望各位读者老爷们特别是新手们注意区别这两个单词。

        device 在LInux中代表的是设备的意思,何为设备按照作者的理解这里大多指的是硬件。比如手机就是通信设备,电视就是显示设备,键盘鼠标就是输入设备等等,在Linux内核中按照硬件的特性以及功能将这些又细化成很多类,类下面再挂具体型号的设备。这里非常类似于生物中界门纲目科属种的概念,只不过没这划分成这么多层。

        如下图我们以ARM架构的CPU举例:

        在ARM架构中常见的device类有UART,GPIO,IIC,SPI,USB,DMA,Camera控制器......

        这里所说的控制器是用来控制一类设备的集合,一般集成在CPU的内部。

        为了更方便理解我在这举个例子,我们就拿国家政府举例。国家政府分为很多个部门比如,公安部,司法部,财务部,农业部等等,我们再拿公安部继续往下分,公安部又分为:铁道公安局、交通公安局、国内安全保卫局、消防局等等。如果把这里的公安部比作USB控制器,那么公安部下面的铁路公安局就好比是U盘,交通公安局就是USB鼠标......发现规律了没有?控制器就相当于这里的一个国家部门,它是一个BOSS,管理着与之相关的所有具体的设备(下属单位)。在一个CPU中可以同时存在许多个这样的BOSS,BOSS的数量越多CPU的功能就越丰富。

        我们所说的控制器(政府部门)在LInux里其实是一个抽象的类(class),类下面才是具体的设备(当然也有类下面又分好几类的情况,这里不做过多的介绍)。Linux把驱动抽像成类,个人理解就是把各种繁多复杂的设备做一个整理,整理多了之后形成了对应的设备框架(可以理解为国家为政府的各个部门盖了办公大楼以及相关配套的场地,比如公安部里面看守所和监狱就属于配套设施,对应到相应的控制器也是一样的道理)。 

       LInux为我们的政府部门盖好了大楼和配套设施也招好了办公人员,但是这些部门任然不能正常工作,这是为什么呢?因为这些设备缺少驱动(政府部门缺少办公的规章制度以及对应的任务)!这个时候就要让我们的驱动程序也就是Device driver登场了。想了解更多的朋友可以在我的下一篇博文中继续了解。

       ( 在图中我们可以看到这些控制器都和一个叫做Platform Bus的虚拟总线链接着,控制器下面又会有IIC Bus的总线,那什么又是Plantform Bus 和 IIC Bus呢?我会在后面的文章中做介绍,尽请期待!)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章