linux設備驅動一(設備驅動簡介)

用戶的活動通過一套標準化的調用來進行,這些調用與特別的驅動是獨立的;
設備驅動的角色就是將這些調用映射到作用於實際硬件的和設備相關的操作上

機制與策略

機制:提供什麼功能,策略:如何使用這些功能。我的理解:機制應該是提供的最小的基礎功能集合,策略是在機制之上的組合和擴展。
編寫內核代碼來存取硬件,但是不能強加特別的策略給用戶。驅動只保證硬件可用,把如何使用硬件交給應用程序。
驅動是存在於應用程序和實際設備間的軟件層。
對策略透明的驅動一些典型的特徵:

  • 支持同步和異步操作
  • 可以多次打開
  • 利用硬件全部能力
  • 沒有軟件層來“簡化事情”或者提供策略相關操作

內核功能劃分

  • 進程管理,創建、銷燬、與外部的連接(進程輸入輸出)、進程間通信、共享CPU(調度)
  • 內存管理,虛擬地址空間等等
  • 文件系統,
  • 設備管理,驅動程序
  • 網絡功能,系統負責在應用程序和網絡接口之間傳遞數據包

設備分類

  • 字符設備,大多數字符設備是一個只能順序訪問的數據通道
  • 塊設備,每次只能傳送一個或多個完整的塊
  • 網絡設備

安全問題

只有有授權的用戶纔可以加載模塊
開發者應該避免把安全策略編入驅動代碼中
一些安全觀念:

  • 從用戶進程接收到的數據應該持極大的懷疑態度
  • 小心對待未初始化的內存,從內核分配的內存應該清零活在使用之前初始化,否則可能發生信息泄露
  • 如果設備解析發送給他的數據,確保用戶不能發送任何危及系統的東西
  • 考慮一下設備操作的後果,操作應該授權特定的用戶

版本編號

許可證條款

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