萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 網路驅動程式開發(一):裝置驅動分類、發送接收與中斷機制

一、Linux 裝置驅動程式概述

1.1 驅動程式分類

Linux 核心原始碼中驅動程式佔比極大,結構相對穩定。裝置分三類:

  • 字元裝置:無緩衝存取,如滑鼠、鍵盤、序列埠
  • 區塊裝置:有緩衝、支援隨機存取,如硬碟、軟碟、CD-ROM,檔案系統必須建立在區塊裝置上
  • 網路裝置:專門處理,基於 BSD Socket 機制,定義 sk_buff 資料結構傳遞資料,支援緩衝、流量控制、多協定

1.2 編寫驅動程式的基本概念

1.2.1 發送與接收

網卡核心工作即收發。驅動程式須向系統登記發送函數位置;硬體收到資料後由驅動程式先處理,再交給系統。核心需提供:找到發送函數、讓驅動程式送交收到資料。

1.2.2 中斷

現代電腦架構中斷地位關鍵。核心須提供驅動程式註冊中斷處理程序的能力,Linux 支援中斷共享(多裝置共用一條中斷線)。

1.2.3 時鐘

驅動程式常需定時機制:協定超時處理、無中斷硬體的輪詢。核心提供定時器回呼函數,網路驅動中可用於輪詢存取或超時重傳。

copyright © 萬盛學電腦網 all rights reserved