On Mon, Dec 19, 2022, 8:10 PM Larry McVoy <lm(a)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(a)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.