On Sat, Sep 17, 2011 at 11:41 AM, Michael Mol <[email protected]> wrote: > On Sat, Sep 17, 2011 at 10:50 AM, Canek Peláez Valdés <[email protected]> > wrote: >> On Sat, Sep 17, 2011 at 2:45 AM, Joost Roeleveld <[email protected]> wrote: > [[snippage]] >>> I still think Gnome (or any other desktop environment) should not care about >>> which init-system is being used. >> >> And they will not. They will only use some capabilities that a system >> provides, and use it if available. It's the exact same thing as udev. >> > > [[snippage]] > >> a) dbus is not part of the GUI, b) like it or not, it's the >> standardized IPC mechanism in Linux. If it's available, let's use it. > > This is exactly the same attitude of convenience that led to udev > being abused, and then to the very decisions by udev's maintainer that > started off the firestorm on this list over the last couple weeks. The > system is *bloating* at an incredible rate. > >> >>> There are already well-tested and working mechanisms for communication where >>> needed. >> >> I would like for you to be more specific about them. > > Sockets, be they UNIX domain sockets, IPv4 or IPv6. [snip] > Shared memory: [snip] > Pipes: [snip]
Yeah, but then you need to design, implement and debug a protocol communication: what part of the wire speaks first, what does it says, what are the valid responses, etc. And then, if other component wants to communicate, it has to learn your little protocol. dbus standardize this. And it uses sockets, shared memory and pipes as building blocks, I believe, > Not sure what others there are, but those have existed longer than > I've been alive, and been standard since the early 1990s. They are standard in the sense that they are a low level communication standard API. An IPC is *way* more than that; dbus is an IPC, because then you have high level "objects" and "methods", no matter the language of the two sides of the wire communicating, or even if the objects live in the same computer or not. BTW, there *was* an standard that did everything dbus does: ORB, the Object Request Broker. They tried to use that as IPC years ago, but is so damn complicated to implement right they decided to better implement a new standard. The standard is dbus. > Progress is > adding new functionality, not reimplementing existing functionality as > new APIs on top of the existing functionality. I think you are wrong if you believe that dbus is just "existing functionality as new APIs on top of the existing functionality". dbus is a complete IPC system. Neither sockets, shared memory nor pipes are an IPC, because they lack a well defined protocol. You *can* do the same you do with dbus if you only use sockets/sharedmem/pipes, but then you need to do it over and over and over again. Is like the difference between assembler and C: you *can* do the same with both, but that does not mean that is actually a good idea to only use assembler. > That's little better > than busywork for people who could be building something actually new. dbus offers new functionality, like I said. Regards. -- Canek Peláez Valdés Posgrado en Ciencia e Ingeniería de la Computación Universidad Nacional Autónoma de México

