0% found this document useful (0 votes)
220 views2 pages

OpenBinder and D-Bus

OpenBinder and d-bus are systems for interprocess communication. OpenBinder was developed by Be Inc. and Palm Inc. and is used in the Android platform. It allows processes to present interfaces that can be called by other threads. D-bus allows programs to register services and check for available services. It also allows programs to register to receive kernel events. D-bus functionality runs as a daemon and users can run multiple instances of it called channels.

Uploaded by

tycoona
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
220 views2 pages

OpenBinder and D-Bus

OpenBinder and d-bus are systems for interprocess communication. OpenBinder was developed by Be Inc. and Palm Inc. and is used in the Android platform. It allows processes to present interfaces that can be called by other threads. D-bus allows programs to register services and check for available services. It also allows programs to register to receive kernel events. D-bus functionality runs as a daemon and users can run multiple instances of it called channels.

Uploaded by

tycoona
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 2

OpenBinder and d-bus

OpenBinder is a system for interprocess communication. It was developed at Be Inc. and then Palm, Inc.[2] and has more recently been used in the ndroid mobile phone platform developed by !oo"le[#]. OpenBinder allows processes to present interfaces which may be called by other threads. $ach process maintains a thread pool which may be used to service such re%uests. OpenBinder ta&es care of reference countin", recursion bac& into the ori"inal thread, and of course the inter' process communication itself. On the (inu) version of OpenBinder the communication itself is achieved usin" ioctls on a "iven filehandle, communicatin" with a &ernel driver. In computin", *'Bus +*es&top Bus, is a simple inter'process communication +IP-, system for software applications to communicate with one another. .eavily influenced by /*$20#1s *-OP system, *'Bus has replaced *-OP in the /*$ 2 release. 3ost PO4I5 operatin" systems support *'Bus, and a port for 6indows e)ists. It is used by 7t 2 and !8O3$. In !8O3$ it has "radually replaced most parts of the earlier Bonobo mechanism. 9ed .at operates as the primary developer of *'Bus ' as part of the freedes&top.or" pro:ect. ;reedes&top.or" releases *'Bus under the terms of the !8< !eneral Public (icense and of the cademic ;ree (icense as free software.

*esi"n *'Bus allows pro"rams to re"ister with it in order to offer services. It also allows client pro"rams to chec& for the availability of services. Pro"rams can also re"ister as waitin" for events of the &ernel, as in the case of hot'swappin" hardware. *'Bus functionality runs as a daemon= typically dbus'daemon . <sers can run several instances of it, each called a channel. 3ost systems implement a privile"ed system channel, with a private instance for each lo""ed'in user. >he private instances are re%uired because the system channel has access restrictions. >he system channel focuses on deliverin" the si"nals from the . ( +hardware abstraction layer, daemon to the processes interested in them. >he mission of the private instances is to provide unrestricted communication amon" any applications of the user.

rchitecture *'Bus has three architectural layers=[2] a library, libdbus , that allows two applications to connect to each other and e)chan"e messa"es

a messa"e'bus daemon e)ecutable, built on libdbus , that multiple applications can connect to. >he daemon can route messa"es from one application to ?ero or more applications, thereby implementin" the publish@subscribe paradi"m. wrapper libraries based on particular application framewor&s >he desi"n of *'Bus addresses two specific cases= communication between des&top applications in the same des&top sessionA to allow inte"ration of the des&top session as a whole, and address issues of process lifecycle communication between the des&top session and the operatin" system, where the operatin" system would typically include the &ernel and any system daemons or processes

3echanisms $ach application usin" *'Bus contains ob:ects that usually map to !Ob:ect, 7Ob:ect, -B B ob:ects, or Python ob:ects. $ach *'bus ob:ect operates as an instance rather than as a type. 3essa"es received over a *'Bus connection "et routed to a specific ob:ect, not to the application as a whole. In this way, *'Bus resembles software componentry, as it appears to users as if they are interactin" with an ob:ect across the IP- connection, whether or not there is an ob:ect on the other side. >o allow messa"es to specify their destination ob:ect, the system needs a way to refer to an ob:ect. 3any pro"rammin" lan"ua"es refer to this as a pointer or reference. .owever, these references are implemented as memory addresses relative to the address space of the application, and thus can1t be passed from one application to another. >o solve this, *'Bus introduces a name for each ob:ect. >he name loo&s li&e a filesystem path, for e)ample an ob:ect could have the name @or"@&de@&spread@sheets@#@cells@2@C. *'Bus encoura"es human'readable paths, but developers are free to create an ob:ect named @com@mycompany@cCyoDEFyGcEyEcCb if it ma&es sense for their application. >he *'Bus ob:ects1 names are namespaced to &eep different code modules separated. 8amespaces are "enerally prefi)ed with the developer1s domain name components +e". @or"@&de,.

You might also like