The standard way of making new processes in Linux is that the memory footprint of the parent process is copied and that becomes the environment of the child process until
execv is called.
What memory footprint are we talking about, the virtual (what the process requested) or the resident one (what is actually being used)?
Motivation: I have a device with limited swap space and an application with a big difference between virtual and resident memory footprint. The application can't fork due to lack of memory and would like to see if trying to reduce the virtual footprint size would help.