A thread is a process that shares its parents memory, this can reduce overhead and memory footprint.
Processes are created using the clone system call. The parent process recieves the pid of the child, and the child recieves a return value of 0. Each process must have a parent. The file descriptors and variables are exact copies.