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呢?我會在後面的文章中做介紹,盡請期待!)

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