What is dbus?
dbus (short for Desktop Bus) is an inter-process communication (IPC) mechanism: a message bus that allows different processes and applications to communicate with each other. All processes connected to the bus can communicate with each other through it. dbus is a spec, libdbus is a reference implementation of the specification.
dbus-x11is an older implementation of dbus that creates a newdbus-daemonfor each graphical display that is opened (i.e. when a user logs in). Thisdbus-daemon(and any of its services) dies whenever that graphical session ends.dbus-user-sessioninstead has asystemduser service, where thedbus-daemonis shared among all of a user's sessions (graphical, ssh, tty, etc). Thisdbus-daemondies when the last of a user’s login sessions has ended.dbus-user-sessionhas a hard dependency onsystemdwhich only supports running one graphical session per user at a time.
Usage:
systemd: uses the D-Bus wire protocol for communication betweensystemctlandsystemd.NetworkManager/udev:udevdaemon creates an entry for each network interface card (NIC) installed in the system in the network rules file.- D-Bus signals the presence of a new network device—wired or wireless—to
NetworkManager. NetworkManagerthen listens to the traffic on the D-Bus and responds by creating a configuration for this new device.
Recommended Reading
SponsoredCore & Architecture
Process & Scheduling
Memory & Executables
Containers & Isolation
Observability & Tracing
Filesystems & Storage
Linux - Syscalls
Linux - Versus
- epoll vs io_uring
- eBPF vs LKM
- eBPF vs cBPF
- execve vs fexecve vs execveat
- fd vs inode
- file vs dentry
- initrd vs initramfs
- pid vs tgid
- Process FD Table vs Global Open File Table
- Tracepoints vs Tracing Tools
- vmlinux vs vmlinuz
- pthread vs kthread
- pthread vs vfork
- seccomp vs landlock
- execve vs mmap
- shmem vs tmpfs
- stat vs fstat vs statx
- msghdr vs cmsghdr

