On Mon, Dec 16, 2024 at 10:40 AM Douglas McIlroy <douglas.mcilroy@dartmouth.edu> wrote:
>> 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:

> ... When multiple processes map the same memory object, they can
> share access to the underlying data.

Notice the weasel word "can". It is not guaranteed that they will do so
automatically without delay. Apparently each process may have a physically
distinct copy of the data, not shared access to a single location.
Hmmm — how did that make it through the IEEE editing process? However, that is not part of the standard if it's in the Rationale - just an explanation of the standard - which I want want look at more carefully to see what it says about what is required of mmap(2).

That said, as Heinz and the rest of us who worked on the original version of what would come to POSIX can tell you, the word "can" was always a no-no. The word "SHALL" is the the official IEEE word, and if you use "SHOULD," even in the rationale and it was very much frowned upon.   I'll have try dig up the troff sources to an early draft of the original and do a "grep -i should * | wc -l"  through it.  I bet the number is very small and "can" is zero.

That said, it has been a few years since I have read a current draft, but less the rationale section (which is not the standard itself).
Clem

Clem