Moving beyond fork() + exec()

36 points by hongminhee


drmorr

I don't fully understand why "fork+exec" exists in the first place. If I, knowing relatively little about kernel development, were going to design a set of syscalls for process management, I feel like naively I would assume that the "normal" case is "spawn a new pristine child process" and the exceptional case is "make a copy of the currently running process". The latter would just be used by things like, idk, webservers where the entire model is lots of copies of identical processes.

Does anyone have any history on why fork is designed the way that it is in the first place?

edit: I suck at typing on my phone