系統管理
1819817 會員
3040 線上
109607 解決方案
發表新文章

udev 怎用

 
watermelonyu
教授

udev 怎用

在kernel 2.4 中,有一個稱為「devfs」的設計,它的目的是隨時增加或移

除在「/dev」中的裝置。看過「/dev」目錄的人都知道,Linux 所支援的裝置數

目多得驚人,但在這逾千個裝置中,只有極少數是真正存在的;如果有辦法可以

即時顯示真正存在的裝置,對使用者或各經銷商來說都是好事。「devfs」就是

為這個目的而編寫。

到了kernel 2.6,這部份的發展有了變化。Kernel 開發小組希望用另一種更

嚴謹的方式來進行「devfs」所做的工作,於是發展了「udev」,以取代「devfs」。

「udev」會被掛載(mount)在「/udev」目錄內,裡面全都是一些會即時出現

或消失的裝置;它會讀取「sysfs」中提供的裝置狀態而建立或刪除不同的裝置。

由於還是起步階段,目前未能真正取代可靠的「devfs」,但相信在不久的未來,

「udev」的設計會更成熟穩定。



看起來很好用的樣子,但是我還是沒有辦法直接mount /udev的device ,請問到底要怎樣使用呢?

另外boot OS的disk 也可以用/udev來開機嗎?
2則回覆 2
watermelonyu
教授

udev 怎用

好問題, udev 是 2.6 新增加的功能, 當然主要的用意就是方便管理所有的 device file, 以及一個最重要的, 以後不用再擔心一換卡片就需要用不同的 device file name 囉.



而由於 udev 的資料是存在所請的 user space, 也就是 memory 中, 然後再透過 sysfs file system mapping 到 /sys 這個目錄下, 所以你不能用所謂的 mount 來 mount udev.



每當 kernel 發現到硬體有更新時, 他會呼叫 /sbin/hotplug 這個程式. Hotplug 會執行連結到 /etc/hotplug.d/default 目錄下的程式. Hotplug 送出核心提供的資訊給 udev 程式, 以便執行必要的動作修改 /dev 結構(建立或刪除裝置檔)



大概就這樣囉, 但是, udev 目前還有一個很大的問題, 就是不能動態直接把 module load 進來, 不知以後會不會再補強這個部份
watermelonyu
教授

udev 怎用

所以還是要拿/dev/底下的device name 來mount 囉,這樣換卡時/dev/底下的device name一樣會改變嗎