For example, it may be necessary to explicitly allocate shared objects in a separate memory segment, requiring separate memory allocation routines and introducing extra pointer indirections in each reference.
there are two very similar mechanisms that allow groups of linux processes to have independent memory spaces, all sharing only a relatively small memory segment.