I’m not sure why this paper got called “Minimizing Memory Usage for Creating Application Subprocesses”, it should have been called “MT-safe vfork and posix_spawn“.  When UNIX was developed, processes were single-threaded, and this had some strong influences on a few of its basic mechanisms.  vfork() is one of those mechanisms.  If you’ve ever been bit by a thread deadlock inside the some goofy runtime linker routines, or if you’re interested in UNIX guts like fork and exec, read Greg’s paper for more information.