往大了說,幾乎所有互聯網都是運行在Linux服務器上的;往小了說,嵌入式系統很大一部分也都是Linux內核的。可以說,Linux內核無處不在,Linux內核是一個普遍復雜的開源項目之一,Linux內核之大,代碼量之多,在我感覺就像是一個原始森林,要想精通實在是不容易,但是,不求精通,但求理解內核的工作原理,工作機制,了解一下Linux內核架構也是好的。
總結來說內核的功能有以下四個:
負責響應中斷的中斷服務程序
負責管理多進程從而分享處理器時間的調度程序
負責管理進程地址空間的內存管理程序
網絡 進程間通信等系統服務程序
說到操作系統的內核,可以簡略分為單內核和微內核:
單內核:運行于獨立的地址空間,均運行于內核態。內核間通信微不足道。可直接調用函數
微內核:功能被劃分為多個獨立的過程,每個過程叫做一個服務器,一般都運行在用戶空間,各自運行在獨立的地址空間,進程間通信花銷比較大
Linux內核就是屬于單內核,獨立的地址空間,且是模塊化設計,搶占式內核,支持內核線程及動態裝載內核模塊。
內核開發特點:
內核開發不能訪問C庫也不能使用C頭文件
必須使用GNU C
內核編程不像用戶空間那樣有內存保護機制
難以執行浮點操作
內核給每個進程只有很小的一個定長的堆棧
由于內核支持異步中斷,搶占和SMP,因此必須時刻注意同步和并發
想要了解更多的嵌入式應用技術那就加入我們吧!