Upstart Client Library

Marcel Holtmann marcel at holtmann.org
Thu Jun 12 21:36:03 BST 2008


Hi Sarvi,

> May be I need to explain myself better. 
> 
> I have nothing against D-Bus as a communication mechanism or whether it
> is suited for embedded systems. 
> I am not questioning if suitable for communicating to/from Upstart, but
> wondering if it is reasonable to say that's the ONLY way to talk to
> Upstart. Specially since Upstart is porposing to play such an important
> role in the system.
> 
> It doesn't seem reasonable to expect that all embedded systems to use
> D-Bus.
> 
> Upstart and its feature set is great and is going in the right
> direction. 
> 
> All I am suggesting is that Upstart should be fuly usable independent of
> the communication mechanism that platform chooses to use.

this discussion has been come up again and again and again. And if you
dig deep enough (something like 3-4 years ago) you will find even a post
from me telling that D-Bus should only play a secondary role. From a
current point of view it is the worst idea to deal with a second IPC for
systems that only do method calls and broadcast signals.

Upstart is fully usable without D-Bus and good enough for embedded
system that only need an init replacement. If you wanna have advanced
stuff and monitor the process by yourself, then install D-Bus and have
upstart hook up into it. I don't see the big deal here. It is no real
overhead. It actually makes upstart smaller since it doesn't have to
worry about message dispatching and handling multiple clients and all
this stuff. It either gets a message or not. And we haven't talked about
the beautiful things like NameOwnerChanged and unique bus names etc.

You can really keep arguing a lot for having a non D-Bus interface to
control upstart, but eventually you see that it makes no sense. I was
the same, but finally I realized that D-Bus and D-Bus only is the way to
go. We do wanna make our applications simpler and not more complex. Also
at some point you have a second application using D-Bus and then talking
anything different than D-Bus to upstart becomes useless and at that
point actually really overhead.

That said, D-Bus is not perfect and will not solve everything, but for
IPC between applications, it is the way we do it. For the rest, I am
actually working on getting D-Bus more deeply integrated and better
optimized for the really tiny embedded world. So that will happen and
then investing in a second IPC is wasted time. I really see it as that
simple :)

Regards

Marcel





More information about the upstart-devel mailing list