
在 Linux 桌面生态中,桌面进程和主机系统的通信主要是靠 D-Bus 这条消息总线。无论是 Ubuntu Dock 上的应用「未读角标」,还是 USB 设备插入时的桌面弹窗,背后都是靠它在驱动。
系统中通常会同时并行着这 2 条总线:
- 系统总线:全局共享,负责处理硬件事件与底层后台服务。
- 用户会话总线:为当前登录的用户单独服务,处理桌面环境和应用程序的集成逻辑。
过去 22 年的所有 Ubuntu 版本,一直都把dbus-daemon作为默认的消息总线组件。但从 Ubuntu 26.10 开始,这 2 条总线都会全面切换到dbus-broker。
Ubuntu 26.10 弃用 dbus-daemon
作为 D-Bus 的参考实现,从 2004 年dbus-daemon随 Ubuntu 发布,就一直沿用至今。虽然它运行稳定、文档齐全,但架构老化带来的局限性已经越来越明显:在高负载下,它会静默丢弃消息;而且它还采用了「逐个扫描」的方式来寻找消息目标,处理效率极低。
相比之下,dbus-broker采用的是异步、事件驱动的现代设计思路,即便总线上挂载了大量进程、消息积压严重,也能保证消息零丢失,寻址速度比旧版要快很多。
有不少主流 Linux 桌面其实早就切换到了dbus-broker,Ubuntu 之所以现在才跟进,主要还是受限于两项严苛的系统级打包策略:
- 同类组件互斥策略:Ubuntu 明确规定,
main仓库不能同时存在两个功能完全重叠的包。要引入dbus-broker,就必需先把main仓库里所有关联包对dbus-daemon的依赖全部剥离,而 GNOME 的 GDM 显示管理器就是这场改造中一块难啃的骨头。 - AppArmor 兼容性:Ubuntu 的 AppArmor 安全沙箱框架会深度接管部分 Debian 系统包和所有 Snap 应用的 D-Bus 消息。
dbus-broker直到最近才和dbus-daemon的功能完全对齐。
在把这两个问题都解决掉之后,Ubuntu 26.10 自然就成了上线变更的理想测试窗口。对普通用户来说,基本察觉不到明显的变化。
无感的平滑替换
和之前 Ubuntu 引入 Dracut 差不多,用户日常使用时,几乎感觉不到明显差异。Canonical 官方也明确表示:dbus-broker使用的协议、配置文件和总线策略和dbus-daemon完全一致,所有应用、桌面环境和周边生态都能照常运转。
- 随着
dbus-broker在 Ubuntu 26.10 上正式晋升到main仓库,原有的dbus和dbus-daemon包会被降级到universe仓库,不再作为系统预装组件。如果第三方软件依赖了旧组件,系统还是能正常拉取安装。 - 在底层实现层面,
dbus-broker为系统和用户实例都提供了dbus-broker.servicesystemd 单元,并自动映射成旧版dbus.service的别名。当两个包同时安装时,新版本会优先接管。
在 Ubuntu 26.04 上提前体验 dbus-broker
虽然 Ubuntu 26.10 才是默认搭载的版本,但 26.04 LTS 用户也可以手动安装体验:
1手动安装dbus-broker组件:
sudo apt install dbus-broker
2安装完成后重启系统,新版总线就会接管底层通信。
3你可以通过以下命令来检查运行状态:
systemctl status dbus-broker

4如果想要回退到原生的dbus实现,可以使用以下命令彻底禁用dbus-broker组件:
sudo systemctl disable dbus-broker
sudo systemctl --user --global disable dbus-broker
5重启系统并重新登录。









最新评论
鼠标指针也没了qwq
我删除的时候文件损坏了,还得重新安装再删掉。。。。。
禁用容易,稳定不禁用难。
有吗?我现在主要用 Brave,Edge 基本不用了,没发觉……