A Historic Look at the fork() Call

The original UNIX fork() call required that the full scope of the calling process's kernel run environment be duplicated. This included the allocation of new process and thread table structures, the duplication of the entire vas/pregion structures, and creation of new region structures in the case of private memory regions and copies of their data pages. If the fork() was called in prelude to an exec() call, then much of this work was almost immediately deconstructed, as the kernel replaced the original process view with the new one.

Another Approach: The Berkeley Virtual Fork

With the introduction of Berkeley's virtual memory UNIX kernel, a new “virtual” fork call was added to the growing system call list. ...

Get HP-UX 11i Internals now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.