Linux系統應用程式和核心模組的區別(轉)

ba發表於2007-08-16
Linux系統應用程式和核心模組的區別(轉)[@more@]  1.應用程式是從頭到尾執行單個任務;模組卻只是預先註冊自己以便服務於將來的某個請求,其中,函式init_module(模組的入口)的任務是為以後呼叫模組函式預先做準備,函式cleanup_module(模組的第二入口)是在模組解除安裝時呼叫。

  2.應用程式可以呼叫它未定義的函式,因為在連線過程能夠解析外部引用從而使用適當的函式庫;模組僅僅被連線到核心,因此它僅能呼叫有核心匯出的函式(如printk),而沒有任何可連線的庫。

  3.應用程式開發過程中的段錯誤是無害的,並且總是可以使用偵錯程式跟蹤到原始碼中的問題所在;核心模組的一個錯誤即使不對整個系統是致命的,也至少會對當前程式造成致命錯誤。

  4.應用程式執行於使用者空間,處理器禁止其對硬體的直接訪問以及對記憶體的未授權訪問;核心模組執行於核心空間,可以進行所有操作。

  5.應用程式一般不必擔心發生其他情況而改變它的執行環境;核心模組程式設計則必須考慮併發問題的處理。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-960572/,如需轉載,請註明出處,否則將追究法律責任。

相關文章