Yeah, the big changes in SunOS 4.0 were all around mmap and shared libraries.

But I did a tiny subset of mmap - for mapping device registers only - in SunOS 2 (or 3?).  But I used the CSRG spec for mmap.

On Sun, Dec 15, 2024 at 12:25 PM Dan Cross <crossd@gmail.com> wrote:
On Sun, Dec 15, 2024 at 2:12 PM Luther Johnson
<luther.johnson@makerlisp.com> wrote:
> I don't know where mmap showed up in vanilla BSD distributions, but it
> was in SunOS 4.0, I used it.

kern_mman.c shows up in 4.1c, but is behind an #ifdef; I gather it
wasn't fully implemented. It was described in 4.2, as mentioned, but
wasn't "fully functional" until Net/2 (according to mmap(2), anyway).

Sun's version was an independent implementation.

As mentioned by Chet, the interface is modeled after the PMAP call on
TENEX/TOPS-20. The virtual memory system on TENEX, in turn, was at
least partially influenced by Multics, so there is some Multics
intellectual DNA (perhaps mutated :-)) in mmap(), though it's
indirect.

        - Dan C.

> To the other points, the Multics
> "one-level-store" idea was very powerful, and was an important influence
> in Apollo Domain/OS, and it was probably there in Prime Computer's OS too.
>
> On 12/15/2024 12:02 PM, Chet Ramey via TUHS wrote:
> > On 12/15/24 4:43 AM, G. Branden Robinson wrote:
> >> At 2024-12-15T07:22:29+0000, Lars Brinkhoff wrote:
> >
> >> Maybe I would, in fact, hate using Multics.  But I can't forget that
> >> well after Unix had fledged, its developers at CSRC found it necessary
> >> and/or desirable to borrow back a Multics concept: they named it mmap().
> >
> > I think it was primarily inspired by TENEX/TOPS-20, and it was the CSRG
> > who proposed it. The concepts are described in CSRG TR/4 and mmap()
> > ended up described in the 4.2BSD manual, but not implemented.
> >
> > I don't think Reiser's VM system at the Labs included mmap(), but I think
> > it did have something similar. Of course, that never really saw the light
> > of day.
> >
>