1 |
On Sat, Sep 17, 2011 at 11:41 AM, Michael Mol <mikemol@×××××.com> wrote: |
2 |
> On Sat, Sep 17, 2011 at 10:50 AM, Canek Peláez Valdés <caneko@×××××.com> wrote: |
3 |
>> On Sat, Sep 17, 2011 at 2:45 AM, Joost Roeleveld <joost@××××××××.org> wrote: |
4 |
> [[snippage]] |
5 |
>>> I still think Gnome (or any other desktop environment) should not care about |
6 |
>>> which init-system is being used. |
7 |
>> |
8 |
>> And they will not. They will only use some capabilities that a system |
9 |
>> provides, and use it if available. It's the exact same thing as udev. |
10 |
>> |
11 |
> |
12 |
> [[snippage]] |
13 |
> |
14 |
>> a) dbus is not part of the GUI, b) like it or not, it's the |
15 |
>> standardized IPC mechanism in Linux. If it's available, let's use it. |
16 |
> |
17 |
> This is exactly the same attitude of convenience that led to udev |
18 |
> being abused, and then to the very decisions by udev's maintainer that |
19 |
> started off the firestorm on this list over the last couple weeks. The |
20 |
> system is *bloating* at an incredible rate. |
21 |
> |
22 |
>> |
23 |
>>> There are already well-tested and working mechanisms for communication where |
24 |
>>> needed. |
25 |
>> |
26 |
>> I would like for you to be more specific about them. |
27 |
> |
28 |
> Sockets, be they UNIX domain sockets, IPv4 or IPv6. |
29 |
[snip] |
30 |
> Shared memory: |
31 |
[snip] |
32 |
> Pipes: |
33 |
[snip] |
34 |
|
35 |
Yeah, but then you need to design, implement and debug a protocol |
36 |
communication: what part of the wire speaks first, what does it says, |
37 |
what are the valid responses, etc. |
38 |
|
39 |
And then, if other component wants to communicate, it has to learn |
40 |
your little protocol. dbus standardize this. And it uses sockets, |
41 |
shared memory and pipes as building blocks, I believe, |
42 |
|
43 |
> Not sure what others there are, but those have existed longer than |
44 |
> I've been alive, and been standard since the early 1990s. |
45 |
|
46 |
They are standard in the sense that they are a low level communication |
47 |
standard API. An IPC is *way* more than that; dbus is an IPC, because |
48 |
then you have high level "objects" and "methods", no matter the |
49 |
language of the two sides of the wire communicating, or even if the |
50 |
objects live in the same computer or not. |
51 |
|
52 |
BTW, there *was* an standard that did everything dbus does: ORB, the |
53 |
Object Request Broker. They tried to use that as IPC years ago, but is |
54 |
so damn complicated to implement right they decided to better |
55 |
implement a new standard. The standard is dbus. |
56 |
|
57 |
> Progress is |
58 |
> adding new functionality, not reimplementing existing functionality as |
59 |
> new APIs on top of the existing functionality. |
60 |
|
61 |
I think you are wrong if you believe that dbus is just "existing |
62 |
functionality as new APIs on top of the existing functionality". dbus |
63 |
is a complete IPC system. Neither sockets, shared memory nor pipes are |
64 |
an IPC, because they lack a well defined protocol. You *can* do the |
65 |
same you do with dbus if you only use sockets/sharedmem/pipes, but |
66 |
then you need to do it over and over and over again. Is like the |
67 |
difference between assembler and C: you *can* do the same with both, |
68 |
but that does not mean that is actually a good idea to only use |
69 |
assembler. |
70 |
|
71 |
> That's little better |
72 |
> than busywork for people who could be building something actually new. |
73 |
|
74 |
dbus offers new functionality, like I said. |
75 |
|
76 |
Regards. |
77 |
-- |
78 |
Canek Peláez Valdés |
79 |
Posgrado en Ciencia e Ingeniería de la Computación |
80 |
Universidad Nacional Autónoma de México |