為什麼linux驅動要專門有雜項裝置呢

2021-07-10 11:53:29 字數 727 閱讀 9686

在我看來有兩個主要原因。

第一,節省主裝置號:

使用普通字元裝置,不管該驅動的主裝置號是靜態還是動態分配,都會消耗乙個主裝置號,這太浪費了。而且如果你的這個驅動最終會提交到核心主線版本上的話,需要申請乙個專門的主裝置號,這也麻煩。

如果使用misc驅動的話就好多了。因為核心中已經為misc驅動分配了乙個主裝置號。當系統中擁有多個misc裝置驅動時,那麼它們的主裝置號相同,而用子裝置號來區分它們。

第二,使用簡單:

有時候驅動開發人員需要開發乙個功能較簡單的字元裝置驅動,匯出介面讓使用者空間程式方便地控制硬體,只需要使用misc子系統提供的介面即可快速地建立乙個misc裝置驅動。

當使用普通的字元裝置驅動時,如果開發人員需要匯出操作介面給使用者空間的話,需要自己去註冊字元驅動,並建立字元裝置class以自動在/dev下生成裝置節點,相對麻煩一點。而misc驅動則無需考慮這些,基本上只需要把一些基本資訊通過struct miscdevice交給misc_register()去處理即可。

本質上misc驅動也是乙個字元裝置驅動,可能相對特殊一點而已。在drivers/char/misc.c的misc驅動初始化函式misc_init()中實際上使用了misc_major(主裝置號為10)並呼叫register_chrdev()去註冊了乙個字元裝置驅動。同時也建立了乙個misc_class,使得最後可自動在/dev下自動生成乙個主裝置號為10的字元裝置。總的來講,如果使用misc驅動可以滿足要求的話,那麼這可以為開發人員剩下不少麻煩。

為什麼要學習Linux?

學習linux的乙個指南 在 2012年03月09日 那天寫的 已經有 64298 次閱讀了 感謝 參考或原文 伺服器君一共花費了31.922 ms進行了2次資料庫查詢,努力地為您提供了這個頁面。試試閱讀模式?希望聽取您的建議 為什麼要學習linux?為什麼學linux,每個人都有自己的理由 lin...

為什麼要學NPDP?有什麼價值?

npdp產品經理國際資格認證,new product development professional npdp 由美國產品開發與管理協會 pdma 所發起,是國際的新產品開發專業認證,集理論 方法與實踐為一體的全方位知識體系,為公司組織層級進行規劃 決策 執行提供良好的方法體系支撐該協會成立於19...

為什麼要學習Linux系統?

首先我們要換乙個思路,不妨先談談語言的學習。我已經有了自己的母語,可是還是要學習英語。很多人的英語水平已經很厲害了。那麼讓我們靜下心來思考一下,學習英語對我們產生了那些影響。首先,我無形中深刻的了解了母語之外還有其他的語言 並且對語言有了自己的認識,對所用語言的國家的文化有了乙個大概的了解,相對的對...