With reference to an object type defining the two basic operations, read and write, we present solutions to the object sharing problem, classified according to the migration and/or replication of the shared objects. We refer to a memory management system supporting a single address space view of storage in a distributed environment. Our system defines a small, powerful set of primitives that allow processes to explicitly control the allocation and deletion of the virtual pages in the physical storage as well as the page movements across the memory hierarchy. By using real programs, we demonstrate that these primitives make it possible to integrate an object sharing algorithm within the implementation of the given object at little programming effort. The discussion takes a number of salient issues into consideration, including network costs and a conceptual framework for actual implementation of the memory management system.