免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Linux內(nèi)核的構成

簡述

  1. Linux內(nèi)核簡稱kernel是整個操作系統(tǒng)的最底層,它負責整個硬件的驅動,以及提供各種系統(tǒng)所需的核心功能,包括防火墻機制、是否支持LVM或Quota等文件系統(tǒng)等等,如果內(nèi)核不認識某個最新的硬件,那么硬件也就無法被驅動,你也就無法使用該硬件 。

  2. 組成

  3. 一個完整的Linux內(nèi)核一般由5部分組成,它們分別是進程管理、內(nèi)存管理、進程間通信、虛擬文件系統(tǒng)和網(wǎng)絡接口 。

  1. Linux內(nèi)核整體架構.png

  2. Process Scheduler,也稱作進程管理、進程調度。負責管理CPU資源,以便讓各個進程可以以盡量公平的方式訪問CPU。

  3. 進程調度是Linux內(nèi)核中最重要的子系統(tǒng),它主要提供對CPU的訪問控制。因為在計算機中,CPU資源是有限的,而眾多的應用程序都要使用CPU資源,所以需要“進程調度子系統(tǒng)”對CPU進行調度管理。

  4. 進程調度子系統(tǒng)包括4個子模塊(見下圖),它們的功能如下:

  1. 進程調度.gif

  2. 1.1) Scheduling Policy,實現(xiàn)進程調度的策略,它決定哪個(或哪幾個)進程將擁有CPU。

  3. 1.2) Architecture-specific Schedulers,體系結構相關的部分,用于將對不同CPU的控制,抽象為統(tǒng)一的接口。這些控制主要在suspend和resume進程時使用,牽涉到CPU的寄存器訪問、匯編指令操作等。

  4. 1.3) Architecture-independent Scheduler,體系結構無關的部分。它會和“Scheduling Policy模塊”溝通,決定接下來要執(zhí)行哪個進程,然后通過“Architecture-specific Schedulers模塊”resume指定的進程。

  5. 1.4) System Call Interface,系統(tǒng)調用接口。進程調度子系統(tǒng)通過系統(tǒng)調用接口,將需要提供給用戶空間的接口開放出去,同時屏蔽掉不需要用戶空間程序關心的細節(jié)。

  6. Memory Manager,內(nèi)存管理。負責管理Memory(內(nèi)存)資源,以便讓各個進程可以安全地共享機器的內(nèi)存資源。另外,內(nèi)存管理會提供虛擬內(nèi)存的機制,該機制可以讓進程使用多于系統(tǒng)可用Memory的內(nèi)存,暫時不用的內(nèi)存會通過文件系統(tǒng)保存在外部非易失存儲器中,需要使用的時候,再取回到內(nèi)存中。

  7. 內(nèi)存管理主要提供對內(nèi)存資源的訪問控制。Linux系統(tǒng)會在硬件物理內(nèi)存和進程所使用的內(nèi)存(稱作虛擬內(nèi)存)之間建立一種映射關系,這種映射是以進程為單位,因而不同的進程可以使用相同的虛擬內(nèi)存,而這些相同的虛擬內(nèi)存,可以映射到不同的物理內(nèi)存上。

  8. 內(nèi)存管理子系統(tǒng)包括3個子模塊(見下圖),它們的功能如下:

  1. 內(nèi)存管理.gif

  2. 2.1) Architecture Specific Managers,體系結構相關部分。提供用于訪問硬件Memory的虛擬接口。

  3. 2.2) Architecture Independent Manager,體系結構無關部分。提供所有的內(nèi)存管理機制,包括:以進程為單位的memory mapping;虛擬內(nèi)存的Swapping。

  4. 2.3) System Call Interface,系統(tǒng)調用接口。通過該接口,向用戶空間程序應用程序提供內(nèi)存的分配、釋放,文件的map等功能。

  5. VFS(Virtual File System),虛擬文件系統(tǒng)。Linux內(nèi)核將不同功能的外部設備,例如Disk設備(硬盤、磁盤、NAND Flash、Nor Flash等)、輸入輸出設備、顯示設備等等,抽象為可以通過統(tǒng)一的文件操作接口(open、close、read、write等)來訪問。這就是Linux系統(tǒng)“一切皆是文件”的體現(xiàn) 。

  6. 文件系統(tǒng)的實質,就是“存儲和組織數(shù)據(jù)的方法”,文件系統(tǒng)的表現(xiàn)形式,就是“從某個設備中讀取數(shù)據(jù)和向某個設備寫入數(shù)據(jù)”。常見文件系統(tǒng)的類型 :FAT、FAT32、NTFS、EXT2、EXT3,EXT4 。而為了兼容,操作系統(tǒng)或者內(nèi)核,要以相同的表現(xiàn)形式,同時支持多種類型的文件系統(tǒng),這就延伸出了虛擬文件系統(tǒng)(VFS)的概念。VFS的功能就是管理各種各樣的文件系統(tǒng),屏蔽它們的差異,以統(tǒng)一的方式,為用戶程序提供訪問文件的接口。

  7. 我們可以從磁盤、硬盤、NAND Flash等設備中讀取或寫入數(shù)據(jù),因而最初的文件系統(tǒng)都是構建在這些設備之上的。這個概念也可以推廣到其它的硬件設備,例如內(nèi)存、顯示器(LCD)、鍵盤、串口等等。我們對硬件設備的訪問控制,也可以歸納為讀取或者寫入數(shù)據(jù),因而可以用統(tǒng)一的文件操作接口訪問。Linux內(nèi)核就是這樣做的,除了傳統(tǒng)的磁盤文件系統(tǒng)之外,它還抽象出了設備文件系統(tǒng)、內(nèi)存文件系統(tǒng)等等。這些邏輯,都是由VFS子系統(tǒng)實現(xiàn)。

  8. VFS子系統(tǒng)包括6個子模塊(見下圖),它們的功能如下:

  1. 虛擬文件系統(tǒng).gif

  2. 3.1) Device Drivers,設備驅動,用于控制所有的外部設備及控制器。由于存在大量不能相互兼容的硬件設備(特別是嵌入式產(chǎn)品),所以也有非常多的設備驅動。因此,Linux內(nèi)核中將近一半的Source Code都是設備驅動,大多數(shù)的Linux底層工程師(特別是國內(nèi)的企業(yè))都是在編寫或者維護設備驅動,而無暇估計其它內(nèi)容(它們恰恰是Linux內(nèi)核的精髓所在)。

  3. 3.2) Device Independent Interface, 該模塊定義了描述硬件設備的統(tǒng)一方式(統(tǒng)一設備模型),所有的設備驅動都遵守這個定義,可以降低開發(fā)的難度。同時可以用一致的形勢向上提供接口。

  4. 3.3) Logical Systems,每一種文件系統(tǒng),都會對應一個Logical System(邏輯文件系統(tǒng)),它會實現(xiàn)具體的文件系統(tǒng)邏輯。

  5. 3.4) System Independent Interface,該模塊負責以統(tǒng)一的接口(快設備和字符設備)表示硬件設備和邏輯文件系統(tǒng),這樣上層軟件就不再關心具體的硬件形態(tài)了。

  6. 3.5) System Call Interface,系統(tǒng)調用接口,向用戶空間提供訪問文件系統(tǒng)和硬件設備的統(tǒng)一的接口。

  7. Network,網(wǎng)絡子系統(tǒng)。負責管理系統(tǒng)的網(wǎng)絡設備,并實現(xiàn)多種多樣的網(wǎng)絡標準。

  8. 網(wǎng)絡子系統(tǒng)在Linux內(nèi)核中主要負責管理各種網(wǎng)絡設備,并實現(xiàn)各種網(wǎng)絡協(xié)議棧,最終實現(xiàn)通過網(wǎng)絡連接其它系統(tǒng)的功能。在Linux內(nèi)核中,網(wǎng)絡子系統(tǒng)幾乎是自成體系,它包括5個子模塊(見下圖),它們的功能如下:

  1. 網(wǎng)絡系統(tǒng).gif

  2. 4.1) Network Device Drivers,網(wǎng)絡設備的驅動,和VFS子系統(tǒng)中的設備驅動是一樣的。

  3. 4.2) Device Independent Interface,和VFS子系統(tǒng)中的是一樣的。

  4. 4.3) Network Protocols,實現(xiàn)各種網(wǎng)絡傳輸協(xié)議,例如IP, TCP, UDP等等。

  5. 4.4) Protocol Independent Interface,屏蔽不同的硬件設備和網(wǎng)絡協(xié)議,以相同的格式提供接口(socket)。

  6. 4.5) System Call interface,系統(tǒng)調用接口,向用戶空間提供訪問網(wǎng)絡設備的統(tǒng)一的接口。

  7. IPC(Inter-Process Communication),進程間通信。IPC不管理任何的硬件,它主要負責Linux系統(tǒng)中進程之間的通信。

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
探究linux內(nèi)核,超詳細解析子系統(tǒng)
Linux內(nèi)核的概念體系結構
Linux內(nèi)核的整體架構
解鎖你對Linux內(nèi)核的疑惑,讓你成為一個更好的程序員!
鉆進 Linux 內(nèi)核看個究竟
Linux開發(fā)者都應該知道的知識要點~
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服