title: why fork and exec are kept 2 seperate calls
body: <p>I understand the differences between fork, vfork, exec, execv, execp. So pls dont rant about it.
  My question is about the design of the unix process creation. Why did the designers think of creating 2 seperate calls ( fork and exec ) instead of keeping it one tight call ( spawn ).
  Was good API design a reason so that developers had more control over process creation?
  Is it because of performance reason, so that we could delay allocating process table and other kernel structures to the child till either copy-on-write or copy-on-access?</p>