2013年9月25日 星期三

何謂udev?

udev 是Linux kernel 2.6系列的裝置管理器。它主要的功能是管理/dev目錄底下的裝置節點。它同時也是用來接替devfs及hotplug的功能,這意味著它要在添加/刪除硬體時處理/dev目錄以及所有使用者空間的行為,包括載入firmware時。

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



概要

在傳統的Linux系統中,/dev目錄下的裝置節點為一系列靜態存在的檔案,而udev則動態提供了在系統中實際存在的裝置節點。雖然devfs提供了類似功能,udev的支援者也給出了很多udev實作比devfs好的理由[1]
  • udev支援裝置的固定命名,而並不依賴於裝置插入系統的順序。預設的udev設定提供了儲存裝置的固定命名。任何硬碟都根據其唯一的檔案系統id、磁碟名稱及硬體連線的物理位置來進行識別。
  • udev完全在使用者空間執行,而不是像devfs在核心空間一樣執行。結果就是udev將命名策略從核心中移走,並可以在節點創建前用任意程式在裝置屬性中為裝置命名。

執行方式

udev是一個通用的核心裝置管理器。它以守護行程的方式執行於Linux系統,並監聽在新裝置初始化或裝置從系統中移除時核心(透過netlink socket)發出的uevent。
系統提供了一套規則用於匹配可發現的裝置事件和屬性的匯出值。匹配規則可能命名並創建裝置節點,並執行配置程式來對裝置進行設定。udev規則可以 匹配像核心子系統、核心裝置名稱、裝置的物理等屬性,或裝置序列號的屬性。規則也可以請求外部程式提供資訊來命名裝置,或指定一個永遠一樣的自訂名稱來命 名裝置,而不管裝置什麼時候被系統發現。

沒有留言:

張貼留言