Linux设备驱动程序概念
生活随笔
收集整理的這篇文章主要介紹了
Linux设备驱动程序概念
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
所謂設(shè)備驅(qū)動(dòng)程序就是控制與管理硬件設(shè)備收發(fā)的軟件,它是應(yīng)用程序與硬件設(shè)備溝通的橋梁。從本質(zhì)上講設(shè)備驅(qū)動(dòng)程序主要負(fù)責(zé)硬件設(shè)備的數(shù)據(jù)讀寫、參數(shù)配置與中斷配置。
設(shè)備驅(qū)動(dòng)程序時(shí)操作系統(tǒng)的一部分,通常運(yùn)行在內(nèi)核層。應(yīng)用層通過系統(tǒng)調(diào)用進(jìn)入內(nèi)核層,內(nèi)核層根據(jù)系統(tǒng)調(diào)用號(hào)來調(diào)用驅(qū)動(dòng)程序?qū)?yīng)的接口函數(shù)。圖1-1說明了Linux驅(qū)動(dòng)程序的運(yùn)行原理。Linux中的大部分驅(qū)動(dòng)程序,是以內(nèi)核模塊的形式編寫的。內(nèi)核模塊是Linux內(nèi)核向外部提供的一個(gè)接口,其全稱為動(dòng)態(tài)可加載內(nèi)核模塊(Loadable Kernel Module,LKM)。Linux內(nèi)核本身是一個(gè)單內(nèi)核(monolithic kernel),具有效率高的優(yōu)點(diǎn),也具有可擴(kuò)展性和可維護(hù)性差的缺陷。模塊機(jī)制就是為了彌補(bǔ)這一缺陷而設(shè)計(jì)的。內(nèi)核模塊可以被單獨(dú)編譯,它在運(yùn)行時(shí)被鏈接到內(nèi)核,作為內(nèi)核的一部分在內(nèi)核空間運(yùn)行。要讓內(nèi)核支持可加載模塊,需要配置內(nèi)核的【Enable loadable module support】選項(xiàng),如圖1-2所示。
| ? |
| 圖1-2? 在內(nèi)核中增加可加載模塊支持 |
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖
總結(jié)
以上是生活随笔為你收集整理的Linux设备驱动程序概念的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux2.6内核驱动与2.4的区别
- 下一篇: Linux块设备驱动程序原理