On Thu, 2008-05-08 at 13:24 -0400, Russ Cox wrote: > > So I have to allocate 56 bytes (sizeof(Tos) on 386) of space above the > > top of stack (before copying argc and argv) and set AX to that > > address, correct? > > Yes. And you need to maintain it. > At the very least you need to initialize tos->pid > and update it on return from rfork. > > > The clone(2) system call in linux allows for creation of child > > processes that share address space with its parent, with the exception > > of the stack segment. > > It does? I don't see that anywhere in the man page. > > Russ
Wouldn't the CLONE_VM flag do this? CLONE_VM If CLONE_VM is set, the calling process and the child processes run in the same memory space. In particular, memory writes per‐ formed by the calling process or by the child process are also visible in the other process. Moreover, any memory mapping or unmapping performed with mmap(2) or munmap(2) by the child or calling process also affects the other process. Steven Vormwald