[TUHS] mmap origin (was Systematic approach to command-line interfaces)

Dan Halbert halbert at halwitz.org
Thu Sep 30 22:56:28 AEST 2021


On 9/30/21 5:01 AM, Paul Ruizendaal via TUHS wrote:
> For 4.2BSD initially Joy cs. had a different approach to memory mapped files in mind (see the 1981 tech report #4 from CSRG). By the time of 4.2BSD’s release the manual defined a mmap() system call, but it was not implemented and it appears to have been largely forgotten until SunOS 4 and dynamic libraries six years later.
>
3BSD and I think 4.1BSD had vread() and vwrite(), which looked like 
regular read() and write() but accessed pages only on demand. I was a 
grad student at Berkeley at the time and remember their genesis. Bill 
and I were eating lunch from Top Dog on the Etcheverry Hall plaza, and 
were talking about memory-mapped I/O. I remember suggesting the actual 
names, perhaps as a parallel to vfork(). I had used both TENEX and 
Multics, which both had page mapping. Multics' memory-mapped segments 
were quite fundamental, of course. I think we were looking for something 
vaguely upward compatible from the existing system calls. We did not 
leap to an mmap() right away just because it would have been a more 
radical shift than continuing the stream orientation of UNIX. I did not 
implement any of this: it was just a brainstorming session.

Dan H


More information about the TUHS mailing list