On Thu, Jun 27, 2019 at 5:13 AM Ben Greenfield via TUHS <
tuhs(a)minnie.tuhs.org> wrote:
On Jun 27, 2019, at 6:59 AM, arnold(a)skeeve.com
wrote:
Larry McVoy writes:
>>> OK, I'll bite. Go read the source in the FreeBSD tree, which has
been
>>
reduced in size by 60% according to someone on the team. Then come
>> back and draw me a picture of what it does.
On Jun 27, 2019, at 12:01 AM, Lyndon Nerenberg <lyndon(a)orthanc.ca>
wrote:
>
Larry, it seems to me your argument is the Mach code should never
> have been incorporated into BSD in the first place. That's fine,
> but it's not the Mach developers fault that happened, so maybe you
> should lay off them for not writing their research software to a
> production shop standard they were never a part of?
Ben Greenfield via TUHS <tuhs(a)minnie.tuhs.org> wrote:
> My understanding is that the BSD layer was a requirement from DARPA.
> DARPA wanted a “normal” interface to the kernel and BSD was that
interface.
Yes, Mach had to provide a BSD layer on top, but that's not the source
of Larry's gripes.
It's the other way around. 4.4 BSD pulled the VM code out of Mach and
into BSD to provide mmap and some level of portability off the Vax. From
there the Mach code got into FreeBSD. That's what Larry is complaining
about and what Lyndon is saying isn't fair to the Mach guys.
Thank you for this clarification, so this conversation has been going on
since the 80’s and gets ignited from time to time.
Yea, there's been three or four rounds of rototilling in the FreeBSD vm.
While it shares some structures with its Mach ancestors, complaining about
it to paint Mach as this or that is unfair.
FreeBSD's sys/vm has had a crapton of changes to make to scale in an MP
system, to adopt non-uniform page sizes, etc. Some of these changes have
been done with skill and subtly. Some have been done by a ham-fisted
goober. It would overstate things to say the most recognizable part of Mach
is the copyright headers :), but those bits are arguable the most
unchanged. What's resulted lacks architectural purity because it wasn't
designed from scratch to be pure. It's grown organically over the last
30-odd years as different groups, companies and organizations have found it
necessary to fund development.
The SunOS 4.x code, which was almost donated to the BSD project only to be
scuttled at the last minute, has the twin advantages of being purpose built
for only two architectures and didn't need to scale to thousands of CPUs,
and stopped evolving in the 90s. As such, it can maintain its architectural
purity since it's not needed to grow and adapt since then. All that
"growth" happened in Solaris. So it's also a bit unfair to compare that
code which was developed over a decade to FreeBSD's.
But yea, DARPA was about networking in the Unix world. BSD was Unix at the
time since AT&T didn't have the business structure to do the contracts, and
BSD's 2BSD or 3BSD was little more than a slightly more evolved V7 research
edition with some really cool user land features and a few more drivers for
hardware BSD users had. The Mach VM came late to the game and was never the
focus of the DARPA contracts.
For another view on how well CSRG integrated Mach into BSD, see NetBSD's
uvm, a complete rewrite.
Warner