1、热插拔
热插拔就是带电插拔,就是允许用户在不关闭系统,不切断电源的情况下拆卸或安装硬盘,板卡等设备。
热插拔是内核和用户空间之间,通过调用用户空间程序实现交互来实现的。当内核发生某种热插拔事件,内核就会调用用户空间的程序来实现交互。
2、热插拔机制
热插拔机制有devfs、udev、mdev,devfs已经不再使用。嵌入式设备上一般使用mdev,X86上一般用udev,当然嵌入式设备上也可以使用udev。mdev是udev的简化版本。
udev是基于netlink机制实现的,通过监听内核发送的uevent来执行相应的热插拔操作,而mdev是基于uevent_helper机制,内核产生的uevent_helper所指的用户程序mdev来执行热插拔操作。
3、内核是如何发送事件到用户空间?
3.1 api函数
kobject_uevent
kobject_uevent_env