> communication between programs uses pipes, requiring transitions through the kernel<p>Not if you use shmem.<p>> it's fairly primitive, because all you can pass is a sequence of bytes<p>Assuming you have abi sorted out, you can generally write objects directly to a pipe. If you have indirections in those objects then, again, use shmem. (If you want synchrony, you can write the objects over the pipe but share the memory referred to by those functions.)