Android 系统中设备节点的创建


查了很多资料,有很多人错误地认为是kernel创建的/dev/yourdevice

在最近的kernel中这种说法是不对的, 其实是kernel仅负责在/sys/创建一大堆下目录和文件,

而真正的设备节点是在用户空间创建的。

在Android系统中,由init进程负责处理这种uevent事件,如果是"add" device事件, init会在/dev/下创建相应的节点

具体代码可查看 system/core/init/devices.c: handle_device_event->make_device

节点的用户,组,权限都可以在devperms中定制。

对于linux系统,我想应该是udev实现的吧

对于非android系统,应该是mdev

其实到底谁来处理,关键看kernel发送uevent事件,应用层通过什么方式处理的,是侦听socket还是通过设置

/proc/sys/kernel/hotplug命令文件

相关内容