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把驱动抽像成类,个人理解就是把各种繁多复杂的设备做一个整理,整理多了之后形成了对应的设备框架(可以理解为国家为政府的各个部门盖了办公大楼以及相关配套的场地,比如公安部里面看守所和监狱就属于配套设施,对应到相应的控制器也是一样的道理)。

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

猜你喜欢

转载自blog.csdn.net/Best_Ccc/article/details/89642088