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