Linux 内核到用户空间上的Dbus
我有一个关于当前(2.6.35)内核上的dbus的问题。dbus是内核和用户空间之间的通信方式吗?我自己能弄明白。例如,如果您使用usb驱动程序(插入usb闪存笔之类的东西)并监视dbus(dbus监视器)的活动,那么答案可能是肯定的。但是在源代码中(usbselectron.c和小工具的驱动程序)没有dbus的迹象。在内核树中找不到Dbus.h。 非常感谢你。如果我弄错了,很抱歉,但我对设备驱动程序和DBU有点不在行 D-Bus(或“守护程序总线”)是基于Linux/Unix系统上进程间通信(简称进程间通信或IPC)的一种方式 它允许进程使用客户端可以调用的方法公开“D-Bus服务”。这些方法通常映射到用某种编程语言编写的实际方法。D-Bus是独立于语言的,但大多数工具包都有一些库,使其更易于使用-例如QtDbusLinux 内核到用户空间上的Dbus,linux,Linux,我有一个关于当前(2.6.35)内核上的dbus的问题。dbus是内核和用户空间之间的通信方式吗?我自己能弄明白。例如,如果您使用usb驱动程序(插入usb闪存笔之类的东西)并监视dbus(dbus监视器)的活动,那么答案可能是肯定的。但是在源代码中(usbselectron.c和小工具的驱动程序)没有dbus的迹象。在内核树中找不到Dbus.h。 非常感谢你。如果我弄错了,很抱歉,但我对设备驱动程序和DBU有点不在行 D-Bus(或“守护程序总线”)是基于Linux/Unix系统上进程间通信(
它与内核或驱动程序没有任何关系,但当然,如果驱动程序想要的话,没有人会阻止它们也拥有D-Bus服务。(这在某些情况下可能很有用。)D-Bus用于用户空间应用程序之间的通信 如果要与设备驱动程序通信,则需要使用IOCTLs、netlink或创建新的系统调用。我在过去创建了netlink代码来与一个特殊的网卡通话,这相对来说比较容易做到。使用ioctl也很容易,但是您受到可以/应该通过它传递多少信息的限制 如果您想知道dbus与插入的USB设备之间的关系,我认为是这样的:
udev->udisks(正式的DeviceKit)->dbus->任何对磁盘事件感兴趣的dbus应用程序。“>对于工作,我必须提供一个“测试”,它必须“证明”dbus是用户和内核空间之间通信的一种方式。有什么建议吗?(还有其他测试,如dbus与POSIX兼容等等)您必须编写某种守护程序,通过现有的内核用户IPC(如我列出的那些)与内核通信,并将此守护程序连接到D-Bus.Fill free以添加到答案中。