歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux基礎篇之udev:設備管理器

Linux基礎篇之udev:設備管理器

日期:2017/2/28 14:34:59   编辑:Linux教程

1 udev簡介


--------------------------------------------------------------------------------
udev 是Linux2.6 內核裡的一個功能,它替代了原來的devfs,成為當前Linux 默認的設備管理工具。udev以守護進程的形式運行,通過偵聽內核發出來的uevent 來管理/dev目錄下的設備文件。不像之前的設備管理工具,udev在用戶空間(user space) 運行,而不在內核空間(kernel space) 運行。

2 udev的優勢

--------------------------------------------------------------------------------

2.1 動態管理

--------------------------------------------------------------------------------
當設備添加/ 刪除時,udev的守護進程偵聽來自內核的uevent,以此添加或者刪除/dev下的設備文件,所以udev 只為已經連接的設備產生設備文件,而不會在/dev下產生大量虛無的設備文件。


2.2 自定義命名規則


--------------------------------------------------------------------------------
通過Linux 默認的規則文件,udev在/dev/ 裡為所有的設備定義了內核設備名稱,比如/dev/sda、/dev/hda、/dev/fd等等。由於udev 是在用戶空間(user space) 運行,Linux用戶可以通過自定義的規則文件,靈活地產生標識性強的設備文件名,比如/dev/boot_disk、/dev/root_disk、/dev/color_printer等等。


2.3 設定設備的權限和所有者/ 組

--------------------------------------------------------------------------------
udev可以按一定的條件來設置設備文件的權限和設備文件所有者/ 組。在不同的udev 版本中,實現的方法不同。


2.4 下面的流程圖顯示udev 添加/ 刪除設備文件的過程。

--------------------------------------------------------------------------------


ps:
1.設備文件:由於本文以較通俗的方式講解udev,所以設備文件是泛指在/dev/下,可被應用程序用來和設備驅動交互的文件。而不會特別地區分設備文件、設備節點或者設備特殊文件。


2.sysfs:sysfs是Linux 2.6 內核裡的一個虛擬文件系統(/sys)。它把設備和驅動的信息從內核的設備模塊導出到用戶空間(userspace)。從該文件系統中,Linux用戶可以獲取很多設備的屬性。


3.devpath:本文的devpath是指一個設備在sysfs文件系統(/sys)下的相對路徑,該路徑包含了該設備的屬性文件。udev裡的多數命令都是針對devpath操作的。例如:sda的devpath是/block/sda,sda2的devpath是/block/sda/sda2。


4.內核設備名稱:設備在sysfs裡的名稱,是udev 默認使用的設備文件名。

Copyright © Linux教程網 All Rights Reserved