1. 程式人生 > >《裝置驅動程式》--Jonathan corbet,Alessandro rubini & Greg kroah-hartman

《裝置驅動程式》--Jonathan corbet,Alessandro rubini & Greg kroah-hartman

第二章 構造和執行模組

2.1核心模組與應用程式的對比

  • 1、應用程式可以是C的庫函式,而驅動程式只能使用linux核心原始碼中的函式,而不能使用C的庫函式。
  • 2、應用程式是有main函式的;而驅動程式沒有main函式
  • 3、驅動程式有自己的入口和出口;而應用程式只有入口(main)
    • 入口:#isnmod demo.ko —>module_init()---->led_init()---->建立裝置驅動模型,並將驅動加入核心
    • 出口:#rmmod demo —>module_exit()---->led_exit()---->釋放裝置驅動模型,並驅動從核心中刪除
  • 4、驅動設計的程式要嚴謹,如果驅動有錯,就會造成出錯,嚴重情況下會造成核心崩潰或宕機
  • 5、驅動程式設計要注意程式碼的可移植性。
    將模組連結到核心

2.2使用者空間和核心空間

  • 1、應用程式執行在使用者空間,模組執行在核心空間
    • 作業系統的作用是為用用程式提供一個對計算機硬體的一致檢視

驅動程式框架