Linux下的sysfs與udev的關係是什麼?

2022-03-22 05:05:03 字數 1121 閱讀 8912

sysfs

sysfs 把連線在系統上的裝置和匯流排組織成為乙個分級的檔案,它們可以被從使用者

的空間訪問到。

簡單介紹sysfs檔案系統,您可能想知道 sysfs 是怎麼認出系統中存在的裝置以及應

該使用什麼裝置號。對於已經編入核心的驅動程式,當被核心檢測到的時候,會直接

在 sysfs 中註冊其物件;對於編譯成模組的驅動程式,當模組載入的時候才會這樣做

。一旦掛載了 sysfs 檔案系統(掛載到 /sys),內建的驅動程式在 sysfs 註冊的資料就可以被使用者空間的程序使用,並提供給 udev 以建立裝置節點。

1. sysfs的掛載點是/sys目錄, sysfs是乙個虛擬的檔案系統(還有其它的虛擬檔案

系統,例如usbfs和procfs),sysfs匯出了核心的資料結構。

2. /sys/dev/ 和/sys/devices是sysfs按物件導向管理的思想來組織,sysfs最主要是用來描繪linux kernel 2.6中的裝置驅動模型,使用者態的後台程式(udev)會動態地週期性的掃瞄/sys目錄中的屬性項來自動管理裝置檔案(也稱為裝置節點),從而在/dev目錄會建立或者刪除對應的裝置檔案。

udev

udev是一種工具,它能夠根據系統中的硬體裝置的狀況動態更新裝置檔案,包括裝置檔案的建立,刪除等。裝置檔案通常放在/dev目錄下,使用udev 後,在/dev下面只包含系統中真實存在的裝置。它於硬體平台無關的,位於使用者空間,需要核心sysfs和tmpfs的支援,sysfs為udev提供設 備入口和uevent通道,tmpfs為udev裝置檔案提供存放空間。

在unix和類unix系統中,硬體裝置可以通過/dev目錄下的特殊檔案進行訪問,這些檔案又被稱為裝置檔案或裝置節點。通過操作普通檔案一樣讀寫這些檔案可以利用核心裝置驅動程式與硬體裝置通訊,而這個過程不是讀寫磁碟上的資料,網上有許多描述/dev目錄下檔案細節的資源。以前,這些特殊檔案是在系統安裝的時候通過mknod命令建立的,最近幾年,linux系統開始使用udev來在執行時管理/dev下的裝置檔案。如udev將在裝置被檢測到時建立裝置檔案並在裝置移除時刪除這些檔案,包括熱插拔裝置。因此,/dev目錄下的大多數裝置檔案只在裝置的存續期記憶體在於系統中。udev根據sysfs向使用者空間匯出的訊息來建立裝置檔案。

linux的sysfs與驅動模型體會1

使用的linux版本是2.6.18 1 概念與重要的資料結構 sysfs是乙個虛擬的檔案系統,這個檔案系統的目錄結構實質上就是核心物件模型樹。kobject 核心物件,是模型樹中的基本組成單位 53struct kobject kset 物件集合 127struct kset ktype 描述kob...

linux下的壓縮與解壓

解壓tar gz bz2 tgz zip等linux下的各種壓縮檔案 2009 05 12 11 00 對於剛剛接觸linux的人來說,一定會給linux下一大堆各式各樣的檔名給搞暈。別 個不說,單單就壓縮檔案為例,我們知道在windows下最常見的壓縮檔案就只有兩種 一是,zip,另乙個是.rar...

window與linux下的換行

回車符號和換行符號產生背景 關於 回車 carriage return 和 換行 line feed 這兩個概念的來歷和區別。在計算機還沒有出現之前,有一種叫做電傳打字機 teletype model 33 的玩意,每秒鐘可以打10個字元。但是它有乙個問題,就是打完一行換行的時候,要用去0.2秒,正...