mdev和udev之間的關係

2021-10-25 14:14:30 字數 1318 閱讀 4758

關於udev和mdev之間的區別與聯絡我發現自己現在還沒有把它完整的給區分開來和聯絡起來.

裝置檔案系統有devfs,mdev,udev

mdev是udev的簡化版本,是busybox中所帶的程式,最適合用在嵌入式系統,而udev一般用在pc上的linux中,相對mdev來說要複雜些,devfs是2.4核心引入的,而在2.6核心中卻被udev所替代,他們有著共同的優點,只是devfs中存在一些未修復的bug,作者也停止了對他的維護,最顯著的乙個區別,採用devfs時,當乙個並不存在的裝置結點時,他卻還能自動的載入對應的裝置驅動,而udev則不能,udev認為當載入了不存在的對應的裝置驅動的時候不應載入對應的驅動模組,因為載入也沒有,浪費了資源.

深入理解udev和mdev.

dev 和mdev 是兩個使用uevent 機制處理熱插拔問題的使用者空間程式,兩者的實現機理不同。udev 是基於netlink 機制的,它在系統啟動時執行了乙個deamon 程式udevd,通過監聽核心傳送的uevent 來執行相應的熱拔插動作,包括建立/刪除裝置節點,載入/解除安裝驅動模組等等。mdev 是基於uevent_helper 機制的,它在系統啟動時修改了核心中的uevnet_helper 變數(通過寫/proc/sys/kernel/hotplug),值為「/sbin/mdev」。這樣核心產生uevent 時會呼叫uevent_helper 所指的使用者級程式,也就是mdev,來執行相應的熱拔插動作。udev 使用的netlink 機制在有大量uevent 的場合效率高,適合用在pc 機上;而mdev 使用的uevent_helper 機制實現簡單,適合用在嵌入式系統中。另外要說明的一點是,uevent_helper 的初始值在核心編譯時時可配置的,預設值為/sbin/hotplug。如果想修改它的值,寫/proc/sys/kernel/hotplug 檔案就可以了,例如:

echo 「/sbin/mdev」 > /proc/sys/kernel/hotplug

補充一點:如果使用的是udevd,那麼uevent_helper變數應為空,即

echo 「 」 > /proc/sys/kernel/hotplug

這段內容總結的很好,我也看了linux核心有關uevent的**,的確是這樣,這樣看來簡單的將mdev看做udev的簡化版也就不準確了。這樣在做嵌入式的檔案系統就要注意了,一般只會使用mdev,目前我還不確定能不能只用udev,理論上是可以的,當然兩種一起用也是可以的,也就是mdev + udev,但是這時要注意了,寫規則時一定要注意,避免讓它們重複執行。也就是說udev執行過的,mdev不要再執行了。其實udev最大的特點就是使用了netlink,實質上是乙個scoket,這個特別的scoket用來監測uevent,當然,我們也可以自己寫乙個函式用來監測任何uevent事件。

和之間的關係

1.0 簡介 本 簡要的 了xml和資料庫 之間的關係,同時列出一些可以使用資料庫處理xml文件的。雖然這裡不打算詳盡地介紹這些軟體,但是筆者希望它能夠描述使用資料庫處理xml文件中的主要部分。這裡有點偏向與 關聯式資料庫,因為我的經驗如此。2.0 xml是資料庫嗎?在開始討論xml和資料庫之前,我...

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

sysfs sysfs 把連線在系統上的裝置和匯流排組織成為乙個分級的檔案,它們可以被從使用者 的空間訪問到。簡單介紹sysfs檔案系統,您可能想知道 sysfs 是怎麼認出系統中存在的裝置以及應 該使用什麼裝置號。對於已經編入核心的驅動程式,當被核心檢測到的時候,會直接 在 sysfs 中註冊其物...

類之間的關係(1 使用關係和組合關係)

組合關係中的建構函式和析構函式的呼叫順序 組合關係中呼叫成員的帶引數的建構函式 之前的章節我們介紹了單個類有關的知識。在程式中如果出現多個類,那麼它們之間會表現出一定的關係。粗略的看,類之間有以下幾種關係 使用關係是比較弱的關係,就是說a類使用了b類的功能 方法 在 層面,a類可能以如下方式使用了b...