Linux System Calls and Process Control in x86-64 Assembly

This booklet provides a clear and practical introduction to Linux system calls and process control from a low-level perspective. It avoids external libraries, runtime frameworks, and high-level abstractions to reveal how Linux programs communicate directly with the kernel.

Using x86-64 Intel assembly, the book explains:

  • Linux system call conventions
  • Register usage and return values
  • Process creation with fork
  • Program execution with execve
  • Environment variables and argument passing
  • Signals and process synchronization
  • Memory layout and kernel interaction
  • Error handling without libc

Every example is explicit and independent of compiler-generated scaffolding, allowing readers to observe exactly how arguments are passed, how control moves between user space and kernel space, and how Linux manages program execution.

The booklet concludes by building a fully functional minimal shell that supports:

  • Interactive command input
  • Command tokenization
  • Environment inheritance
  • PATH-based executable lookup
  • Process creation and execution
  • Parent-child synchronization

This shell is not merely a demonstration. It is a practical implementation of the essential UNIX process model.

Intended Readers

This booklet is suitable for readers who want to:

  • Understand how Linux executes programs
  • Strengthen debugging and performance-analysis skills
  • Work without depending on high-level libraries
  • Build tools requiring precise process control
  • Prepare for advanced topics such as IPC, dynamic linking, namespaces, kernel interfaces, and runtime design

It forms part of a broader low-level Linux programming series that follows the path from processor architecture and assembly language to system calls, executable formats, and runtime environments.