Knowledge

D-Bus

Source đź“ť

985:) as a communications central point to which each process should establish its point-to-point D-Bus connection. When a process—client or service—sends a D-Bus message, the message bus process receives it in the first instance and delivers it to the appropriate recipient. The message bus daemon may be seen as a hub or router in charge of getting each message to its destination by repeating it through the D-Bus connection to the recipient process. The recipient process is determined by the destination bus name in the message's header field, or by the subscription information to signals maintained by the message bus daemon in the case of signal propagation messages. The message bus daemon can also produce its own messages as a response to certain conditions, such as an error message to a process that sent a message to a nonexistent bus name. 900: 1028: 884: 1289: 1206: 764:: This is the way for a client to invoke an object's method. The client sends a message to the service process exporting the object, and the service in turn replies with a message back to the client process. The message sent by the client must contain the object path, the name of the invoked method (and optionally the name of its interface), and the values of the input parameters (if any) as defined by the object's selected interface. The reply message carries the result of the request, including the values of the output parameters returned by the object's method invocation, or 774:: This is the way for an object to announce the occurrence of a signal to the interested parties. The object's service process broadcasts a message that the bus passes only to the connected clients subscribed to the object's signal. The message carries the object path, the name of the signal, the interface to which the signal belongs, and also the values of the signal's parameters (if any). The communication is one-way: there are no response messages to the original message from any client process, since the sender knows neither the identities nor the number of the recipients. 139: 2783: 499:. Bus names of this type are immutable—it is guaranteed they will not change as long as the connection exists—and, more importantly, they cannot be reused during the bus lifetime. This means that no other connection to that bus will ever have assigned such unique connection name, even if the same process closes down the connection to the bus and creates a new one. Unique connection names are easily recognizable because they start with the otherwise forbidden colon character. An example of a unique connection name is 365: 377: 733: 583:
can also listen to signals that an object emits when its state changes due to certain events, usually related to the underlying service. An example would be when a service that manages hardware devices—such as USB or network drivers—signals a "new hardware device added" event. Clients should instruct the bus that they are interested in receiving certain signals from a particular object, since a D-Bus bus only passes signals to those processes with a registered interest in them.
834: 559: 1136:, developed by the same freedesktop.org project that designed the specification. However, libdbus is a low-level implementation that was never meant to be used directly by application developers, but as a reference guide for other reimplementations of D-Bus (such as those included in standard libraries of desktop environments, or in 778:
Every D-Bus message consists of a header and a body. The header is formed by several fields that identify the type of message, the sender, as well as information required to deliver the message to its recipient (destination bus name, object path, method or signal name, interface name, etc.). The body
645:
When using an object, it is a good practice for the client process to provide the member's interface name besides the member's name, but is only mandatory when there is an ambiguity caused by duplicated member names available from different interfaces implemented by the object—otherwise, the selected
535:
Because of its original conception as a replacement for several component oriented communications systems, D-Bus shares with its predecessors an object model in which to express the semantics of the communications between clients and services. The terms used in the D-Bus object model mimic those used
720:
between processes instead of "raw bytes". D-Bus messages are high-level discrete items that a process can send through the bus to another connected process. Messages have a well-defined structure (even the types of the data carried in their payload are defined), allowing the bus to validate them and
649:
The D-Bus specification also defines several standard interfaces that objects may want to implement in addition to its own interfaces. Although technically optional, most D-Bus service developers choose to support them in their exported objects since they offer important additional features to D-Bus
582:
of the object. Any client connected to the bus can interact with an object by using its methods, making requests or commanding the object to perform actions. For instance, an object representing a time service can be queried by a client using a method that returns the current date and time. A client
925:
library (or its equivalent) internally uses a native lower-level IPC mechanism to transport the required D-Bus messages between the two processes in both ends of the D-Bus connection. D-Bus specification does not mandate which particular IPC transport mechanisms should be available to use, as it is
1140:
bindings). The freedesktop.org project itself recommends applications authors to "use one of the higher level bindings or implementations" instead. The predominance of libdbus as the most used D-Bus implementation caused the terms "D-Bus" and "libdbus" to be often used interchangeably, leading to
432:
A process can connect to any number of buses, provided that it has been 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 user's session buses, or even to a different session bus owned by the same
401:
that gathers all the communications between a group of processes over a single shared virtual channel. Processes connected to a bus do not know how it is internally implemented, but D-Bus specification guarantees that all processes connected to the bus can communicate with each other through it.
617:
Every object is inextricably associated to the particular bus connection where it was exported, and, from the D-Bus point of view, only lives in the context of such connection. Therefore, in order to be able to use a certain service, a client must indicate not only the object path providing the
526:
Bus names can be used as a simple way to implement single-instance applications (second instances detect that the bus name is already taken). It can also be used to track a service process lifecycle, since the bus sends a notification when a bus name is released due to a process termination.
1759:
For the within-desktop-session use case, the GNOME and KDE desktops have significant previous experience with different IPC solutions such as CORBA and DCOP. D-Bus is built on that experience and carefully tailored to meet the needs of these desktop projects in
1440:
One of the most important developments to come out of the Linux desktop is the Desktop Bus (D-Bus), a message-passing system. D-Bus is important because it serves as an interprocess communication mechanism that allows desktop applications to talk to each other
2269:
The low-level implementation is not primarily designed for application authors to use. Rather, it is a basis for binding authors and a reference for reimplementations. If you are able to do so it is recommended that you use one of the higher level bindings or
511:
the bus name. In that sense, a bus name cannot be owned by two connections at the same time, but, unlike unique connection names, these names can be reused if they are available: a process may reclaim a bus name released—purposely or not—by another process.
1789:
D-Bus was first built to replace the CORBA-like component model underlying the GNOME desktop environment. Similar to DCOP (which is used by KDE), D-Bus is set to become a standard component of the major free desktop environments for GNU/Linux and other
699:
bus name. Each bus reserves this special bus name for itself, and manages any requests made specifically to this combination of bus name and object path. The administrative operations provided by the bus are those defined by the object's interface
625:
specifies members—methods and signals—that can be used with an object. It is a set of declarations of methods (including its passing and returning parameters) and signals (including its parameters) identified by a dot-separated name resembling the
506:
A process can ask for additional bus names for its connection, provided that any requested name is not already being used by another connection to the bus. In D-Bus parlance, when a bus name is assigned to a connection, it is said the connection
954:. Both processes must pass the same address to their respective communications libraries to establish the D-Bus connection between them. An address can also provide additional data to the communications library in the form of comma-separated 1236:
and auditing, security from the kernel mediating, closing race conditions, and allowing D-Bus to be used during boot and shutdown (as needed by systemd). kdbus inclusion in the Linux kernel proved controversial, and was dropped in favor of
969:, the address by which a process can establish a D-Bus connection to the central message bus process. In this scenario, the message bus daemon selects the bus address and the remainder processes must pass that value to their corresponding 602:. However, it is not enforced—but also not discouraged—to form hierarchies within object paths. The particular naming convention for the objects of a service is entirely up to the developers of such service, but many developers choose to 913:
over a Unix domain socket. They can exchange messages sending them to the message bus process, which in turn will deliver the messages to the appropriate process. In this scenario bus names are mandatory to identify the destination
618:
desired service, but also the bus name under which the service process is connected to the bus. This in turn allows that several processes connected to the bus can export different objects with identical object paths unambiguously.
828:
may be wrapped by another higher-level library, language binding, or entirely replaced by a different standalone implementation that serves the same purpose. This library only supports one-to-one communications between two
687:: when a D-Bus service arranges its objects hierarchically, this interface provides a way to query an object about all sub-objects under its path, as well as their interfaces and properties, using a single method call. 980:
Two processes can use a D-Bus connection to exchange messages directly between them, but this is not the way in which D-Bus is normally intended to be used. The usual way is to always use a message bus daemon (i.e.
388:
Large groups of cooperating processes demand a dense mesh of individual communication channels (using one-to-one IPC methods) between them. D-Bus simplifies the IPC requirements with one single shared channel.
995:
allows automatic starting of services when needed—when the first request to any bus name of such service arrives at the message bus daemon. This way, service processes neither need to be launched during the
941:
The communications libraries of both processes must agree on the selected transport method and also on the particular channel used for their communication. This information is defined by what D-Bus calls an
1008:'s service activation framework. Service activation is an important feature that facilitates the management of the process lifecycle of services (for example when a desktop component should start or stop). 2298:
dbus-glib uses the libdbus reference implementation, GDBus doesn't. Instead, it relies on GIO streams as transport layer, and has its own implementation for the D-Bus connection setup and authentication.
519:, is to provide a way to refer to a service using a prearranged bus name. For instance, the service that reports the current time and date in the system bus lies in the process whose connection owns the 638:
several interfaces, but at least must implement one, providing support for every method and signal defined by it. The combination of all interfaces implemented by an object is called the object
798:: how to build the D-Bus messages to be exchanged between processes within a D-Bus connection. However, it does not define the underlying transport method for delivering these messages. 779:
contains the data payload that the receiver process interprets—for instance the input or output arguments. All the data is encoded in a well known binary format called the
304:
of the specification. This library should not be confused with D-Bus itself, as other implementations of the D-Bus specification also exist, such as GDBus (GNOME), QtDBus (
2092:
is built on top of a general one-to-one message passing framework, which can be used by any two apps to communicate directly (without going through the message bus daemon)
428:
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
1185:
project rewrote libdbus in an effort to simplify the code, but it also resulted in a significant increase of the overall D-Bus performance. In preliminary benchmarks,
448:
can be propagated and interpreted by any currently-running music player, which can react by muting the volume or by pausing playback until the call is finished.
848:
that plays the bus role and to which the rest of the processes connect using any D-Bus point-to-point communications library. This process is also known as the
1089:
The usage of D-Bus is steadily expanding beyond the initial scope of desktop environments to cover an increasing amount of system services. For instance, the
2946: 716:
D-Bus was conceived as a generic, high-level inter-process communication system. To accomplish such goals, D-Bus communications are based on the exchange of
2061:
There are also some reimplementations of the D-Bus protocol for languages such as C#, Java, and Ruby. These do not use the libdbus reference implementation
852:, since it is responsible for routing messages from any process connected to the bus to another. In the reference implementation this role is performed by 2002:
we are working on moving things to a true user bus, of which there is only one per user on a system, regardless how many times that user happens to log in
598:. The object path is selected by the requesting process, and must be unique in the context of that bus connection. An example of a valid object path is 3234: 348:
respectively). The components of these desktop environments are normally distributed in many processes, each one providing only a few—usually one—
1000:
or user initialization stage nor need they consume memory or other resources when not being used. This feature was originally implemented using
806:
Most existing D-Bus implementations follow the architecture of the reference implementation. This architecture consists of two main components:
704:. These operations are used for example to provide information about the status of the bus, or to manage the request and release of additional 594:, a string of numbers, letters and underscores separated and prefixed by the slash character, called that because of their resemblance to 1209:
kdbus is implemented as a character device driver. All communication between processes take place over special character device nodes in
926:
the communications library that decides what transport methods it supports. For instance, in Unix-like operating systems such as Linux
3079: 2939: 2617: 1313: 977:
defines a different bus address for every bus instance it provides. These addresses are defined in the daemon's configuration files.
1620: 436:
D-Bus provides additional or simplifies existing functionality to the applications, including information-sharing, modularity and
3135: 3214: 1165:. GDBus is not a wrapper of libdbus, but a complete and independent reimplementation of the D-Bus specification and protocol. 413:, available to all users and processes of the system, that provides access to system services (i.e. services provided by the 691:
The D-Bus specification defines a number of administrative bus operations (called "bus services") to be performed using the
646:
member is undefined or erroneous. An emitted signal, on the other hand, must always indicate to which interface it belongs.
3224: 3199: 2932: 1294: 958:
pairs. This way, for example, it can provide authentication information to a specific type of connection that supports it.
736:
Example of one-to-one request-response message exchange to invoke a method over D-Bus. Here the client process invokes the
787:
of various types, such as integers and floating-point numbers, strings, compound types, and so on, also referred to as
1323: 398: 893:
over a Unix domain socket. They can use it to exchange messages directly. In this scenario bus names are not required.
3094: 2700: 1427: 1194: 841:
process acting as a D-Bus message bus daemon. Every process connected to the bus keeps one D-Bus connection with it.
2595: 2310: 185: 2680: 1027: 433:
user. The latter restriction may change in the future if all user sessions are combined into a single user bus.
3229: 3099: 1308: 1262: 1044: 788: 726: 345: 178: 88: 2626: 2610: 2340: 1333: 1036: 1021: 935: 2391: 1802: 405:
Linux desktop environments take advantage of the D-Bus facilities by instantiating multiple buses, notably:
1086:. HAL used D-Bus to export information about hardware that has been added to or removed from the computer. 543:. That does not mean that D-Bus is somehow limited to OOP languages—in fact, the most used implementation ( 485: 114: 1872:
Pennington, Havoc; Carlsson, Anders; Larsson, Alexander; Herzberg, Sven; McVittie, Simon; Zeuthen, David.
1132:
Although there are several implementations of D-Bus, the most widely used is the reference implementation
495:
When a process sets up a connection to a bus, the bus assigns to the connection a special bus name called
2955: 2887: 1274: 1270: 1266: 1258: 1242: 1225: 627: 484:. A bus name consists of two or more dot-separated strings of letters, digits, dashes, and underscores—a 321: 259: 193: 66: 667:: provides an introspection mechanism by which a client process can, at run-time, get a description (in 2228: 2130: 1602:
D-Bus is designed for use as a unified middleware layer underneath the main free desktop environments.
1328: 418: 216: 3074: 991:
improves the feature set already provided by D-Bus itself with additional functionality. For example,
3089: 818:
in order to exchange messages between two processes. In the reference implementation this library is
634:. Despite their similarity, interface names and bus names should not be mistaken. A D-Bus object can 562:
Browsing the existing bus names, objects, interfaces, methods and signals in a D-Bus bus using D-Feet
2178: 3219: 3204: 2829: 2603: 548: 301: 152: 899: 3021: 2527: 3056: 2854: 1363: 1318: 1106: 678: 552: 2475: 2204: 1990: 1725: 965:
is used to implement a D-Bus bus, all processes that want to connect to the bus must know the
2152: 1338: 883: 756:
The bus supports two modes of interchanging messages between a client and a service process:
722: 220: 1384: 1228:
mechanism. Beside performance improvements, kdbus would have advantages arising from other
2892: 2519: 1303: 1205: 1137: 725:
mechanism than to a classic IPC mechanism, with its own type definition system and its own
540: 437: 353: 297: 201: 2574: 1873: 1624: 8: 3150: 2791: 2695: 2104: 1119:, whose policy authority daemon is implemented as a service connected to the system bus. 1111:
and systemd, and is also promoting traditional system daemons to D-Bus services, such as
950:
objects, and therefore they can be identified by a filename, so a valid address would be
811: 337: 282: 263: 1189:
found that the systemd's D-Bus library increased performance by 360%. By version 221 of
138: 3209: 3155: 3061: 3044: 2968: 2874: 2844: 2690: 2685: 2471: 2387: 2336: 931: 845: 651: 452: 325: 196: 2710: 2590: 2585: 2253: 1968: 1747: 1560: 1423: 771: 2625: 2541: 1649: 480:
Every connection to a bus is identified in the context of D-Bus by what is called a
2972: 2913: 2804: 2733: 2638: 2282: 1254: 1233: 761: 414: 275: 211: 159: 2216:
Since systemd's inception it has been the IPC system it exposes its interfaces on.
578:
that the object can emit. Methods and signals are collectively referred to as the
3016: 2996: 2630: 1827: 1773: 1586: 1495: 1417: 1166: 537: 267: 2782: 2579: 1224:
was a project that aimed to reimplement D-Bus as a kernel-mediated peer-to-peer
3039: 3011: 2908: 1150: 1090: 1083: 1072: 460: 164: 123: 2924: 1404: 3193: 3130: 3026: 3001: 2986: 2023: 1699: 815: 795: 784: 305: 266:
running concurrently on the same machine. D-Bus was developed as part of the
2076: 2045: 1422:(2 ed.). San Francisco: No Starch Press (published 2014). p. 305. 20: 3031: 2705: 2568: 2520:"Keynote: A Fireside Chat with Greg Kroah-Hartman, Linux Foundation Fellow" 2018: 1229: 1064: 456: 395: 232: 1674: 732: 671:
format) of the interfaces, methods and signals that the object implements.
455:
to integrate different components of a user application. For instance, an
364: 3069: 607: 464: 356:
or by other components of the desktop environment to perform their tasks.
721:
to reject any ill-formed message. In this regard, D-Bus is closer to an
3178: 3104: 3006: 2814: 2763: 2758: 2654: 2314: 1098: 947: 376: 32: 440:. For example, information on an incoming voice-call received through 2819: 2799: 603: 595: 441: 3168: 2834: 2824: 2809: 2659: 2494: 2446: 2427: 2409: 2362: 590:
as many D-Bus objects as it wants. Each object is identified by an
402:
D-Bus incurs at least a 2.5x performance loss over one-to-one IPC.
3140: 3109: 2882: 2768: 2743: 2523: 2498: 2450: 2431: 2413: 2366: 1190: 1182: 1102: 1101:
sound server use D-Bus to provide part or all of their services.
1060: 1017: 1005: 309: 37: 1173:(version 4.14), which are also based on GTK+ 3, also use GDBus. 459:
can communicate through the session bus to share data between a
2849: 2748: 2717: 2675: 1416:
Ward, Brian (2004). "14: A brief survey of the Linux desktop".
1116: 1112: 1071:. In GNOME it has gradually replaced most parts of the earlier 1001: 677:: allows a D-Bus object to expose the underlying native object 833: 3173: 3114: 2839: 1871: 1343: 1214: 1162: 1158: 1094: 1068: 1056: 1052: 1016:
D-Bus was started in 2002 by Havoc Pennington, Alex Larsson (
630:
interfaces notation. An example of a valid interface name is
503:(the characters after the colon have no particular meaning). 445: 341: 329: 286: 279: 271: 174: 515:
The idea behind these additional bus names, commonly called
3125: 3120: 2991: 2964: 2753: 1170: 1154: 1076: 997: 1803:"Desktop Environment - an overview | ScienceDirect Topics" 1238: 1082:
One of the earlier adopters was the (nowadays deprecated)
2864: 2859: 1186: 1048: 934:
as the underlying transport method, but it also supports
889:
Process A and B have a one-to-one D-Bus connection using
668: 558: 333: 290: 661:: provides a way to test if a D-Bus connection is alive. 2097: 1105:
uses the D-Bus wire protocol for communication between
2428:"Documentation/kdbus.txt (from the initial patch set)" 862:. Another implementation of the message bus daemon is 2131:"[announce] D-Bus 1.0.0 "Blue Bird" released" 681:
or attributes, or simulate them if it does not exist.
586:
A process connected to a D-Bus bus can request it to
262:
mechanism that allows communication between multiple
19:"DBus" redirects here. For the Tibetan province, see 1966: 1745: 1284: 566:
In D-Bus, a process offers its services by exposing
1967:Pennington, Havoc; Wheeler, David; Walters, Colin. 1746:Pennington, Havoc; Wheeler, David; Walters, Colin. 2464: 2363:"ALS: Linux inter-process communication and kdbus" 2196: 2071: 2069: 1982: 1055:release. An implementation of D-Bus supports most 1020:) and Anders Carlsson. The version 1.0—considered 324:(IPC) mechanism initially designed to replace the 2146: 2144: 1419:How Linux Works: What Every Superuser Should Know 1257:for D-Bus have been developed, such as those for 1004:helpers, but nowadays it can also be provided by 3191: 2341:"[HEADSUP] libsystemd-bus + kdbus plans" 2954: 2329: 2246: 2066: 2038: 1717: 1614: 1612: 1610: 1554: 1552: 1550: 1548: 1546: 1544: 1542: 1540: 1538: 1536: 352:. These services may be used by regular client 2170: 2141: 1534: 1532: 1530: 1528: 1526: 1524: 1522: 1520: 1518: 1516: 2940: 2611: 2534: 2470: 1867: 1865: 1863: 1765: 1489: 1487: 1485: 1483: 1481: 1479: 1477: 1475: 1473: 1471: 1469: 1149:GDBus is an implementation of D-Bus based on 523:bus name, regardless of which process it is. 296:The freedesktop.org project also developed a 2356: 2354: 2012: 2010: 1962: 1960: 1958: 1956: 1954: 1952: 1950: 1948: 1946: 1944: 1942: 1940: 1938: 1936: 1934: 1932: 1930: 1928: 1926: 1924: 1922: 1920: 1918: 1916: 1914: 1861: 1859: 1857: 1855: 1853: 1851: 1849: 1847: 1845: 1843: 1607: 1578: 1467: 1465: 1463: 1461: 1459: 1457: 1455: 1453: 1451: 1449: 2486: 2438: 2380: 1912: 1910: 1908: 1906: 1904: 1902: 1900: 1898: 1896: 1894: 1739: 1513: 2947: 2933: 2618: 2604: 2386: 2335: 2221: 2202: 1988: 1723: 137: 2351: 2150: 2007: 1840: 1771: 1692: 1584: 1493: 1446: 1314:Common Object Request Broker Architecture 1035:plays a significant role in modern Linux 3235:Software using the Academic Free License 2128: 2122: 1891: 1618: 1204: 1026: 832: 731: 557: 1644: 1642: 1558: 1011: 711: 3192: 2492: 2476:"[GIT PULL] kdbus for 4.1-rc1" 2444: 2275: 2151:Molkentin, Daniel (12 November 2006). 1667: 1024:stable—was released in November 2006. 744:object from the service process named 470: 300:software library called libdbus, as a 72:1.14.10 / September 1, 2023 2928: 2599: 308:/KDE), dbus-java and sd-bus (part of 2445:Corbet, Jonathan (13 January 2014). 2360: 2203:Poettering, Lennart (19 June 2015). 2016: 1989:Poettering, Lennart (19 June 2015). 1724:Poettering, Lennart (19 June 2015). 1639: 1415: 1295:Free and open-source software portal 1248: 905:Process A and B both connected to a 794:The D-Bus specification defines the 488:. An example of a valid bus name is 278:to standardize services provided by 1047:system used by versions 2 and 3 of 665:org.freedesktop.DBus.Introspectable 600:/org/kde/kspread/sheets/3/cells/4/5 328:communications systems used by the 94:1.15.8 / August 21, 2023 13: 2493:Corbet, Jonathan (22 April 2015). 1623:. Red Hat Magazine. Archived from 1324:Distributed Component Object Model 1122: 1059:operating systems, and a port for 858:, which itself is built on top of 768:information if there was an error. 685:org.freedesktop.DBus.ObjectManager 14: 3246: 2888:Open Collaboration Services (OCS) 2562: 2392:"[ANNOUNCE] systemd v221" 2176: 1772:Vermeulen, Jeroen (14 Jul 2013). 1585:Vermeulen, Jeroen (14 Jul 2013). 1494:Vermeulen, Jeroen (14 Jul 2013). 1115:. Another heavy user of D-Bus is 1051:, D-Bus has replaced DCOP in the 654:. These standard interfaces are: 610:of the project as a prefix (e.g. 2781: 2530:from the original on 2021-12-21. 2153:"D-Bus 1.0 "Blue Bird" Released" 1287: 898: 882: 810:a point-to-point communications 375: 363: 2512: 2420: 2402: 2303: 2205:"The new sd-bus API of systemd" 2017:Love, Robert (5 January 2005). 1991:"The new sd-bus API of systemd" 1819: 1795: 1726:"The new sd-bus API of systemd" 1619:Palmieri, John (January 2005). 961:When a message bus daemon like 675:org.freedesktop.DBus.Properties 530: 1409: 1398: 1385:"NEWS file for current branch" 1377: 1356: 1309:Common Language Infrastructure 1075:mechanism. It is also used by 1037:graphical desktop environments 632:org.freedesktop.Introspectable 490:org.freedesktop.NetworkManager 1: 3215:Free network-related software 2627:Free and open-source software 2129:Palmieri, John (9 Nov 2006). 1350: 1334:Java remote method invocation 1253:Several programming language 382:The same processes with D-Bus 2571:home page at Freedesktop.org 1559:Cocagne, Tom (August 2012). 952:unix:path=/tmp/.hiddensocket 801: 475: 451:D-Bus can also be used as a 7: 3225:Inter-process communication 3200:Application layer protocols 2956:Inter-process communication 2582:on the Freedesktop.org wiki 1280: 1243:inter-process communication 1226:inter-process communication 868:, which is built on top of 824:. In other implementations 695:object that resides in the 322:inter-process communication 315: 260:message-oriented middleware 49:; 17 years ago 10: 3251: 2361:Edge, Jake (30 May 2013). 1329:Foreign function interface 1127: 1084:Hardware Abstraction Layer 1043:Heavily influenced by the 946:. Unix-domain sockets are 814:that implements the D-Bus 18: 3149: 3055: 3002:Message queue and mailbox 2979: 2962: 2901: 2873: 2790: 2779: 2726: 2668: 2647: 2637: 2229:"Polkit reference manual" 2105:"D-BUS System Activation" 1700:"DBus-Java Documentation" 1176: 973:or equivalent libraries. 749: 659:org.freedesktop.DBus.Peer 631: 599: 574:that can be invoked, and 521:org.freedesktop.timedate1 500: 489: 227: 210: 184: 170: 158: 148: 113: 109: 87: 65: 61: 43: 31: 2447:"The unveiling of kdbus" 2410:"The unveiling of kdbus" 1364:"D-Bus 1.14.x changelog" 1200: 1144: 606:them using the reserved 302:reference implementation 2179:"Introduction To D-BUS" 1774:"Introduction to D-Bus" 1587:"Introduction to D-Bus" 1496:"Introduction to D-Bus" 1405:Havoc's Blog July, 2007 1157:, aiming to be used by 417:and also by any system 370:Processes without D-Bus 96:; 13 months ago 74:; 13 months ago 2855:Video Acceleration API 1319:Component Object Model 1218: 1063:exists. It is used by 1040: 842: 753: 563: 553:procedural programming 497:unique connection name 270:project, initiated by 3230:Remote procedure call 2580:Introduction to D-Bus 1874:"D-Bus Specification" 1807:www.sciencedirect.com 1339:Remote procedure call 1208: 1197:was declared stable. 1030: 998:system initialization 836: 735: 693:/org/freedesktop/DBus 596:Unix filesystem paths 570:. These objects have 561: 541:programming languages 2283:"Migrating to GDBus" 1304:Linux on the desktop 1241:, as a more generic 1138:programming language 1097:bluetooth stack and 1012:History and adoption 742:/org/example/object1 712:Communications model 702:org.freedesktop.DBus 697:org.freedesktop.DBus 438:privilege separation 338:desktop environments 298:free and open-source 283:desktop environments 202:Linux on the desktop 2629:projects hosted by 2575:D-Bus specification 2526:. 18 October 2016. 2472:Kroah-Hartman, Greg 2388:Poettering, Lennart 2337:Poettering, Lennart 932:Unix domain sockets 783:which supports the 486:reverse domain name 471:D-Bus specification 28: 3151:Software libraries 2992:Memory-mapped file 2019:"Get on the D-BUS" 1627:on 23 October 2015 1219: 1041: 993:service activation 850:message bus daemon 843: 754: 564: 326:software component 47:November 2006 26: 3187: 3186: 3117:(various methods) 2973:computer programs 2922: 2921: 2777: 2776: 1249:Language bindings 1232:features such as 772:Publish/subscribe 650:clients, such as 394:D-Bus provides a 249: 248: 3242: 2949: 2942: 2935: 2926: 2925: 2914:Portland Project 2785: 2645: 2644: 2620: 2613: 2606: 2597: 2596: 2557: 2556: 2554: 2552: 2542:"D-Bus Bindings" 2538: 2532: 2531: 2516: 2510: 2509: 2507: 2505: 2495:"The kdbuswreck" 2490: 2484: 2483: 2468: 2462: 2461: 2459: 2457: 2442: 2436: 2435: 2424: 2418: 2417: 2406: 2400: 2399: 2384: 2378: 2377: 2375: 2373: 2358: 2349: 2348: 2333: 2327: 2326: 2324: 2322: 2313:. Archived from 2307: 2301: 2300: 2295: 2293: 2279: 2273: 2272: 2270:implementations. 2266: 2264: 2254:"What is D-Bus?" 2250: 2244: 2243: 2241: 2239: 2225: 2219: 2218: 2213: 2211: 2200: 2194: 2193: 2191: 2189: 2174: 2168: 2167: 2165: 2163: 2148: 2139: 2138: 2126: 2120: 2119: 2117: 2115: 2101: 2095: 2094: 2089: 2087: 2077:"What is D-Bus?" 2073: 2064: 2063: 2058: 2056: 2046:"What is D-Bus?" 2042: 2036: 2035: 2033: 2031: 2014: 2005: 2004: 1999: 1997: 1986: 1980: 1979: 1977: 1975: 1969:"D-Bus Tutorial" 1964: 1889: 1888: 1886: 1884: 1869: 1838: 1837: 1835: 1834: 1823: 1817: 1816: 1814: 1813: 1799: 1793: 1792: 1786: 1784: 1769: 1763: 1762: 1756: 1754: 1748:"D-Bus Tutorial" 1743: 1737: 1736: 1734: 1732: 1721: 1715: 1714: 1712: 1710: 1696: 1690: 1689: 1687: 1685: 1671: 1665: 1664: 1662: 1660: 1646: 1637: 1636: 1634: 1632: 1616: 1605: 1604: 1599: 1597: 1582: 1576: 1575: 1573: 1571: 1565:pythonhosted.org 1556: 1511: 1510: 1508: 1506: 1491: 1444: 1443: 1437: 1436: 1413: 1407: 1402: 1396: 1395: 1393: 1391: 1381: 1375: 1374: 1372: 1370: 1360: 1297: 1292: 1291: 1290: 1212: 1109: 1093:network daemon, 1034: 990: 984: 976: 972: 964: 957: 953: 929: 924: 912: 908: 902: 892: 886: 872: 866: 861: 856: 840: 827: 822: 762:request-response 751: 747: 743: 739: 703: 698: 694: 686: 676: 666: 660: 633: 613: 601: 547:) is written in 546: 522: 517:well-known names 502: 491: 415:operating system 379: 367: 276:Havoc Pennington 245: 242: 240: 238: 236: 234: 160:Operating system 141: 136: 133: 131: 129: 127: 125: 104: 102: 97: 82: 80: 75: 57: 55: 50: 29: 25: 16:Linux middleware 3250: 3249: 3245: 3244: 3243: 3241: 3240: 3239: 3220:Freedesktop.org 3190: 3189: 3188: 3183: 3153: 3145: 3059: 3051: 2997:Message passing 2975: 2967:exchange among 2958: 2953: 2923: 2918: 2897: 2869: 2786: 2773: 2722: 2664: 2633: 2631:freedesktop.org 2624: 2565: 2560: 2550: 2548: 2546:FreeDesktop.org 2540: 2539: 2535: 2518: 2517: 2513: 2503: 2501: 2491: 2487: 2482:(Mailing list). 2474:(13 Apr 2015). 2469: 2465: 2455: 2453: 2443: 2439: 2426: 2425: 2421: 2408: 2407: 2403: 2398:(Mailing list). 2390:(19 Jun 2015). 2385: 2381: 2371: 2369: 2359: 2352: 2347:(Mailing list). 2339:(20 Mar 2013). 2334: 2330: 2320: 2318: 2317:on 29 July 2019 2311:"MATE: Roadmap" 2309: 2308: 2304: 2291: 2289: 2287:GNOME Developer 2281: 2280: 2276: 2262: 2260: 2258:FreeDesktop.org 2252: 2251: 2247: 2237: 2235: 2233:FreeDesktop.org 2227: 2226: 2222: 2209: 2207: 2201: 2197: 2187: 2185: 2175: 2171: 2161: 2159: 2149: 2142: 2137:(Mailing list). 2127: 2123: 2113: 2111: 2109:FreeDesktop.org 2103: 2102: 2098: 2085: 2083: 2081:FreeDesktop.org 2075: 2074: 2067: 2054: 2052: 2050:FreeDesktop.org 2044: 2043: 2039: 2029: 2027: 2015: 2008: 1995: 1993: 1987: 1983: 1973: 1971: 1965: 1892: 1882: 1880: 1878:Freedesktop.org 1870: 1841: 1832: 1830: 1826: 1824: 1820: 1811: 1809: 1801: 1800: 1796: 1782: 1780: 1778:FreeDesktop.org 1770: 1766: 1752: 1750: 1744: 1740: 1730: 1728: 1722: 1718: 1708: 1706: 1704:FreeDesktop.org 1698: 1697: 1693: 1683: 1681: 1675:"QtDBus module" 1673: 1672: 1668: 1658: 1656: 1654:GNOME developer 1648: 1647: 1640: 1630: 1628: 1617: 1608: 1595: 1593: 1591:FreeDesktop.org 1583: 1579: 1569: 1567: 1561:"DBus Overview" 1557: 1514: 1504: 1502: 1500:FreeDesktop.org 1492: 1447: 1434: 1432: 1430: 1414: 1410: 1403: 1399: 1389: 1387: 1383: 1382: 1378: 1368: 1366: 1362: 1361: 1357: 1353: 1348: 1293: 1288: 1286: 1283: 1251: 1210: 1203: 1179: 1147: 1130: 1125: 1123:Implementations 1107: 1067:4 and later by 1032: 1014: 988: 982: 974: 970: 962: 955: 951: 930:typically uses 927: 922: 919: 918: 917: 916: 915: 910: 906: 903: 895: 894: 890: 887: 870: 864: 859: 854: 838: 825: 820: 804: 746:org.example.foo 745: 741: 737: 714: 701: 696: 692: 684: 674: 664: 658: 611: 544: 538:object oriented 533: 520: 478: 473: 392: 391: 390: 389: 385: 384: 383: 380: 372: 371: 368: 318: 268:freedesktop.org 231: 206: 177: 144: 122: 105: 100: 98: 95: 89:Preview release 83: 78: 76: 73: 53: 51: 48: 44:Initial release 24: 17: 12: 11: 5: 3248: 3238: 3237: 3232: 3227: 3222: 3217: 3212: 3207: 3202: 3185: 3184: 3182: 3181: 3176: 3171: 3166: 3160: 3158: 3147: 3146: 3144: 3143: 3138: 3133: 3128: 3123: 3118: 3112: 3107: 3102: 3097: 3092: 3087: 3082: 3077: 3072: 3066: 3064: 3053: 3052: 3050: 3049: 3048: 3047: 3042: 3034: 3029: 3024: 3019: 3014: 3012:Anonymous pipe 3009: 3004: 2999: 2994: 2989: 2983: 2981: 2977: 2976: 2963: 2960: 2959: 2952: 2951: 2944: 2937: 2929: 2920: 2919: 2917: 2916: 2911: 2909:Create Project 2905: 2903: 2899: 2898: 2896: 2895: 2890: 2885: 2879: 2877: 2871: 2870: 2868: 2867: 2862: 2857: 2852: 2847: 2842: 2837: 2832: 2827: 2822: 2817: 2812: 2807: 2802: 2796: 2794: 2788: 2787: 2780: 2778: 2775: 2774: 2772: 2771: 2766: 2761: 2756: 2751: 2746: 2741: 2736: 2730: 2728: 2724: 2723: 2721: 2720: 2715: 2714: 2713: 2703: 2698: 2693: 2688: 2683: 2678: 2672: 2670: 2666: 2665: 2663: 2662: 2657: 2651: 2649: 2642: 2635: 2634: 2623: 2622: 2615: 2608: 2600: 2594: 2593: 2588: 2586:D-Bus Tutorial 2583: 2577: 2572: 2564: 2563:External links 2561: 2559: 2558: 2533: 2511: 2485: 2463: 2437: 2419: 2401: 2379: 2350: 2328: 2302: 2274: 2245: 2220: 2195: 2177:Seigo, Aaron. 2169: 2140: 2121: 2096: 2065: 2037: 2006: 1981: 1890: 1839: 1818: 1794: 1764: 1738: 1716: 1691: 1666: 1638: 1621:"Get on D-BUS" 1606: 1577: 1512: 1445: 1428: 1408: 1397: 1376: 1354: 1352: 1349: 1347: 1346: 1341: 1336: 1331: 1326: 1321: 1316: 1311: 1306: 1300: 1299: 1298: 1282: 1279: 1250: 1247: 1202: 1199: 1178: 1175: 1146: 1143: 1129: 1126: 1124: 1121: 1091:NetworkManager 1013: 1010: 904: 897: 896: 888: 881: 880: 879: 878: 877: 876: 875: 846:daemon process 830: 803: 800: 776: 775: 769: 740:method of the 713: 710: 689: 688: 682: 672: 662: 532: 529: 477: 474: 472: 469: 461:word processor 430: 429: 422: 387: 386: 381: 374: 373: 369: 362: 361: 360: 359: 358: 317: 314: 247: 246: 229: 225: 224: 214: 208: 207: 205: 204: 199: 190: 188: 182: 181: 172: 168: 167: 165:Cross-platform 162: 156: 155: 150: 146: 145: 143: 142: 119: 117: 111: 110: 107: 106: 93: 91: 85: 84: 71: 69: 67:Stable release 63: 62: 59: 58: 45: 41: 40: 35: 15: 9: 6: 4: 3: 2: 3247: 3236: 3233: 3231: 3228: 3226: 3223: 3221: 3218: 3216: 3213: 3211: 3208: 3206: 3205:C++ libraries 3203: 3201: 3198: 3197: 3195: 3180: 3177: 3175: 3172: 3170: 3167: 3165: 3162: 3161: 3159: 3157: 3152: 3148: 3142: 3139: 3137: 3134: 3132: 3129: 3127: 3124: 3122: 3119: 3116: 3113: 3111: 3108: 3106: 3103: 3101: 3098: 3096: 3093: 3091: 3088: 3086: 3083: 3081: 3078: 3076: 3073: 3071: 3068: 3067: 3065: 3063: 3058: 3054: 3046: 3043: 3041: 3038: 3037: 3035: 3033: 3030: 3028: 3027:Shared memory 3025: 3023: 3020: 3018: 3015: 3013: 3010: 3008: 3005: 3003: 3000: 2998: 2995: 2993: 2990: 2988: 2985: 2984: 2982: 2978: 2974: 2970: 2966: 2961: 2957: 2950: 2945: 2943: 2938: 2936: 2931: 2930: 2927: 2915: 2912: 2910: 2907: 2906: 2904: 2900: 2894: 2891: 2889: 2886: 2884: 2881: 2880: 2878: 2876: 2872: 2866: 2863: 2861: 2858: 2856: 2853: 2851: 2848: 2846: 2843: 2841: 2838: 2836: 2833: 2831: 2828: 2826: 2823: 2821: 2818: 2816: 2813: 2811: 2808: 2806: 2803: 2801: 2798: 2797: 2795: 2793: 2789: 2784: 2770: 2767: 2765: 2762: 2760: 2757: 2755: 2752: 2750: 2747: 2745: 2742: 2740: 2737: 2735: 2732: 2731: 2729: 2725: 2719: 2716: 2712: 2709: 2708: 2707: 2704: 2702: 2699: 2697: 2694: 2692: 2689: 2687: 2684: 2682: 2679: 2677: 2674: 2673: 2671: 2667: 2661: 2658: 2656: 2653: 2652: 2650: 2646: 2643: 2640: 2636: 2632: 2628: 2621: 2616: 2614: 2609: 2607: 2602: 2601: 2598: 2592: 2591:DBus Overview 2589: 2587: 2584: 2581: 2578: 2576: 2573: 2570: 2567: 2566: 2547: 2543: 2537: 2529: 2525: 2521: 2515: 2500: 2496: 2489: 2481: 2477: 2473: 2467: 2452: 2448: 2441: 2434:. 2014-11-04. 2433: 2429: 2423: 2416:. 2014-01-13. 2415: 2411: 2405: 2397: 2396:systemd-devel 2393: 2389: 2383: 2368: 2364: 2357: 2355: 2346: 2345:systemd-devel 2342: 2338: 2332: 2316: 2312: 2306: 2299: 2288: 2284: 2278: 2271: 2259: 2255: 2249: 2234: 2230: 2224: 2217: 2206: 2199: 2184: 2180: 2173: 2158: 2154: 2147: 2145: 2136: 2132: 2125: 2110: 2106: 2100: 2093: 2082: 2078: 2072: 2070: 2062: 2051: 2047: 2041: 2026: 2025: 2024:Linux Journal 2020: 2013: 2011: 2003: 1992: 1985: 1970: 1963: 1961: 1959: 1957: 1955: 1953: 1951: 1949: 1947: 1945: 1943: 1941: 1939: 1937: 1935: 1933: 1931: 1929: 1927: 1925: 1923: 1921: 1919: 1917: 1915: 1913: 1911: 1909: 1907: 1905: 1903: 1901: 1899: 1897: 1895: 1879: 1875: 1868: 1866: 1864: 1862: 1860: 1858: 1856: 1854: 1852: 1850: 1848: 1846: 1844: 1829: 1822: 1808: 1804: 1798: 1791: 1779: 1775: 1768: 1761: 1749: 1742: 1727: 1720: 1705: 1701: 1695: 1680: 1676: 1670: 1655: 1651: 1645: 1643: 1626: 1622: 1615: 1613: 1611: 1603: 1592: 1588: 1581: 1566: 1562: 1555: 1553: 1551: 1549: 1547: 1545: 1543: 1541: 1539: 1537: 1535: 1533: 1531: 1529: 1527: 1525: 1523: 1521: 1519: 1517: 1501: 1497: 1490: 1488: 1486: 1484: 1482: 1480: 1478: 1476: 1474: 1472: 1470: 1468: 1466: 1464: 1462: 1460: 1458: 1456: 1454: 1452: 1450: 1442: 1431: 1429:9781593275679 1425: 1421: 1420: 1412: 1406: 1401: 1386: 1380: 1365: 1359: 1355: 1345: 1342: 1340: 1337: 1335: 1332: 1330: 1327: 1325: 1322: 1320: 1317: 1315: 1312: 1310: 1307: 1305: 1302: 1301: 1296: 1285: 1278: 1276: 1272: 1268: 1264: 1260: 1256: 1246: 1244: 1240: 1235: 1231: 1227: 1223: 1216: 1207: 1198: 1196: 1193:, the sd-bus 1192: 1188: 1184: 1181:In 2013, the 1174: 1172: 1168: 1164: 1160: 1156: 1152: 1142: 1139: 1135: 1120: 1118: 1114: 1110: 1104: 1100: 1096: 1092: 1087: 1085: 1080: 1078: 1074: 1070: 1066: 1062: 1058: 1054: 1050: 1046: 1038: 1029: 1025: 1023: 1019: 1009: 1007: 1003: 999: 994: 986: 978: 968: 959: 949: 945: 939: 937: 933: 901: 885: 873: 867: 857: 851: 847: 835: 831: 823: 817: 816:wire protocol 813: 809: 808: 807: 799: 797: 796:wire protocol 792: 790: 786: 785:serialization 782: 773: 770: 767: 763: 759: 758: 757: 752:) in the bus. 734: 730: 728: 724: 719: 709: 707: 683: 680: 673: 670: 663: 657: 656: 655: 653: 652:introspection 647: 643: 641: 637: 629: 628:Java language 624: 619: 615: 609: 605: 597: 593: 589: 584: 581: 577: 573: 569: 560: 556: 554: 550: 542: 539: 528: 524: 518: 513: 510: 504: 498: 493: 487: 483: 468: 466: 462: 458: 454: 449: 447: 443: 439: 434: 427: 423: 420: 416: 412: 408: 407: 406: 403: 400: 397: 378: 366: 357: 355: 351: 347: 343: 339: 335: 331: 327: 323: 313: 311: 307: 303: 299: 294: 292: 288: 284: 281: 277: 273: 269: 265: 261: 257: 253: 244: 230: 226: 222: 218: 215: 213: 209: 203: 200: 198: 195: 192: 191: 189: 187: 183: 180: 176: 173: 169: 166: 163: 161: 157: 154: 151: 147: 140: 135: 121: 120: 118: 116: 112: 108: 92: 90: 86: 70: 68: 64: 60: 46: 42: 39: 36: 34: 30: 22: 3163: 3084: 3070:Apple events 2738: 2706:X.Org Server 2549:. Retrieved 2545: 2536: 2514: 2502:. Retrieved 2488: 2480:linux-kernel 2479: 2466: 2454:. Retrieved 2440: 2422: 2404: 2395: 2382: 2370:. Retrieved 2344: 2331: 2319:. Retrieved 2315:the original 2305: 2297: 2290:. Retrieved 2286: 2277: 2268: 2261:. Retrieved 2257: 2248: 2236:. Retrieved 2232: 2223: 2215: 2208:. Retrieved 2198: 2186:. Retrieved 2183:KDE TechBase 2182: 2172: 2160:. Retrieved 2156: 2134: 2124: 2112:. Retrieved 2108: 2099: 2091: 2084:. Retrieved 2080: 2060: 2053:. Retrieved 2049: 2040: 2028:. Retrieved 2022: 2001: 1994:. Retrieved 1984: 1972:. Retrieved 1881:. Retrieved 1877: 1831:. Retrieved 1821: 1810:. Retrieved 1806: 1797: 1788: 1781:. Retrieved 1777: 1767: 1758: 1751:. Retrieved 1741: 1729:. Retrieved 1719: 1707:. Retrieved 1703: 1694: 1682:. Retrieved 1678: 1669: 1657:. Retrieved 1653: 1629:. Retrieved 1625:the original 1601: 1594:. Retrieved 1590: 1580: 1568:. Retrieved 1564: 1503:. Retrieved 1499: 1439: 1433:. Retrieved 1418: 1411: 1400: 1388:. Retrieved 1379: 1367:. Retrieved 1358: 1252: 1230:Linux kernel 1221: 1220: 1180: 1167:MATE Desktop 1153:included in 1148: 1133: 1131: 1088: 1081: 1042: 1015: 992: 987: 979: 966: 960: 943: 940: 920: 869: 863: 853: 849: 819: 805: 793: 780: 777: 765: 755: 717: 715: 705: 690: 648: 644: 639: 635: 622: 620: 616: 591: 587: 585: 579: 575: 571: 567: 565: 534: 531:Object model 525: 516: 514: 508: 505: 496: 494: 481: 479: 457:office suite 450: 435: 431: 425: 410: 404: 396:software-bus 393: 354:applications 349: 320:D-Bus is an 319: 295: 255: 254:(short for " 251: 250: 235:.freedesktop 126:.freedesktop 33:Developer(s) 2114:18 February 1828:"D-Bus FAQ" 1760:particular. 1390:30 December 1369:30 December 1151:GIO streams 1141:confusion. 1033:dbus-daemon 989:dbus-daemon 983:dbus-daemon 975:dbus-daemon 967:bus address 963:dbus-daemon 936:TCP sockets 907:dbus-daemon 865:dbus-broker 855:dbus-daemon 839:dbus-daemon 781:wire format 760:One-to-one 708:bus names. 608:domain name 592:object path 465:spreadsheet 426:session bus 399:abstraction 256:Desktop Bus 171:Predecessor 27:Desktop Bus 3194:Categories 3156:frameworks 3105:OpenBinder 3007:Named pipe 2875:Frameworks 2815:Fontconfig 2764:pkg-config 2759:PackageKit 2655:PulseAudio 2641:components 2372:21 October 2321:31 January 2292:21 October 2238:3 November 2210:21 October 2188:3 November 2162:3 November 2086:29 October 2055:29 October 2030:14 October 1996:21 October 1974:21 October 1883:22 October 1833:2024-08-06 1825:Answer 7. 1812:2023-08-24 1790:platforms. 1753:21 October 1731:21 October 1679:Qt Project 1631:3 November 1570:22 October 1505:22 October 1435:2016-11-07 1351:References 1234:namespaces 1211:/dev/kdbus 1099:PulseAudio 948:filesystem 844:a special 829:processes. 789:marshaling 727:marshaling 706:well-known 679:properties 555:language. 411:system bus 274:developer 149:Written in 115:Repository 101:2023-08-21 79:2023-09-01 3210:Collabora 3062:standards 3057:Protocols 3022:Semaphore 2893:Telepathy 2820:GStreamer 2800:AppStream 2792:Libraries 2551:5 January 2263:5 January 1783:3 October 1709:4 January 1659:4 January 1596:3 October 1108:systemctl 956:key=value 802:Internals 766:exception 636:implement 623:interface 604:namespace 476:Bus model 453:framework 442:Bluetooth 409:a single 264:processes 241:/Software 223: 2.1 3169:libevent 3036:Sockets 2902:Meetings 2835:HarfBuzz 2825:libinput 2810:FreeType 2696:Plymouth 2669:Graphics 2660:PipeWire 2528:Archived 2456:11 April 2157:KDE News 1281:See also 1255:bindings 914:process. 738:SetFoo() 718:messages 612:/org/kde 536:by some 482:bus name 350:services 316:Overview 285:such as 258:") is a 3141:XML-RPC 3110:Sun RPC 3040:Network 2980:Methods 2969:threads 2883:CppUnit 2845:Poppler 2830:Mesa 3D 2769:Systemd 2744:Flatpak 2701:Wayland 2691:nouveau 2686:Enchant 2524:YouTube 2504:29 June 2499:LWN.net 2451:LWN.net 2432:LWN.net 2414:LWN.net 2367:LWN.net 1650:"gdbus" 1191:systemd 1183:systemd 1134:libdbus 1128:libdbus 1103:systemd 1061:Windows 1018:Red Hat 1006:systemd 971:libdbus 944:address 928:libdbus 923:libdbus 911:libdbus 891:libdbus 860:libdbus 826:libdbus 821:libdbus 812:library 580:members 576:signals 572:methods 568:objects 545:libdbus 501::1.1553 419:daemons 310:systemd 228:Website 212:License 99: ( 77: ( 54:2006-11 52: ( 38:Red Hat 3131:Thrift 3032:Signal 2850:Swfdec 2749:Kmscon 2718:Xephyr 2711:Glamor 2676:Compiz 1684:1 June 1426:  1177:sd-bus 1117:Polkit 1113:logind 1073:Bonobo 1002:setuid 909:using 871:sd-bus 588:export 463:and a 336:Linux 217:GPLv2+ 197:daemon 124:gitlab 3174:SIMPL 3164:D-Bus 3115:POSIX 3085:D-Bus 3080:CORBA 2840:Pango 2805:Cairo 2739:D-Bus 2734:Avahi 2727:Other 2648:Sound 2569:D-Bus 1344:XPCOM 1222:kdbus 1215:devfs 1213:(cf. 1201:kdbus 1163:GNOME 1145:GDBus 1095:BlueZ 1069:GNOME 1057:POSIX 1053:KDE 4 750::1.14 446:Skype 342:CORBA 330:GNOME 287:GNOME 280:Linux 272:GNOME 252:D-Bus 243:/dbus 239:/wiki 175:CORBA 132:/dbus 130:/dbus 3179:LINX 3154:and 3136:TIPC 3126:REST 3121:SOAP 3075:COM+ 3060:and 3045:Unix 3017:Pipe 2987:File 2965:Data 2754:luit 2553:2015 2506:2015 2458:2014 2374:2015 2323:2019 2294:2015 2265:2015 2240:2015 2212:2015 2190:2015 2164:2015 2135:dbus 2116:2016 2088:2015 2057:2015 2032:2014 1998:2015 1976:2015 1885:2015 1785:2015 1755:2015 1733:2015 1711:2015 1686:2015 1661:2015 1633:2015 1598:2015 1572:2015 1507:2015 1424:ISBN 1392:2023 1371:2023 1275:Perl 1273:and 1271:Rust 1267:Ruby 1259:Java 1239:BUS1 1171:Xfce 1169:and 1161:and 1159:GTK+ 1155:GLib 1077:Xfce 1045:DCOP 1031:The 921:The 748:(or 640:type 551:, a 509:owns 346:DCOP 344:and 332:and 289:and 237:.org 186:Type 179:DCOP 134:.git 128:.org 21:Dbus 3100:ICE 3095:DCE 3090:DDS 2971:in 2865:Xft 2860:XCB 2681:DRI 1195:API 1187:BMW 1049:KDE 1022:API 723:RPC 669:XML 621:An 614:). 444:or 334:KDE 312:). 291:KDE 233:www 221:AFL 219:or 194:IPC 3196:: 2639:OS 2544:. 2522:. 2497:. 2478:. 2449:. 2430:. 2412:. 2394:. 2365:. 2353:^ 2343:. 2296:. 2285:. 2267:. 2256:. 2231:. 2214:. 2181:. 2155:. 2143:^ 2133:. 2107:. 2090:. 2079:. 2068:^ 2059:. 2048:. 2021:. 2009:^ 2000:. 1893:^ 1876:. 1842:^ 1805:. 1787:. 1776:. 1757:. 1702:. 1677:. 1652:. 1641:^ 1609:^ 1600:. 1589:. 1563:. 1515:^ 1498:. 1448:^ 1438:. 1277:. 1269:, 1265:, 1263:C# 1261:, 1245:. 1217:). 1079:. 1065:Qt 938:. 837:A 791:. 729:. 642:. 492:. 467:. 424:a 306:Qt 293:. 2948:e 2941:t 2934:v 2619:e 2612:t 2605:v 2555:. 2508:. 2460:. 2376:. 2325:. 2242:. 2192:. 2166:. 2118:. 2034:. 1978:. 1887:. 1836:. 1815:. 1735:. 1713:. 1688:. 1663:. 1635:. 1574:. 1509:. 1441:. 1394:. 1373:. 1039:. 874:. 549:C 421:) 340:( 153:C 103:) 81:) 56:) 23:.

Index

Dbus
Developer(s)
Red Hat
Stable release
Preview release
Repository
gitlab.freedesktop.org/dbus/dbus.git
Edit this at Wikidata
C
Operating system
Cross-platform
CORBA
DCOP
Type
IPC
daemon
Linux on the desktop
License
GPLv2+
AFL
www.freedesktop.org/wiki/Software/dbus
message-oriented middleware
processes
freedesktop.org
GNOME
Havoc Pennington
Linux
desktop environments
GNOME
KDE

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑