W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
在 Unix 系統(tǒng)中, 幾個并發(fā)的進程專注于不同的任務(wù). 每個進程請求系統(tǒng)資源, 象計算能力, 內(nèi)存, 網(wǎng)絡(luò)連接, 或者一些別的資源. 內(nèi)核是個大塊的可執(zhí)行文件, 負責處理所有這樣的請求. 盡管不同內(nèi)核任務(wù)間的區(qū)別常常不是能清楚劃分, 內(nèi)核的角色可以劃分(如同圖內(nèi)核的劃分)成下列幾個部分:
進程管理
內(nèi)核負責創(chuàng)建和銷毀進程, 并處理它們與外部世界的聯(lián)系(輸入和輸出). 不同進程間通訊(通過信號, 管道, 或者進程間通訊原語)對整個系統(tǒng)功能來說是基本的, 也由內(nèi)核處理. 另外, 調(diào)度器, 控制進程如何共享 CPU, 是進程管理的一部分. 更通常地, 內(nèi)核的進程管理活動實現(xiàn)了多個進程在一個單個或者幾個 CPU 之上的抽象.
內(nèi)存管理
計算機的內(nèi)存是主要的資源, 處理它所用的策略對系統(tǒng)性能是至關(guān)重要的. 內(nèi)核為所有進程的每一個都在有限的可用資源上建立了一個虛擬地址空間. 內(nèi)核的不同部分與內(nèi)存管理子系統(tǒng)通過一套函數(shù)調(diào)用交互, 從簡單的 malloc/free 對到更多更復(fù)雜的功能.
文件系統(tǒng)
Unix 在很大程度上基于文件系統(tǒng)的概念; 幾乎 Unix 中的任何東西都可看作一個文件. 內(nèi)核在非結(jié)構(gòu)化的硬件之上建立了一個結(jié)構(gòu)化的文件系統(tǒng), 結(jié)果是文件的抽象非常多地在整個系統(tǒng)中應(yīng)用. 另外, Linux 支持多個文件系統(tǒng)類型, 就是說, 物理介質(zhì)上不同的數(shù)據(jù)組織方式. 例如, 磁盤可被格式化成標準 Linux 的 ext3 文件系統(tǒng), 普遍使用的 FAT 文件系統(tǒng), 或者其他幾個文件系統(tǒng).
設(shè)備控制
幾乎每個系統(tǒng)操作最終都映射到一個物理設(shè)備上. 除了處理器, 內(nèi)存和非常少的別的實體之外, 全部中的任何設(shè)備控制操作都由特定于要尋址的設(shè)備相關(guān)的代碼來進行. 這些代碼稱為設(shè)備驅(qū)動. 內(nèi)核中必須嵌入系統(tǒng)中出現(xiàn)的每個外設(shè)的驅(qū)動, 從硬盤驅(qū)動到鍵盤和磁帶驅(qū)動器. 內(nèi)核功能的這個方面是本書中的我們主要感興趣的地方.
網(wǎng)絡(luò)
網(wǎng)絡(luò)必須由操作系統(tǒng)來管理, 因為大部分網(wǎng)絡(luò)操作不是特定于某一個進程: 進入系統(tǒng)的報文是異步事件. 報文在某一個進程接手之前必須被收集, 識別, 分發(fā). 系統(tǒng)負責在程序和網(wǎng)絡(luò)接口之間遞送數(shù)據(jù)報文, 它必須根據(jù)程序的網(wǎng)絡(luò)活動來控制程序的執(zhí)行. 另外, 所有的路由和地址解析問題都在內(nèi)核中實現(xiàn).
Linux 的眾多優(yōu)良特性之一就是可以在運行時擴展由內(nèi)核提供的特性的能力. 這意味著你可以在系統(tǒng)正在運行著的時候增加內(nèi)核的功能( 也可以去除 ).
每塊可以在運行時添加到內(nèi)核的代碼, 被稱為一個模塊. Linux 內(nèi)核提供了對許多模塊類型的支持, 包括但不限于, 設(shè)備驅(qū)動. 每個模塊由目標代碼組成( 沒有連接成一個完整可執(zhí)行文件 ), 可以動態(tài)連接到運行中的內(nèi)核中, 通過 insmod 程序, 以及通過 rmmod 程序去連接.
圖 內(nèi)核的劃分 表示了負責特定任務(wù)的不同類別的模塊, 一個模塊是根據(jù)它提供的功能來說它屬于一個特別類別的. 圖 內(nèi)核的劃分 中模塊的安排涵蓋了最重要的類別, 但是遠未完整, 因為在 Linux 中越來越多的功能被模塊化了.
圖?1.1.?內(nèi)核的劃分
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: