歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> Linux系統應用程序和內核模塊的區別

Linux系統應用程序和內核模塊的區別

日期:2017/2/27 14:11:52   编辑:更多Linux

  1.應用程序是從頭到尾執行單個任務;模塊卻只是預先注冊自己以便服務於將來的某個請求,其中,函數init_module(模塊的入口)的任務是為以後調用模塊函數預先做准備,函數cleanup_module(模塊的第二入口)是在模塊卸載時調用。

  2.應用程序可以調用它未定義的函數,因為在連接過程能夠解析外部引用從而使用適當的函數庫;模塊僅僅被連接到內核,因此它僅能調用有內核導出的函數(如printk),而沒有任何可連接的庫。

  3.應用程序開發過程中的段錯誤是無害的,並且總是可以使用調試器跟蹤到源代碼中的問題所在;內核模塊的一個錯誤即使不對整個系統是致命的,也至少會對當前進程造成致命錯誤。

  4.應用程序運行於用戶空間,處理器禁止其對硬件的直接訪問以及對內存的未授權訪問;內核模塊運行於內核空間,可以進行所有操作。

  5.應用程序一般不必擔心發生其他情況而改變它的運行環境;內核模塊編程則必須考慮並發問題的處理。




Copyright © Linux教程網 All Rights Reserved