3 ms·
I think there are many problems with D-Bus, and there are better ways to send data to other processes. It is a useful feature, but I have different ideas about
by zzo38computer 2y ago
I think there are many problems with D-Bus, and there are better ways to send data to other processes. It is a useful feature, but I have different ideas about how it would be done, which I will describe below.
There is no bus names, interface names, and object path. Capabilities are used, and the program refers to the capabilities it has access to, to do any kind of I/O (and, the capabilities can be used for security, too).
The kernel does not know about data types; each message is a sequence of bytes and/or capabilities.
However, there is common conventions (which are the same for all computer types, so that programs on different computers and programs being emulated, can still communicate with each other) for data types.
It does not use Unicode, so there are no Unicode types (the main character code is Extended TRON Code, although 8-bit characters are also possible, including strings of arbitrary bytes/capabilities which can be used for any purpose).
It does not need the marshaling, authentication, etc like D-Bus uses. Other features of D-Bus also are not needed, and can be made simpler and faster.
The Command, Automation, and Query Language would make communication almost as easy as adding numbers together. (It can never be quite as easy (unless adding numbers is difficult), because communication is just a thing that is not as easy, anyways; but, it can be made almost easy.)
Actually, it is like a actor model in some ways.
(The above ideas are a part of an operating system design, which does not yet have a name, at this time.)
> (I am working on this space, as I have been obsessed with this question for a long while.)
What is your work on this space?
> even a number-crunching monolith written in high-performance C++ needs to communicate its result to the user or some other remote service. How many lines of code to do that?
I would think it depends what you need to communicate. Sometimes, I would expect, printf would do.