Shaun McCance
shaunm@gnome.org 2011–2012
기타 프로세스에 API를 제공하는 프로세스간 통신 버스
조성호
shcho@gnome.org 2016, 2017, 2018.

# D-Bus

D-Bus는 다양한 프로그램, 데스크톱, 저수준 시스템 구성요소간 메시지를 교환하는 메시지 버스입니다. D-Bus는 일부 서비스에 메시지를 보내고, 모든 관련 서비스에 메시지를 뿌리는 단순 API 입니다. D-Bus는 더 나은 연동 방식을 제공하고 사용자의 경험을 풍부하게 하여 여러가지 방식의 프로그램과 데스크톱을 서로 연동하고 어우러지게 합니다.

D-Bus는 세션 버스와 시스템 버스로 이루어져 있습니다. 세션 버스는 단일 사용자 세션의 프로그램에서 활용하며, 데이터와 이벤트 알림을 공유하고 사용자 데스크톱에 붙을 수 있게 합니다. 예를 들어 동영상 재생 프로그램은 사용자가 동영상을 감상하는 동안 D-Bus 메시지를 화면 보호기에 보내 활성화하지 못하게 할 수 있습니다.

시스템 버스는 어떤 사용자 세션과 상관 없이 동작하는 단일 메시지 버스입니다. 저수준 시스템 세부 설정을 건드리지 않고도 프로그램에서 시스템 구성 요소를 다룰 수 있게 하여, 어떤 세션의 프로그램이든 통신할 수 있습니다. 시스템 버스는 사용자가 시스템에서 할 수 있을거라 기대하는 중요한 기능을 제공할 때 활용합니다. 예를 들어, 시스템 버스는 네트워크 인터페이스를 연결하거나 끊을 때, 외장 드라이브를 연결할 때, 랩톱 배터리의 잔량이 낮을 때를 대비하여 감시하는 목적으로 활용합니다.

D-Bus는 freedesktop.org와 개발하므로 다른 데스크톱 환경 및 프로그램과 함께 활용할 수 있습니다. D-Bus가 교차 데스크톱 프로젝트이기 때문에 어떤 데스크톱이냐는 상관 없이 사용자 데스크톱과 감쪽같이 어우러지며, 이식 가능한 만능 프로그램을 만들 때 활용할 수 있습니다.

그놈에서는 GIO의 GDBus API로 D-Bus를 완벽하게 지원합니다.

GIO 참고 설명서

D-Bus 따라하기 지침서

D-Bus 명세