> > > The child merely execv()s.
> >
> > So on NOMMU execv() basically creates another process in another
> > memory region, and
> > terminates current one, unless there is a parent sitting in vfork and 
> > waiting
> > (in which case parent is woken up instead of exit)?
>
> No, execve works exactly it does on an MMU system. It loads a new executable 
> into the
> current process.

...trashing all memory area occupied by the process? how parent is
able to run then?

> The difference is with vfork: on vfork, the parent is suspended, and the
> child shares it's whole address space with the parent (the stack is shared 
> too - that's
> why this is so tricky!). The parent is resumed when the child either 
> execve()s or
> _exit()s.

I don't understand how parent is able to run if execve just nuked
parent's text segment
with unrelated code of execed program.
--
vda
_______________________________________________
busybox mailing list
[email protected]
http://busybox.net/cgi-bin/mailman/listinfo/busybox

Reply via email to