Re: question about execve()

From: Tommy Reynolds
Date: Mon Apr 11 2005 - 03:39:12 EST


Uttered Tomko <tomko@xxxxxxxx>, spake thus:

> I would like to ask when a userprogram called in user space called
> execve("/bin/abc".... will this system call finally copy the code of
> /bin/abc into kernel space before kernel runs it or just leave the code
> in the userspace and run directly ?

None of these. All "execve" really does is to discard the current VM
setup, tell the VM system to attach this process to the new
executable image, and then transfer control to the starting
instruction of the program. Since nothing is really in memory, aside
from maybe some caching/readahead, page faults do all the work of
loading application code, page by page, on demand.

HTH

Attachment: pgp00000.pgp
Description: PGP signature