Linked by Thom Holwerda on Sat 9th Feb 2013 02:04 UTC, submitted by ac
Linux "Both of these articles allude to the fact that I'm working on putting the D-Bus protocol into the kernel, in order to help achieve these larger goals of proper IPC for applications. And I'd like to confirm that yes, this is true, but it's not going to be D-Bus like you know it today. Our goal (and I use 'goal' in a very rough term, I have 8 pages of scribbled notes describing what we want to try to implement here), is to provide a reliable multicast and point-to-point messaging system for the kernel, that will work quickly and securely. On top of this kernel feature, we will try to provide a 'libdbus' interface that allows existing D-Bus users to work without ever knowing the D-Bus daemon was replaced on their system."
Permalink for comment 551977
To read all comments associated with this story, please click here.
RE: Finally!
by Alfman on Sat 9th Feb 2013 05:58 UTC in reply to "Finally!"
Member since:


Well, first of all let me state that I do share your enthusiasm for moving this sort of IPC into the kernel.

"In the beginning, there was select and poll. Then there was epoll. But their days may be numbered. It should be obvious that the socket is the one true UNIX abstraction for IPC."

I'm not sure if you meant exactly what you said here, but select/poll/epoll are complimentary mechanisms for using sockets, sockets don't supersede them. I've found that epoll is by far the most efficient way to handle many asynchronous sockets.

"This is the way it was always meant to be. We fork a bunch of small processes, each of which does one thing well, and hook them all together with read() and write()."

It's true that multi-process blocking IO is the traditional unix way, and some people prefer that way of programming. But a big reason for phasing it out is because it scales very inefficiently compared to multi-threaded and async models.

As a popular example, take a look at the scalability differences for a traditional multi-process web server (apache MPM) versus modern asynchronous ones:

Reply Parent Score: 7