linux kernel從 2.6 到 3.0 3.4 ... devfs已經被拋棄。 kernel互動的方式有 sysfs procfs 還有就是/dev下的節點, 這些節點是如何被建立出來的呢。
研究了半天,在kernel device_create**看了遍,也只是發現建立了一堆sysfs節點和一些link。
最後才發現是使用者空間建立的。 android系統在
system/core/init/ueventd.c
if (ufds[0].revents == pollin)
handle_device_fd(device_fd);
system/core/init/devices.c: handle_device_event->make_device
通過接收uevent來動態新增/dev下節點
對於 linux pc 是採用udev來代替早期的devfs 在乙個守護程序中實現/dev下節點的動態新增。
嵌入式linux中,busybox繼承了乙個簡化版的udev,叫mdev。
Linux dev 自動建立裝置節點
udev的支援主要作用是 在驅動初始化的 裡呼叫class create 為該裝置建立乙個class,再為每個裝置呼叫device create 核心中定義的struct class結構體,顧名思義,乙個struct class結構體型別變數對應乙個類,核心同時提供了class create 函式,...
Linux dev目錄裝置檔案
簡介 在linux系統下,硬體裝置都是以檔案的形式存在的,因而不同硬體裝置有這不同的檔案型別,這種檔案型別叫做裝置檔案,裝置檔案在外部裝置與作業系統之間提供了乙個介面,這樣使用者使用外部裝置就相當於普通檔案一樣。介面 比如 dev sda 表示第乙個 scsi ide 盤,dev vda 表示第乙個...
建立裝置節點
書中所使用的是mknod命令手動建立節點,事實上有一組函式支援自動建立裝置節點。核心中定義了struct class結構體,乙個struct class結構體變數對應乙個類,核心提供了class create巨集來建立乙個類。呼叫class create會在 sys class目錄下生成乙個目錄,接...