Sorry for the delayed reaction cdimauro. I simply lost track of your message.
IPC is a broad term: it's a general term to indicate that two or more processes can communicate.
How is it done is the tricky stuff, and strictly depends on how it's implemented.
It is for sure, but i hope my reply is able to make it a bit more practical.
Amiga o.s. uses message passing on a fully-shared address space, with all goods (superfast) and bad things (no security / no ownership / no solidity) that can happen.
For Amiga it is indeed fairly easy to accomplish because there is hardly any protection whatsoever. Even if you do follow the guidelines you can mess with things.
But, i was talking specifically in the case of axrt, but it does not have to end there.
As deadw00d wrote, each and every AROS program (when started with axrt) uses its own (linux) address space. As such the ipc requires to follow the linux guideline with regards to IPC.
I don't now the IPC implementation that you talked about, but I assume that it's a form of message passing, mapping those messages to the various processes' virtual memory spaces (not necessarily on the same virtual addresses), and probably some sort of marshalling (otherwise it's difficult to see how your mentioned languages can communicate, since they are very different).
Let's make it a bit more practical then. It is just a (simple) example, but please have a look here (
https://wiki.lazarus.freepascal.org/SimpleIPC_Library). If i remembered correctly then you did not seem shy of a bit of Pascal code, so please do follow the github link and take a look at the code.
In the end it is just a generic library and simply offers a generic API that can be used for every platform/programming language. You can make such thing as complicated and/or simple as one wish it to be.
However marshalling means also slow, especially if you want to pass complex structures. It also means that the existing Amiga applications require could requite notable changes to use this new mechanism.
For sure it is/can be. But how do modern programs use IPC ? Take note that there are several programs that even do this kind of things using networked connections (either local, lan or wan) and that there are several protocols each and everyone with their own individual pros and cons.
In the specific instance that i've made my remark i was more thinking along the line of being compliant (from a outside point of view) rather then suggesting each and every program that wants IPC should make use of it. As you pointed out perfectly, Amiga OS has it's own proofed and tested implementation(s) that for sure will have more pros than cons.
The only other way i am able to see a implementation that might be a better solution (but would require more work) is a complete implemented VM for the axrt, so that the vm can decide what each individual axrt process is allowed/disallowed to do. So there would have to be provisions (read extra layer inside the vm) for that.
But perhaps you have another and/or better idea ?