It's pretty simple, really. The process first calls fork() to create a child process. The child process then calls exec() to replace itself with another executable. This is the typical way you'd launch a process on any UNIX-like system. For example, it's how the shell will create a process when you issue a command.