Fork From Hackepedia
A Unix process gets created by the fork system call. When fork is called inside a program it will create a child process that is similar to its parent(caller of fork). Similarities are: the executable image is copied including stack and heap as well as memory mappings(see copy-on-write), file descriptors and locks are copied, the process name is the same. After forking, the exec syscall is often called in order to make the intended program run. When the fork system call is called, it will return 0 in the child and the pid of the child in the parent. If it fails it will return -1 and set errno.
Many clueful system administrators limit how many processes can be forked or else you have a run-away phenomenon called a fork-bomb which happens to creep up in Linux even today.
German - von Hackepedia
Ein UNIX prozess wird erschaffen durch den "fork" (deut. gabel) System aufruf. Wenn fork inerhalb eines Programmes aufgerufen wird, wird ein kinder prozess gestartet das dem parent (aufrufer des forks) prozess ähnelt. Änlichkeiten sind: Das "executable image" (prozess bild) ist kopiert inclusive dem Stack, und Heap, sowie "memory-mappings" (siehe copy-on-write), Datei Deskriptoren, und Datei-locks (sperren) werden alle kopiert. Der prozess name ist auch gleich. Nach "fork", ist der "exec" system aufruf oft aufgerufen um ein neues Programm zu starten. Wenn Fork aufgerufen ist wird der return-wert 0 sein im Kinder prozess und die pid des kinder prozesses im parent. Wenn der "fork" aufruf nicht funktioniert wird es einen return-wert von -1 haben und wird die globale Variable "errno" setzen.
Viele System Administratoren sezten einen Höchstwert der beschreibt wie viele prozesse forken können sonst kommt irgendwannmal das Phenomenen das fork-bomb heisst, was in Linux noch machbar ist.