我想了解 USB 事件从内核空间到用户空间的流程(只是出于我的好奇心,想知道事情是如何实现的)。
更清楚地说,我想知道当我将 USB 驱动器插入系统时,该弹出窗口是如何出现在我的桌面上的,以及驱动器是如何安装的。
我还想知道它如何确定我的 USB 中是否存在某些图像,如果“是”,它如何询问我是否需要在 GIMP 或其他软件中打开它?
我知道这是一个非常大而广泛的问题,但请指导我如何理解其背后的整个想法。
我没有做过大的代码浏览,但我向你保证,如果我能得到正确的指导,我这样做是没有问题的。
/lib/modules/$(uname -r)/modules.alias
完整列表。)根据硬件接口,这些看起来会有所不同。例如,pci:v0000102Bd00002527sv*sd*bc*sc*i*
对于 PCI 设备供应商 102B、设备 2527 以及任何子供应商等,或 USBusb:v2040p4982d*dc*dsc*dp*ic*isc*ip*
:.udev
用户空间发送一个加载设备的通知。udev
将通知与/lib/udev/rules.d/
和中的规则列表进行匹配/etc/udev/rules.d
。从这里开始,行为是非常专业的,基于规则。80-udisks.rules
文件可能是最好的工作场所。这些规则将使用诸如blkid和其他帮助程序之类的东西来探测磁盘的类型和内容,填充各种配置值,包括ENV{UDISKS_PRESENTATION_HIDE}="1"
出于某种原因忽略磁盘之类的东西。有关详细信息,请参阅“man 7 udisks”。/usr/share/polkit-1/actions/org.freedesktop.udisks.policy
。(谁可以挂载、卸载等)DCIM