What system call creates a new process in Linux?

The story behind the answer

The Linux system call that creates a new process is `fork`.

When a process calls fork, Linux creates a child process that initially has a copy of the parent’s execution context. Both processes continue from the instruction after the call, but fork returns different values: zero in the child and the child’s process ID in the parent. A negative return value indicates failure.

Modern Unix-like systems normally implement this efficiently with copy-on-write. The parent and child initially share physical memory pages marked read-only; a page is copied only when one process writes to it. This makes the common fork-then-exec pattern practical, because the child often soon replaces its program with a new one using an exec-family call.

`clone` is a related Linux system call that provides more control over which resources are shared, and Linux uses it for threads and containers. `spawn` is a process-creation term used by other operating-system APIs, while `exec` does not create a process: it replaces the current process image with another program. The fork concept dates back to early Unix and became part of POSIX.

Source: Wikipedia · fact-checked Aug. 2026

Add question to a list

Choose a list to keep this question in: