Definition
A process is the operating system's unit of execution — a running instance of a program, complete with its own virtual address space, set of open file descriptors, one or more threads of control, an owning user identity, a current working directory, an environment, and a slot in the kernel's scheduling table. Two invocations of the same program are two distinct processes; each has its own memory, its own variables, and its own view of the world. The kernel uses the process abstraction to isolate programs from one another, to schedule CPU time, and to attribute resource usage and permissions.
On Unix systems a process is identified by a numeric process ID (PID), is created by fork() (which duplicates the parent into a child), and starts running a new program via exec() (which replaces the current image without changing PID). It terminates with exit(), leaving an exit status that the parent can collect with wait(). This small set of primitives is the foundation of the entire shell.
Why it matters
How it works
Each process holds a process control block in the kernel containing its PID, parent PID, owning user and group IDs, scheduling priority, CPU registers (when not running), virtual memory map, table of open file descriptors, signal mask, and exit status. The virtual address space gives each process the illusion of owning the machine — addresses are translated to physical pages by the MMU, and protections prevent one process from touching another's memory. Multiple threads inside a single process share the address space and file descriptors but have independent execution stacks.
The kernel scheduler picks which process (or thread) runs on each CPU core at each scheduling tick, balancing fairness, priority, and interactivity. State transitions move processes between running, runnable, sleeping (waiting for I/O), stopped, and zombie (terminated but not yet reaped by parent). Standard Unix tools — ps, top, htop, pgrep, kill, jobs, &, bg, fg — are how a shell user inspects, signals, and manages this hierarchy. The PID 1 process (init or systemd) is the root of the tree and inherits any process whose parent has died.