On Mon, Dec 19, 2022, 8:10 PM Larry McVoy <lm@mcvoy.com> wrote:
On Mon, Dec 19, 2022 at 06:52:47PM -0800, Bakul Shah wrote:
> On Dec 19, 2022, at 1:19 PM, Rob Pike <robpike@gmail.com> wrote:
> >
> > Reiser and London's Unix, which I greatly admired, died on the vine
> > for a variety of political reasons, as well as because it had
> > slightly different semantics in some important cases, and because
> > of a broad antipathy to virtual memory across the company due to
> > various people having used VM on inadequate hardware, and of course
> > then there was Multics. Sandy Fraser was very nervous about
> > Research adopting the BSD kernel because of his experience with
> > Atlas. But let it be said: Reiser's VM system was seriously
> > impressive, cleanly integrated, structurally central, and
> > wonderfully fast. And Sandy relented but the general warmth of 1127
> > towards Berkeley led to Research adopting Berkeley Unix as its VAX
> > VM platform, despite some, including myself, feeling that was
> > inferior choice.
>
> Is there a publicly available description of Reiser's VM system?
> I found "A Unix operating system for the DEC VAX 11/780 Computer"
> by London & Reiser which includes a long paragraph on VM (included
> below) but that is about it.
>
> And it would be interesting to hear why and what you found in
> Reiser's VM system that was better than Berkeley's VM system.

Berkeley didn't really have a good VM system, other than Bill Joy
imagining it and then went on to go to Sun and inspired Joe Moran
to implement it.

The 4.2 and 4.3 VM were too vax specific.

FreeBSD took Mach's VM system and while I have respect for what
Mach was trying to do, holy moly, what a mess.

To be fair, 4.4BSD had the mach vm because while Sun wanted to donate their VM, the lawyers killed the deal due to its value to the company... I'd sure rather have had the SunOS vm in 4.4BSD, but they went with what was available.  The Mach VM works, but it's fit to the 4.4 kernel is imperfect. 

FreeBSD made it work via the early heroics of Dyson and Dillon, and the late SMP tuning of Juniper. It works, but has undergone at least 5 or 6 reorgs over the years. It also scales as all the bottlenecks have been fixed... but it could sure stand a rewrite (though that will have to wait for the next paradigm shift).

NetBSD and OpenBSD adopted uvm instead maybe 5 or 10 years after 4.4 was released. This VM was initially more easily scaleable than Mach, but I'm not sure the vastly increased core counts of late work well with it.

Warner

I can't speak to Reiser's code because I haven't seen it, but I
can speak to Joe Moran's code, it was just so clear to see what
he was trying to do.  And he did it.  And you could understand it,
I did as a year out of grad school.