第1章Linux裝置驅動簡介二

2021-08-21 01:29:31 字數 1498 閱讀 5323

1.2 劃分核心

在 unix 系統中, 幾個併發的程序專注於不同的任務. 每個程序請求系統資源,比如計算能力, 記憶體, 網路連線, 或者一些別的資源. 核心是個大塊的可執行檔案, 負責處理所有這樣的請求. 儘管不同核心任務間的區別常常不是能清楚劃分, 核心的角色可以劃分成下列幾個部分:如圖1.1

1、程序管理

核心負責建立和銷毀程序,並處理它們與外部世界的聯絡(輸入和輸出). 不同程序間通訊(通過訊號, 管道等)對整個系統功能來說是基本的, 也由核心處理. 另外, 排程器, 控制程序如何共享 cpu, 是程序管理的一部分. 更通

常地, 核心的程序管理活動實現了多個程序在乙個單個或者幾個 cpu 之上的抽象.

2、記憶體管理

計算機的記憶體是主要的資源, 處理計算機的記憶體所用的策略對系統效能是至關重要的. 核心為所有程序的每乙個都在有限的可用資源上建立了乙個虛擬位址空間.核心的不同部分與記憶體管理子系統通過一套函式呼叫互動, 從簡單的 malloc/free 對到更多更複雜的功能.

3、檔案系統

unix 在很大程度上基於檔案系統(file system)的概念; 幾乎 unix 中的任何東西都可看作乙個檔案. 核心在非結構化的硬體之上建立了乙個結構化的檔案系統, 結果是檔案的抽象非常多地在整個系統中應用.  linux 支援多個檔案系統型別,物理介質上不同的資料組織方式.例如, 磁碟可被格式化成標準 linux 的 ext3 檔案系統, 普遍使用的 fat 檔案系統, 或者其他幾個檔案系統.

4、裝置控制

幾乎每個系統操作最終都對映到乙個物理裝置上. 除了處理器, 記憶體和非常少的別的實體之外, 全部中的任何裝置控制操作都由特定於要定址的裝置相關的**來進行. 這些**稱為裝置驅動. 核心中必須嵌入系統中出現的每個外設的驅動, 從硬碟驅動到鍵盤和磁帶驅動器. 

5、網路

網路必須由作業系統來管理, 因為大部分網路操作不是特定於某乙個程序:進入系統的報文是非同步事件. 報文在某乙個程序接手之前必須被收集, 識別, 分發. 系統負責在程式和網路介面之間遞送資料報文, 它必須根據程式的網路活動來控制程式的執行. 另外, 所有的路由和位址解析問題都在核心中實現.

圖 1.1. 核心的劃分

1.2.1. 可載入模組

linux 的眾多優良特性之一就是可以在執行時擴充套件由核心提供的特性的能力.這意味著可以在系統正在執行時來增加核心的功能( 也可以去除 ).

每塊可以在執行時新增到核心的**, 被稱為乙個模組.linux 核心提供了對許多模組型別的支援, 包括但不限於, 裝置驅動. 每個模組由目標**組成( 沒有連線成乙個完整可執行檔案 ), 可以動態連線到執行中的核心中, 通過 insmod 程式, 以及通過 rmmod 程式去連線.

圖 1.1. 核心的劃分表示了負責特定任務的不同類別的模組, 乙個模組是根據它提供的功能來說它屬於乙個特別類別的.  圖 1.1. 核心的劃分 中模組的安排涵蓋了最重要的類別, 但是遠未完整, 因為在 linux 中越來越多的功能被模組化了.

第1章 裝置驅動概述

本文摘自 偶有較小改動 linux 裝置驅動開發詳解 宋寶華 編著 人民郵電出版社 留作紀念。living park 第1章 裝置驅動概述 1.1 裝置驅動的作用 沒有硬體的軟體是空中樓閣,而沒有軟體的硬體則是一堆廢鐵。計算機系統的軟硬體互相成就了對方。對裝置驅動最通俗的解釋就是 驅動硬體裝置行動 ...

1裝置驅動簡介

核心劃分 程序管理 記憶體管理 檔案系統 裝置控制 網路1.2.1可載入模組 每塊可以在執行時新增到核心的 被稱為乙個模組。insmod動態連線程式,rmmod程式連線 1.3裝置和模組的分類 三種基本裝置型別 字元模組,塊模組,網路模組。1.4安全問題 在官方的核心發布裡,只有乙個有授權的使用者可...

Linux第1章 Linux簡介

spring mybatis tomcat mysql jdk linux是一款類unix作業系統,它的出現離不開gnu自由軟體運動中誕生的開發環境和編譯器,又反過來極大的推動了gnu自由軟體運動,讓崇尚自由軟體精神的先驅們不必繼續侷限在unix系統上進行開發。linux出現後,sendmail,w...