<div dir="ltr">Yeah, the big changes in SunOS 4.0 were all around mmap and shared libraries.<div><br></div><div>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.</div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Sun, Dec 15, 2024 at 12:25 PM Dan Cross <<a href="mailto:crossd@gmail.com">crossd@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Sun, Dec 15, 2024 at 2:12 PM Luther Johnson<br>
<<a href="mailto:luther.johnson@makerlisp.com" target="_blank">luther.johnson@makerlisp.com</a>> wrote:<br>
> I don't know where mmap showed up in vanilla BSD distributions, but it<br>
> was in SunOS 4.0, I used it.<br>
<br>
kern_mman.c shows up in 4.1c, but is behind an #ifdef; I gather it<br>
wasn't fully implemented. It was described in 4.2, as mentioned, but<br>
wasn't "fully functional" until Net/2 (according to mmap(2), anyway).<br>
<br>
Sun's version was an independent implementation.<br>
<br>
As mentioned by Chet, the interface is modeled after the PMAP call on<br>
TENEX/TOPS-20. The virtual memory system on TENEX, in turn, was at<br>
least partially influenced by Multics, so there is some Multics<br>
intellectual DNA (perhaps mutated :-)) in mmap(), though it's<br>
indirect.<br>
<br>
        - Dan C.<br>
<br>
> To the other points, the Multics<br>
> "one-level-store" idea was very powerful, and was an important influence<br>
> in Apollo Domain/OS, and it was probably there in Prime Computer's OS too.<br>
><br>
> On 12/15/2024 12:02 PM, Chet Ramey via TUHS wrote:<br>
> > On 12/15/24 4:43 AM, G. Branden Robinson wrote:<br>
> >> At 2024-12-15T07:22:29+0000, Lars Brinkhoff wrote:<br>
> ><br>
> >> Maybe I would, in fact, hate using Multics.  But I can't forget that<br>
> >> well after Unix had fledged, its developers at CSRC found it necessary<br>
> >> and/or desirable to borrow back a Multics concept: they named it mmap().<br>
> ><br>
> > I think it was primarily inspired by TENEX/TOPS-20, and it was the CSRG<br>
> > who proposed it. The concepts are described in CSRG TR/4 and mmap()<br>
> > ended up described in the 4.2BSD manual, but not implemented.<br>
> ><br>
> > I don't think Reiser's VM system at the Labs included mmap(), but I think<br>
> > it did have something similar. Of course, that never really saw the light<br>
> > of day.<br>
> ><br>
><br>
</blockquote></div>