2019년 3월 25일 월요일

D-BUS

D-Bus란?

D-Bus는 프로세스간 통신 (IPC)을 위한 시스템이다.
오픈 소스 소프트웨어로써 리눅스 데스크톱의 프로세스 통신을 위한 수단으로 널리 사용되고 있다.
특히 KDE와 Gnome같은 데스크탑 환경에서 중요하게 사용한다. 구조적으로는 몇 가지 계층 이 있다

• libdbus: Libdbus는 응용 프로그램간의 통신을 가능하게 하는 라이브러리이다.
• message bus daemon: DBUS데몬은 실행 파일이며 libdbus를 기반으로 하여 제작되었으며 여러 개의 응용프로그램에서 연결이 가능하다. 데몬은 버스에 연결된 하나 이상의 프로세스에 라우팅 및 루트 메시지를 처리한다.
• wrapper library 또는 binding: libdbus-glib, libdbus-qt 등 특정 어플리케이션 프레임워크 혹은 파이썬과 같은 언어에 wrapping/binding 가능하다. D-Bus 프로그래밍을 쉽게 할 수 있도록 도와준다. 즉 libdbus는 high-level binding을 위해 low-level backend로 다루어진다고 볼 수 있다. 많은 libdbus api가 binding을 위해 만들어졌다.

- https://www.freedesktop.org/wiki/Software/dbus/

------------------------------------------------------------------------------------

#dbus
Ref : http://sarangnamu.net/basic/basic_view.php?no=5800&page=8&sCategory=0

#DCOP : #KED에 의해 생성, QT외 다른 환경에서의 적용 어려움
#Bonobo : #GNOME에 의해 생성, #GNOME외 다른 환경에서 적용 어려움

D-Bus란?
- D-Bus는 RPC 프로토콜 혹은 IPC(inter-process communication)시스템으로 설명
- 데스크탑 응용프로그램과 운영체제의 통신을 위해 만들어졌다.

- 구조적 레이어
-> libdbus: 두 응용프로그램 간의 연결 및 메세지 교환을 할 수 있도록 한다.
-> message bus daemon 실행 파일: libdbus를 기반으로 하여 제작되었으며 여러개의 응용프로그램에서 연결이 가능하다. 데몬은 응용프로그램으로부터 메세지를 전송받아 다른 응용프로그램으로 전송한다.
-> wrapper library or binding: libdbus-glib, libdbus-qt 등 특정 어플리케이션 프레임워크 혹은 파이썬과 같은 언어에 wrapping/binding 가능하다. D-Bus 프로그래밍을 쉽게 할 수 있도록 도와준다. 즉 libdbus는 high-level binding을 위해 low-level backend로 다루어진다고 볼 수 있다. 많은 libdbus api가 binding을 위해 만들어졌다.

libdbus는 오직 one-to-one 연결만 지원하지만 라우터 역할을 하는 message bus daemon과 message를 이용한다면 제약을 극복할 수 있다.

댓글 없음:

댓글 쓰기