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