备注:
此文是佐须之男"跟着佐大学OpenWrt开发"入门培训班教学视频演讲稿提纲,虽是内部资料但再三考虑后对外公布,通过公众的监督来鞭策自己。如对完整内容感兴趣,可以参加"跟着佐大学OpenWrt开发"入门培训班:http://www.forgotfun.org/2018/04/openwrt-training-2018.html。
课程试听地址:
hotplug机制是linux内核提供的一种消息通知机制,主要用来实现内核态事件向用户态传递。OpenWrt下的ubus也类似,一个是用户态的,而hotplug是内核态的,其功能都是用来消息传递。linux早期的hotplug机制并没有现在这么复杂,在2.4内核的时候只是针对usb、pci子系统,只是简单的hotplug调用进程,后面才使用netlink机制来实现通知机制。当时我主要用hotplug机制来实现usb 3g网卡的模式转换(配合usbmodswitch),现在hotplug有更广泛的使用场景。
OpenWrt中hotplug机制基本上和传统Linux下的实现类似,只是hotplug事件监听是procd(注:早期OpenWrt采用的是hotplug2),其他系统可能是由hotplug2或其他。OpenWrt常见的按键检测、驱动加载都是基于hotplug机制来实现的。
参考资料: