|
In computing, D-Bus or DBus is an inter-process communication (IPC) and remote procedure call (RPC) mechanism that allows communication between multiple computer programs (that is, processes) concurrently running on the same machine. D-Bus was developed as part of the freedesktop.org project, initiated by Havoc Pennington from Red Hat to standardize services provided by Linux desktop environments such as GNOME and KDE. The freedesktop.org project also developed a free and open-source software library called libdbus, as a reference implementation of the specification. This library is often confused with the D-Bus itself. Other implementations of D-Bus also exist, such as GDBus (GNOME), QtDBus (Qt/KDE), dbus-java and sd-bus (part of systemd). == Overview == D-Bus is an IPC mechanism initially designed to replace the software component communications systems used by GNOME and KDE Linux desktop environments (CORBA and DCOP respectively). The components of these desktop environments are normally distributed in many processes, each one providing only a few —usually one— ''service''. These services may be used by regular client applications or by other components of the desktop environment to perform their tasks. Due to the large number of processes involved —adding up processes providing the services and clients accessing them— establishing one-to-one IPC communications between all of them is an inefficient and quite unreliable approach. Instead, D-Bus provides an abstraction called ''bus'' that gathers all the communications between a group of processes over a single shared virtual channel. Processes connected to a bus don't know how it is internally implemented, but D-Bus specification guarantees that every process connected to the bus is able to communicate with each other through it. Linux desktop environments take advantage of the D-Bus facilities by instancing not one bus but many: * a single system bus, available to all users and processes of the system, that provides access to system services (i.e. services provided by the operating system and also by any system daemons). * a session bus for each user login session, that provides desktop services to user applications in the same desktop session, and allows the integration of the desktop session as a whole. A process can connect to any number of buses, provided that it has granted access to them. In practice, this means that any user process can connect to the system bus and to its current session bus, but not to another users' session buses, or even to a different session bus owned by the same user. The latter restriction may change in the future if all user sessions are combined into a single one user bus. D-Bus provides additional or simplifies existing functionality to the applications, including information sharing, modularity and privilege separation. For example, information on an incoming voice call received through Bluetooth or Skype can be propagated and interpreted by any currently running music player, which can react by muting the volume or pausing playback until the call is finished. D-Bus can also be used as a framework to integrate different components of a user application. For instance, an office suite can communicate through the session bus to share data between the word processor and the spreadsheet. 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「D-Bus」の詳細全文を読む スポンサード リンク
|