Knowledge (XXG)

D-Bus

Source đź“ť

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

Index

DBUS
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

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

↑