"At its inception, fork was hailed as an efficient system call
due to its use of copy-on-write on memory shared between
parent and child processes"
That is incorrect. Unix v6 code is available, and a fork definitely copies the parent's entire address space. COW in forks didn't happen until the late 80s-early 90s. To reinforce this, note that BSD added a "vfork" system call that did not copy the parent address space, and blocked the parent process until the child exec'ed because of this.
Fork/exec has always been controversial. One of the main knocks is the inefficiency of a fork throwing away an entire address space.
The rest of the paper may be okay, but the beginning is sloppy.
That is incorrect. Unix v6 code is available, and a fork definitely copies the parent's entire address space. COW in forks didn't happen until the late 80s-early 90s. To reinforce this, note that BSD added a "vfork" system call that did not copy the parent address space, and blocked the parent process until the child exec'ed because of this.
Fork/exec has always been controversial. One of the main knocks is the inefficiency of a fork throwing away an entire address space.
The rest of the paper may be okay, but the beginning is sloppy.