It appears that Douglas McIlroy <douglas.mcilroy(a)dartmouth.edu> said:
Unix originally imitated the Multics file system, but
not the universal
memory. mmap(2) weakly imitates universal memory by allowing a process
to nominally incorporate a portion of a file into the process address space
at page-level granularity. However, an update is guaranteed to be visible
to the file and other processes only upon specific request.
Does anyone know whether there are implementations of mmap that
do transparent file sharing? It seems to me that should be possible by
making the buffer cache share pages with mmapping processes.
These days they all do. The POSIX rationale says:
A memory object can be concurrently mapped into the address space of one or more
processes. The mmap( ) and munmap( ) functions allow a process to manipulate their
address
space by mapping portions of memory objects into it and removing them from it. When
multiple processes map the same memory object, they can share access to the underlying
data.
"Memory object" includes disk files.
There are MAP_SHARED and MAP_PRIVATE flags that say whether changes are written
through or copy-on-write to local private pages.
R's,
John