There's some support for sharing memory segments in segattach(2) and between unrelated processes with segment(3).
On Wed, 24 Apr 2019 at 16:23, Lassi Kortela <la...@lassi.io> wrote: > Hello, > > Can the POSIX shared memory API be emulated on Plan 9 with reasonable > effort? I didn't find any mention of 'shm_open' in Plan 9 source. > > To recap, the API works as follows: > > - shm_open(path) to open or create an shm object, get a file descriptor > - shm_unlink(path) to remove the shm object from the path namespace > - ftruncate(fd) to actually allocate n bytes for the shm object > - fstat(fd) returns the size of the object in the st_size field > - mmap(fd) to get a pointer to use the shared memory > > The shm fd works like other Unix fds (can be sent to an unrelated > process over a Unix-domain socket, persists over fork(), and can persist > over exec() if the close-on-exec flag is cleared). The kernel garbage > collects the shm object after the last fd pointing to it is closed. > > I made the shim <https://github.com/lassik/shm_open_anon> to provide a > "shm_open() without a pathname" on various Unix flavors. I'm wondering > if Plan 9 support could be easily added. > > I should mention that I have never used Plan 9, just read some of the > source and documentation. > > Regards, > Lassi > >