So when you run a program on a Linux® system, it creates what’s called a process. This is a record of what is running, who started it, what files it has open, is it talking on the network, is it listening to the network, is it playing music, is it making a pretty picture… in other words, what is this thing doing that affects the system at large.
These processes are kept in a table called… the process table. This imaginatively named table contains records of all the processes that are running on the system. Each one has an ID number that’s called (again, so imaginatively) the process ID. This number is what we can use to identify the process in the process table.
Another interesting fact about processes is that there are parent processes and child processes. A parent process is what creates a child process (see what I said about imaginative?). So if you’re at the Linux® screen and you click on a game to start it, then the process that’s identified with you is the parent and that game is the child. To put it succinctly, that game is the child of you.
Some processes are started by the operating system. In fact, the mother of all processes, the init process, is the first process started. It has the process ID of 1. If we were drawing our processes out like a genealogy, it would be the origin of the family. Your process might be the great great grandchild of init, making your game the great great great grandchild.
A zombie process is one that’s finished but hasn’t quite left the process table. So it’s alive when it should be dead, ergo, zombie. It’s not the kind of zombie that eats brains… or other processes. It’s the kind that hangs around until it just fades away. That could be very interesting, if it ate other processes. It’d also make for unstable processes, and Linux® doesn’t like those.