The following issues may not be deemed important enough to fix, but I'll point them out nevertheless: - kill() does not destroy a process, but merely sends a signal. The action taken by the process upon the delivery of the signal depends on the signal itself, whether it is currently masked, and whether the process has installed a signal handler. The only signal guaranteed to destroy a process is SIGKILL, which may not be masked and cannot be associated with a handler. - "It is critically important to note that the parent and child do not share memory." - That is not true. Parent and child share all memory marked as shared (i.e., mappings created with mmap(MAP_SHARED)). The example works because by default the BSS is mapped as private. - Listing 4.2 could have just used waitpid() instead of the loop. If I were really a nit-picking person I would have pointed out the various places in chapters 2 and 3 where infinitives are being split, but I'm not so I won't ;-). --Elad