Moving beyond fork() + exec()
A look at the venerable Unix pattern of fork() followed by exec() to launch processes, why it fits poorly with modern multithreaded programs (copied locks, surprise file descriptors, memory bloat), and the newer primitives the kernel community is weighing as cleaner replacements.