udev相關

【轉自維基百科】http://zh.wikipedia.org/wiki/Udev


udev 是Linux kernel 2.6系列的設備管理器。它主要的功能是管理/dev目錄底下的設備節點。它同時也是用來接替devfs及hotplug的功能,這意味着它要在添加/刪除硬件時處理/dev目錄以及所有用戶空間的行爲,包括加載firmwave時。

udev的最新版本依賴於升級後的Linux kernel 2.6.13的uevent接口的最新版本。使用新版本udev的系統不能在2.6.13以下版本啓動,除非使用noudev參數來禁用udev並使用傳統的/dev來進行設備讀取。

1. 概要

    在傳統的Linux系統中,/dev目錄下的設備節點爲一系列靜態存在的文件,而udev則動態提供了在系統中實際存在的設備節點。雖然devfs提供了類似功能,udev的支持者也給出了很多udev實現得比devfs好的理由:

    udev支持設備的固定命名,而並不依賴於設備插入系統的順序。默認的udev設置提供了存儲設備的固定命名。任何硬盤都根據其唯一的文件系統id、磁盤名稱及硬件連接的物理位置來進行識別。

    udev完全在用戶空間執行,而不是像devfs在內核空間一樣執行。結果就是udev將命名策略從內核中移走,並可以在節點創建前用任意程序在設備屬性中爲設備命名。

2.運行方式

    udev是一個通用的內核設備管理器。它以守護進程的方式運行於Linux系統,並監聽在新設備初始化或設備從系統中移除時,內核(通過netlink socket)所發出的uevent。

    系統提供了一套規則用於匹配可發現的設備事件和屬性的導出值。匹配規則可能命名並創建設備節點,並運行配置程序來對設備進行設置。udev規則可以匹配像內核子系統、內核設備名稱、設備的物理等屬性,或設備串行號的屬性。規則也可以請求外部程序提供信息來命名設備,或指定一個永遠一樣的自定義名稱來命名設備,而不管設備什麼時候被系統發現。

3. 系統架構

udev系統可以分爲三個部分:

    libudev函數庫,可以用來獲取設備的信息。

    udevd守護進程,處於用戶空間,用於管理虛擬/dev

    管理命令udevadm,用來診斷出錯情況。

    系統獲取內核通過netlink socket發出的信息。早期的版本使用hotplug,並在/etc/hotplug.d/default添加一個鏈接到自身來達到目的。


發佈了36 篇原創文章 · 獲贊 2 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章