|  | |
| Linux內核主要功能介紹 | |
| Linux內(nei)核是Linux操作(zuo)系(xi)(xi)統的(de)(de)核心,也是整個Linux功能體現的(de)(de)核心,它(ta)是用C語言編寫(xie)的(de)(de),符(fu)合Posix準(zhun)。Linux早是由(you)芬蘭黑客Linus Torvalds為(wei)嘗試在(zai)英特(te)爾(er)X86架構(gou)上提供(gong)自由(you)免費的(de)(de)類UNIX操作(zuo)系(xi)(xi)統而開發的(de)(de)。該計(ji)劃(hua)開始于1991年,這(zhe)里(li)有(you)一份Linus Torvalds當時在(zai)Usenet新聞組comp.os.minix所登載的(de)(de)帖(tie)子(zi),這(zhe)份著名的(de)(de)帖(tie)子(zi)標志著Linux計(ji)劃(hua)的(de)(de)正(zheng)式開始。在(zai)計(ji)劃(hua)的(de)(de)早期有(you)一些Minix黑客提供(gong)了協(xie)助,而今天全(quan)球無(wu)數程序員正(zheng)在(zai)為(wei)該計(ji)劃(hua)無(wu)償提供(gong)幫助。 現今(jin)Linux是(shi)一個一體化內核(Monolithic Kernel)系(xi)統,設備驅動(dong)程序可(ke)以完全訪問硬(ying)件。Linux內的(de)(de)設備驅動(dong)程序可(ke)以方便地以模(mo)塊化(Modularize)的(de)(de)形式設置,并在系(xi)統運行期間可(ke)直接裝載或卸載。   Linux內核主要功(gong)能(neng)包括進程管(guan)(guan)理、內存管(guan)(guan)理、文件(jian)管(guan)(guan)理、設備管(guan)(guan)理、網絡管(guan)(guan)理等。 1、進(jin)(jin)程(cheng)(cheng)(cheng)管(guan)(guan)理(li):進(jin)(jin)程(cheng)(cheng)(cheng)是在(zai)計算機系(xi)統中資(zi)源分配的(de)(de)小單元(yuan)。內(nei)核負責創建和銷毀(hui)進(jin)(jin)程(cheng)(cheng)(cheng),而且(qie)(qie)由調度程(cheng)(cheng)(cheng)序(xu)采取合適的(de)(de)調度策略,實現進(jin)(jin)程(cheng)(cheng)(cheng)間(jian)的(de)(de)合理(li)且(qie)(qie)實時的(de)(de)處理(li)器資(zi)源的(de)(de)共(gong)享。從而內(nei)核的(de)(de)進(jin)(jin)程(cheng)(cheng)(cheng)管(guan)(guan)理(li)活動實現了多個進(jin)(jin)程(cheng)(cheng)(cheng)在(zai)一個或(huo)多個處理(li)器上的(de)(de)抽象(xiang)。內(nei)核還負責實現不同進(jin)(jin)程(cheng)(cheng)(cheng)間(jian)、進(jin)(jin)程(cheng)(cheng)(cheng)和其他部件(jian)之間(jian)的(de)(de)通信。 2、內(nei)(nei)存(cun)(cun)管(guan)理(li)(li)(li):內(nei)(nei)存(cun)(cun)是計算(suan)機系(xi)統(tong)中主要的(de)(de)(de)資(zi)源。內(nei)(nei)核使得多個(ge)進程(cheng)安(an)全而合理(li)(li)(li)地共享(xiang)內(nei)(nei)存(cun)(cun)資(zi)源,為(wei)每(mei)個(ge)進程(cheng)在有限的(de)(de)(de)物理(li)(li)(li)資(zi)源上建立一個(ge)虛擬地址空間(jian)。內(nei)(nei)存(cun)(cun)管(guan)理(li)(li)(li)部(bu)(bu)(bu)分(fen)代碼可分(fen)為(wei)硬件(jian)(jian)(jian)無關(guan)(guan)部(bu)(bu)(bu)分(fen)和(he)硬件(jian)(jian)(jian)有關(guan)(guan)部(bu)(bu)(bu)分(fen):硬件(jian)(jian)(jian)無關(guan)(guan)部(bu)(bu)(bu)分(fen)實(shi)現(xian)(xian)進程(cheng)和(he)內(nei)(nei)存(cun)(cun)之間(jian)的(de)(de)(de)地址映(ying)射等功(gong)能(neng);硬件(jian)(jian)(jian)有關(guan)(guan)部(bu)(bu)(bu)分(fen)實(shi)現(xian)(xian)不同(tong)體系(xi)結構(gou)上的(de)(de)(de)內(nei)(nei)存(cun)(cun)管(guan)理(li)(li)(li)相關(guan)(guan)功(gong)能(neng)并為(wei)內(nei)(nei)存(cun)(cun)管(guan)理(li)(li)(li)提供(gong)與硬件(jian)(jian)(jian)無關(guan)(guan)的(de)(de)(de)虛擬接口。 3、文件(jian)(jian)(jian)管理:在(zai)Linux系統(tong)中的(de)任何一(yi)(yi)個(ge)概念幾乎都可(ke)以看做一(yi)(yi)個(ge)文件(jian)(jian)(jian)。內核在(zai)非結構(gou)化(hua)的(de)硬(ying)件(jian)(jian)(jian)上建立了一(yi)(yi)個(ge)結構(gou)化(hua)的(de)虛(xu)擬文件(jian)(jian)(jian)系統(tong),隱藏了各種硬(ying)件(jian)(jian)(jian)的(de)具體(ti)細節,從而在(zai)整個(ge)系統(tong)的(de)幾乎所有機制中使用文件(jian)(jian)(jian)的(de)抽象。Linux在(zai)不同(tong)物理介質或虛(xu)擬結構(gou)上支(zhi)持(chi)數十(shi)種文件(jian)(jian)(jian)系統(tong)。例(li)如,Linux支(zhi)持(chi)磁盤的(de)標(biao)準文件(jian)(jian)(jian)系統(tong)ext3和虛(xu)擬的(de)特(te)殊文件(jian)(jian)(jian)系統(tong)。 4、設(she)(she)備管(guan)理(li):Linux系統中幾乎每個(ge)系統操(cao)作(zuo)(zuo)終(zhong)都映射到(dao)一(yi)個(ge)或多個(ge)物(wu)理(li)設(she)(she)備上。 除了處理(li)器、內(nei)存等(deng)少數的(de)硬件資源之外,任(ren)何(he)一(yi)種(zhong)設(she)(she)備控制操(cao)作(zuo)(zuo)都由設(she)(she)備特定的(de)驅(qu)動(dong)代碼(ma)來進行。內(nei)核中必須提(ti)供(gong)系統中可能要操(cao)作(zuo)(zuo)的(de)每一(yi)種(zhong)外設(she)(she)的(de)驅(qu)動(dong)。 5、網(wang)(wang)(wang)(wang)絡管理:內核(he)支(zhi)持各種網(wang)(wang)(wang)(wang)絡標準(zhun)協(xie)(xie)議(yi)和網(wang)(wang)(wang)(wang)絡設(she)(she)備(bei)(bei)。網(wang)(wang)(wang)(wang)絡管理部(bu)分可分為網(wang)(wang)(wang)(wang)絡協(xie)(xie)議(yi)棧和網(wang)(wang)(wang)(wang)絡設(she)(she)備(bei)(bei)驅動程序。網(wang)(wang)(wang)(wang)絡協(xie)(xie)議(yi)棧負(fu)責實現每(mei)種可能(neng)的網(wang)(wang)(wang)(wang)絡傳輸協(xie)(xie)議(yi)(TCP/IP協(xie)(xie)議(yi)等);網(wang)(wang)(wang)(wang)絡設(she)(she)備(bei)(bei)驅動程序負(fu)責與各種網(wang)(wang)(wang)(wang)絡硬件設(she)(she)備(bei)(bei)或虛(xu)擬設(she)(she)備(bei)(bei)進(jin)行(xing)通信。 本文選自華清遠見嵌入式培訓教材《從實踐中學嵌入式Linux應用程序開發》 熱點鏈接:   
         1、Linux內核模塊程序結構 |