LearnViz CompSci
Home / Learn / Operating Systems / Fork and Exec

Beginner Topic 15 of 51 Operating Systems

Fork and Exec

Unix primitives for creating processes and loading programs.

How it works

On Unix, fork creates a new process by duplicating the calling process, with the child receiving a copy of the address space, implemented lazily with copy-on-write, and returning 0 in the child and the child's PID in the parent. Exec replaces the current process image with a new program while keeping the PID and open files. The parent can wait for the child to finish. Shells run commands with fork then exec.

Step-by-step walkthrough

  1. The shell calls fork().
  2. The kernel makes a child that is a copy of the parent.
  3. The child calls exec("ls").
  4. The kernel replaces the child's memory with the new program.
  5. The parent calls wait() until the child exits.

Where it is used

Launching programs, building servers that spawn workers, setting up pipes and redirection between fork and exec and daemonizing services use this pair.

Common pitfall

Forking a multi-threaded program copies only the calling thread, which can leave locks held in inconsistent states. Not reaping children creates zombies. Forgetting to close file descriptors leaks them into children. Forking large processes costs time, so use posix_spawn or vfork-style calls where appropriate.

Where it fits in the course

Fork and Exec is topic 15 of 51 in Operating Systems, rated Beginner. It follows Shell and Command Line. The next topic is Inter-Process Communication.

Practice and explore

How to study this topic

  1. Read the explanation above and restate the definition in your own words.
  2. Open the interactive lesson and answer its mini quiz.
  3. Read the common pitfall, then write a short example that avoids it.
  4. Check your understanding in the Operating Systems quiz, and revisit the topic if you miss a question.

Frequently asked questions

What is Fork and Exec?
Unix primitives for creating processes and loading programs. It belongs to Operating Systems and is a beginner-level topic.
Where do people use Fork and Exec?
Launching programs, building servers that spawn workers, setting up pipes and redirection between fork and exec and daemonizing services use this pair.
What is the most common mistake with Fork and Exec?
Forking a multi-threaded program copies only the calling thread, which can leave locks held in inconsistent states.
What should I learn before this topic?
Start with Shell and Command Line, the topic just before it in Operating Systems.
How can I practice it?
Answer the mini quiz in the interactive lesson, then take the Operating Systems quiz.
Is Fork and Exec hard to learn?
It is a Beginner topic, so it works as an entry point. If the terms are new, read the explanation twice and try the visualizer before the quiz.
How long does it take to learn Fork and Exec?
Most learners can read the explanation and finish the interactive lesson in under an hour. Fluency comes from applying the idea, so plan a few short practice sessions with the quiz.
Which topics are related to Fork and Exec?
Shell and Command Line, Inter-Process Communication, Priority Scheduling are closely connected. The full list is in the related topics section of this page.
What should I study after Fork and Exec?
Continue with Inter-Process Communication, the next topic in Operating Systems.

Related topics