linux内核与设备驱动,第二章 Linux内核与设备驱动程序
2.1 Linux操作系統
Linux操作系統由系統的啟動、進程調度、虛擬內存管理器、文件系統、設備驅動程序等多個組成
2.2Linux內核
設備驅動程序中使用的函數也用在內核上,并且影響著內核,因此離開內核就無法制作設備驅動程序。
2.2.1 Linux的歷史
省略
2.2.2linux內核的功能
內核是有效管理系統資源的資源管理者
處理器管理???? 通過管理處理器,使得處理器滿足操作系統的處理要求,使其有效分擔和執行各個進程中必要的處理器功能
進程管理??????? 進程是程序執行的最小單位,內核通過進程調度器負責進程的創建、撤銷,并管理進程和外部環境的交互
內存管理??????? 系統的內存是最核心的部分,。內存管理是決定系統性能的重要要素,提供虛擬地址空間的方式,使各個進程在獨立的空間上執行任務。虛擬內存以管理為基礎,結合存儲器可提供大于實際物理內存的內存空間
文件系統管理?? Linux內核利用虛擬文件系統(VFS),支持當前的大部分文件系統類型
設備的控制????? 應用程序必須通過硬件才能與用戶交互,處PCU和內存外,應用程序必須得到硬件的支持才能夠完成各種操作。設備驅動程序負責與硬件相關的各種操作,而設備驅動程序則是內核必須實現的功能之一
網絡管理
2.2.3Linux內核的特點
特點歸納如下:
單一的(Monolithic)內核
非搶占型和搶占型(2.6內核)
虛擬內存系統
支持無MMU? ? 2.6內核支持沒有MMU(存儲器管理單元)的系統
虛擬文件系統(VFS)???????? linux中可以使用ext2甚至日志文件系統jfs的多種文件系統,也可以處理在windows中運行的NTFS文件系統和DOS文件系統
利用模塊擴展內核
內核線程
支持多線程
支持多處理器
強大的網絡功能
GPL許可
2.2.4 內核源代碼結構
省略
2.3設備驅動程序
2.3.1 向內核請求資源處理的方法
應用程序向內核發出資源處理請求的方法大致分為兩大類。第一是系統調用方式,第二是利用文件輸出輸入方式使用設備驅動程序的方法
1.系統調用方式
所謂系統調用方式,指制定系統控制所需的調用規則后,利用軟件中斷服務功能,使內核執行應用程序發出的處理請求
2.文件形態的設備驅動程序
以文件輸入輸出函數控制硬件。向表示硬件的設備文件指定應用程序的輸入輸出,從而調用內核內部鏈接設備文件的設備驅動程序服務程序,處理完請求再把控制流交還給應用程序
2.3.2模塊和設備文件
1.模塊
模塊——在內核被啟動后運行的狀態下即動態加載或清除設備驅動程序
只有模塊方式才能支持連接在PCI、USB、PCMCIA上的設備PNP功能。只有帶MMU的CPU才能支持模塊方式,并且內核的版本要一致。
2.設備文件
普通文件的目的在于保存數據,而設備文件的目的在于提供系統或硬件的信息。此類設備文件上保存的信息包括3種類型,分別為設備類型信息和主設備號和次設備號。
應用程序以open()函數打開設備文件,內核在相應的設備文件上得到主設備號,并尋找相應設備號所處理的設備驅動程序。也有不存在設備文件的設備驅動程序,包括網絡設備驅動程序。
2.3.3? 設備驅動程序的類型
設備驅動程序處理各個硬件的方式與硬件的類型有關。
Linux中使用的設備驅動程序大體上包括字符結構、塊結構和網絡結構:
字符?? 控制長短不一致字符序列的設備驅動程序,應用程序直接呼叫的、沒有緩存的設備驅動程序
塊????? 通過一定大小的緩存處理數據的設備,由內核內部的文件系統進行管理,沒有內部緩存的設備驅動程序
網絡?? 與網絡層連接的設備驅動程序
1.字符設備驅動程序
應用程序中使用open()、close()、read()、write()等文件處理函數,并且以普通文件方式處理設備文件,從而控制硬件。常見的文件結構為流(stream),與字符設備驅動程序連接的設備文件也是流。即利用文件節點指定設備文件的特定處理位置,并且可以讀取設備的處理位置
2.塊設備驅動程序
除了特殊情況(分區),應用程序中不直接使用塊設備驅動程序。塊設備驅動程序是支持文件系統的結構,以文件系統實現與應用策劃給你寫的連接
3.網絡涉筆驅動程序
略
總結
以上是生活随笔為你收集整理的linux内核与设备驱动,第二章 Linux内核与设备驱动程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux内核oops错误码说明,Oop
- 下一篇: linux 其他常用命令