Hi Valery,
So yes, I could be able to create the shared memory area as a single managed dataspace in os2exec, and pass it to each userland process, at its initialization. Also, reserved sub-regions could also be implemented as managed dataspaces, which will go into needed (private or shared) areas.
thanks for the detailed background information. This makes the picture much more clear.
To work around the limitation of base-linux, I recommend to let each process create its shared and private areas as managed dataspaces and actively pull their respective content from the os2exec server. The os2exec server would provide a session interface that allows each client to obtain the individual regions of those areas. So it is the job of each process to attach the individual dataspaces to its locally created managed dataspaces. The managed dataspaces are never shared across component boundaries.
Of course, you cannot enforce the consistency of the 'shared' area across all processes this way. Each process must adhere the protocol. But I guess it would be in the best interest of each process to do so, wouldn't it?
Happy hacking! Norman