Just Launched: You can now import projects and releases from Google Code onto SourceForge
We are excited to release new functionality to enable a 1-click import from Google Code onto the Allura platform on SourceForge. You can import tickets, wikis, source, releases, and more with a few simple steps. Read More
From: Frank Mayhar <frank@ex...> - 2003-10-21 03:47:44
Hi, I'm not ignoring you, I've just been a bit busy with other things (mostly
trying to find a job).
The place you want to start is the SysV Shared Memory IPC handling. The
underlying implementation is exactly what you want. Basically, if my
(limited) understanding is correct, there's a vnode (at least one) for
the shared memory segment. This vnode is handled by CFS; there's sort
of a file system that describes that kind of shared memory, or at least
CFS is stacked on top of the SHM implementation. Look at the file
openssi/kernel/cluster/ssi/cfs/cfs_ipcshm.c for some clues. I've CC'd
this to the devel list, so Dave can explain more fully if he wants...
The real question I have is, what is backing a process's virtual address
space? The executable itself is backed by the disk image of the program;
that's static and isn't really interesting. The anonymous pages are what
have to be shared, stuff like the stack, data pages and malloc'ed memory.
To do this the way SHM does it, we would need to back anonymous pages
with another file system. Kind of like distributed swap was in Unixware,
I guess, although I never really dug into that.
Alternatively, one could expose the token interfaces within CFS so that
you could use them directly. I suspect you would get into some serious
wheel-reinvention doing that, though.
I would be interested to see any feedback you get from the "geek girls."
Frank Mayhar frank@... http://www.exit.com/
Exit Consulting http://www.gpsclock.com/http://www.exit.com/blog/frank/