服務(wù)熱線
0755-33563420
Linux系統(tǒng)的學(xué)習(xí)小結(jié)
2019-04-19 16:03:48 來(lái)源:網(wǎng)站建設(shè)微信APP開發(fā)
新聞?wù)?/span>:Linux采用模塊化設(shè)計(jì),將接口與其實(shí)現(xiàn)分離開來(lái),保證一個(gè)模塊可以在不影響其他模塊的情況下進(jìn)行修改,這其實(shí)就是單內(nèi)核的內(nèi)核結(jié)構(gòu)所決定的特性。Linux還支持動(dòng)態(tài)裝載內(nèi)核模塊,允許根據(jù)特定設(shè)備的需要或者用戶的指令動(dòng)態(tài)地加載或卸載部分內(nèi)核代碼。
一、Linux內(nèi)核的結(jié)構(gòu)與組成
Linux是一種自由軟件,也是開源軟件,它是一款類Unix系統(tǒng)。
Linux采用模塊化設(shè)計(jì),將接口與其實(shí)現(xiàn)分離開來(lái),保證一個(gè)模塊可以在不影響其他模塊的情況下進(jìn)行修改,這其實(shí)就是單內(nèi)核的內(nèi)核結(jié)構(gòu)所決定的特性。Linux還支持動(dòng)態(tài)裝載內(nèi)核模塊,允許根據(jù)特定設(shè)備的需要或者用戶的指令動(dòng)態(tài)地加載或卸載部分內(nèi)核代碼。
Linux還支持內(nèi)核線程,為了讓內(nèi)核能并行執(zhí)行多幾個(gè)流,防止在處理異步事件時(shí)可能的阻塞,Linux使用內(nèi)核線程將內(nèi)核分成幾個(gè)功能模塊。內(nèi)核線程的調(diào)度由內(nèi)核負(fù)責(zé),一個(gè)內(nèi)核線程處于阻塞狀態(tài)時(shí)不影響其他的內(nèi)核線程。
下圖顯示了Linux操作系統(tǒng)的基本組織結(jié)構(gòu)。上層運(yùn)行在用戶空間,下層運(yùn)行在內(nèi)核空間。
Linux系統(tǒng)中,Linux內(nèi)核運(yùn)行在單獨(dú)的內(nèi)核地址空間,系統(tǒng)調(diào)用也在內(nèi)核空間實(shí)現(xiàn);每個(gè)用戶進(jìn)程則使用自己的虛擬地址空間。GLIBC是可移植的標(biāo)準(zhǔn)C庫(kù)函數(shù)實(shí)現(xiàn),提供標(biāo)準(zhǔn)I/O和標(biāo)準(zhǔn)流的一系列接口。應(yīng)用程序通過(guò)GLIBC調(diào)用通用函數(shù)和內(nèi)核的內(nèi)部功能。當(dāng)應(yīng)用程序進(jìn)行系統(tǒng)調(diào)用時(shí),GLIBC提供掛鉤函數(shù)通過(guò)一系列操作在用戶空間和內(nèi)核空間之間進(jìn)行轉(zhuǎn)化。
Linux的內(nèi)核空間大致可以劃分為如下三個(gè)層次:
最上層是系統(tǒng)調(diào)用接口,是內(nèi)核與應(yīng)用程序進(jìn)行交互的唯一接口,應(yīng)用程序/GLIBC通過(guò)系統(tǒng)調(diào)用訪問內(nèi)核中的特定函數(shù),以實(shí)現(xiàn)特定的服務(wù)。
最下層是BSP,這部分代碼用于支持特定體系結(jié)構(gòu)的處理器和特定的硬件平臺(tái),例如引導(dǎo)加載程序,以及與DMA、MMU設(shè)置、中斷處理相關(guān)的代碼等。
中間層是內(nèi)核的核心部分,是確保Linux所支持的所有處理器體系結(jié)構(gòu)通用的代碼。它的主要功能是管理系統(tǒng)資源、確保系統(tǒng)安全和隔離保護(hù)各個(gè)用戶等。Linux內(nèi)核內(nèi)部包含了若干相互關(guān)聯(lián)的組成部件,主要有:
(1)初始化部件;(2)進(jìn)程調(diào)度器;(3)內(nèi)存管理器;(4)虛擬文件系統(tǒng);(5)網(wǎng)絡(luò)接口;(6)進(jìn)程間通信;(7)可加載模塊;(8)設(shè)備驅(qū)動(dòng)程序。
上圖顯示了Linux內(nèi)核中各個(gè)組件的關(guān)系。處于中心位置的是進(jìn)程調(diào)度,所有其它的子系統(tǒng)都依賴于該組件控制進(jìn)程的執(zhí)行。舉例而言,當(dāng)某進(jìn)程通過(guò)網(wǎng)絡(luò)接口發(fā)送信息時(shí),網(wǎng)絡(luò)接口組件會(huì)將該進(jìn)程掛起,直到硬件成功地完成消息的發(fā)送后,網(wǎng)絡(luò)接口向該進(jìn)程返回代表操作成功或失敗的代碼并喚醒該進(jìn)程。
二、Linux的實(shí)時(shí)化技術(shù)
作為自由和開源的操作系統(tǒng)軟件,Linux以其代碼開放性、強(qiáng)大的網(wǎng)絡(luò)功能和接近于零的成本成為中低端服務(wù)器和臺(tái)式工作站的理想操作環(huán)境,被眾多廠商和用戶所支持。
嵌入式Linux是對(duì)通用Linux操作系統(tǒng)進(jìn)行裁剪修改并使之適應(yīng)嵌入式環(huán)境的操作系統(tǒng)。它兼收并蓄了互聯(lián)網(wǎng)上豐富的Linux開源資源,又具有嵌入式操作系統(tǒng)的特性。嵌入式Linux的主要改進(jìn)集中在實(shí)時(shí)性增強(qiáng)、內(nèi)核精簡(jiǎn)、支持多種體系結(jié)構(gòu)等方面。Linux的實(shí)時(shí)化技術(shù)主要體現(xiàn)在三個(gè)方面,分別是:
(1)內(nèi)核補(bǔ)丁方式,如MontaVistaLinux;(2)雙內(nèi)核方式,如RTLinux;(3)超微內(nèi)核方式,如ADEOS。
【責(zé)任編輯:藝之都網(wǎng)站微信APP開發(fā)公司】 (Top) 返回頁(yè)面頂端
最新更新