A process is more than just an address space and a set of threads, it has metadata. A simple example is its process id. Metadata is stored in the OS, in a structure called a process control block. An important bit of metadata is a process's "environment." An environment is a map from arbitrary key to a string value. A forked child process inherits the environmenet of its parent. So, beyond passing arguments to a child process via argc/argv, a parent can pass them through the environment.