更新時(shí)間:2020-12-16 17:30:05 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1699次
在Linux的術(shù)語(yǔ)中被稱為“內(nèi)核”,也可以稱為“核心”的是控制計(jì)算機(jī)硬件進(jìn)行各種工作的操作系統(tǒng)。Linux內(nèi)核實(shí)現(xiàn)了很多重要的體系結(jié)構(gòu)屬性,這離不開(kāi)Linux內(nèi)核的各個(gè)組成部分的分工協(xié)作,本文我們就來(lái)一一介紹Linux內(nèi)核組成部分。
Linux內(nèi)核組成部分主要分為以下7個(gè)部分:存儲(chǔ)管理、進(jìn)程管理、定時(shí)器、進(jìn)程間通信、虛擬文件系統(tǒng),網(wǎng)絡(luò)接口以及設(shè)備驅(qū)動(dòng)程序等。
1、內(nèi)存管理
內(nèi)存管理主要完成的是如何合理有效地管理整個(gè)系統(tǒng)的物理內(nèi)存,同時(shí)快速響應(yīng)內(nèi)核各個(gè)子系統(tǒng)對(duì)內(nèi)存分配的請(qǐng)求。Linux內(nèi)存管理支持虛擬內(nèi)存,而多余出的這部分內(nèi)存就是通過(guò)磁盤(pán)申請(qǐng)得到的,平時(shí)系統(tǒng)只把當(dāng)前運(yùn)行的程序塊保留在內(nèi)存中,其他程序塊則保留在磁盤(pán)中。在內(nèi)存緊缺時(shí),內(nèi)存管理負(fù)責(zé)在磁盤(pán)和內(nèi)存間交換程序塊。
2、進(jìn)程管理
進(jìn)程管理主要控制系統(tǒng)進(jìn)程對(duì)CPU的訪問(wèn)。當(dāng)需要某個(gè)進(jìn)程運(yùn)行時(shí),由進(jìn)程調(diào)度器根據(jù)基于優(yōu)先級(jí)的調(diào)度算法啟動(dòng)新的進(jìn)程。:Linux支持多任務(wù)運(yùn)行,那么如何在一個(gè)單CPU上支持多任務(wù)呢?這個(gè)工作就是由進(jìn)程調(diào)度管理來(lái)實(shí)現(xiàn)的。在系統(tǒng)運(yùn)行時(shí),每個(gè)進(jìn)程都會(huì)分得一定的時(shí)間片,然后進(jìn)程調(diào)度器根據(jù)時(shí)間片的不同,選擇每個(gè)進(jìn)程依次運(yùn)行,例如當(dāng)某個(gè)進(jìn)程的時(shí)間片用完后,調(diào)度器會(huì)選擇一個(gè)新的進(jìn)程繼續(xù)運(yùn)行。由于切換的時(shí)間和頻率都非常的快,由此用戶感覺(jué)是多個(gè)程序在同時(shí)運(yùn)行,而實(shí)際上,CPU在同一時(shí)間內(nèi)只有一個(gè)進(jìn)程在運(yùn)行,這一切都是進(jìn)程調(diào)度管理的結(jié)果。
3、定時(shí)器
內(nèi)核必須能夠測(cè)量時(shí)間以及不同時(shí)間點(diǎn)的時(shí)差,進(jìn)程調(diào)度就會(huì)用到該功能。 jiffies是一個(gè)合適的時(shí)間坐標(biāo)。名為jiffies_64和jiffies(分別是64位和32位)的全局變量,會(huì)按恒定的時(shí)間間隔遞增。每種計(jì)算機(jī)底層體系結(jié)構(gòu)都提供了一些執(zhí)行周期性操作的手段,通常的形式是定時(shí)器中斷計(jì)時(shí)的周期是可以動(dòng)態(tài)改變的。在沒(méi)有或無(wú)需頻繁的周期性操作的情況下,周期性地產(chǎn)生定時(shí)器中斷是沒(méi)有意義的,這會(huì)阻止處理器降低耗電進(jìn)入睡眠狀態(tài)。動(dòng)態(tài)改變計(jì)時(shí)周期對(duì)于供電受限的系統(tǒng)是很有用的,例如筆記本電腦和嵌入式系統(tǒng)
4、進(jìn)程間通信
進(jìn)程間通信主要用于控制不同進(jìn)程之間在用戶空間的同步、數(shù)據(jù)共享和交換。由于不用的用戶進(jìn)程擁有不同的進(jìn)程空間,因此進(jìn)程間的通信要借助于內(nèi)核的中轉(zhuǎn)來(lái)實(shí)現(xiàn)。一般情況下,當(dāng)一個(gè)進(jìn)程等待硬件操作完成時(shí),會(huì)被掛起。當(dāng)硬件操作完成,進(jìn)程被恢復(fù)執(zhí)行,而協(xié)調(diào)這個(gè)過(guò)程的就是進(jìn)程間的通信機(jī)制。
5、虛擬文件系統(tǒng)
Linux內(nèi)核中的虛擬文件系統(tǒng)用一個(gè)通用的文件模型表示了各種不同的文件系統(tǒng),這個(gè)文件模型屏蔽了很多具體文件系統(tǒng)的差異,使Linux內(nèi)核支持很多不同的文件系統(tǒng),這個(gè)文件系統(tǒng)可以分為邏輯文件系統(tǒng)和設(shè)備驅(qū)動(dòng)程序:邏輯文件系統(tǒng)指Linux所支持的文件系統(tǒng),例如ext2、ext3和fat等;設(shè)備驅(qū)動(dòng)程序指為每一種硬件控制器所編寫(xiě)的設(shè)備驅(qū)動(dòng)程序模塊。
6、網(wǎng)絡(luò)接口
網(wǎng)絡(luò)接口提供了對(duì)各種網(wǎng)絡(luò)標(biāo)準(zhǔn)的實(shí)現(xiàn)和各種網(wǎng)絡(luò)硬件的支持。網(wǎng)絡(luò)接口一般分為網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)驅(qū)動(dòng)程序。網(wǎng)絡(luò)協(xié)議部分負(fù)責(zé)實(shí)現(xiàn)每一種可能的網(wǎng)絡(luò)傳輸協(xié)議。網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序則主要負(fù)責(zé)與硬件設(shè)備進(jìn)行通信,每一種可能的網(wǎng)絡(luò)硬件設(shè)備都有相應(yīng)的設(shè)備驅(qū)動(dòng)程序。
7、設(shè)備驅(qū)動(dòng)程序
Device Drivers,設(shè)備驅(qū)動(dòng),用于控制所有的外部設(shè)備及控制器。由于存在大量不能相互兼容的硬件設(shè)備(特別是嵌入式產(chǎn)品),所以也有非常多的設(shè)備驅(qū)動(dòng)。因此,Linux內(nèi)核中將近一半的Source Code都是設(shè)備驅(qū)動(dòng),大多數(shù)的Linux底層工程師(特別是國(guó)內(nèi)的企業(yè))都是在編寫(xiě)或者維護(hù)設(shè)備驅(qū)動(dòng),而無(wú)暇估計(jì)其它內(nèi)容(它們恰恰是Linux內(nèi)核的精髓所在)。
同時(shí),Linux 還是一個(gè)動(dòng)態(tài)內(nèi)核,支持動(dòng)態(tài)添加或刪除軟件組件,被稱為動(dòng)態(tài)可加載內(nèi)核模塊。Linux內(nèi)核7個(gè)組成部分缺一不可,相輔相成,共同構(gòu)建出了Linux內(nèi)核這一功能強(qiáng)大的體系結(jié)構(gòu)。本站的Linux教程中,對(duì)Linux內(nèi)核的各種工作機(jī)制都有詳細(xì)的講解,花費(fèi)少量時(shí)間就能徹底掌握。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743