From: Warner Losh <imp@bsdimp.com>
To: Larry McVoy <lm@mcvoy.com>
Cc: Marc Rochkind <mrochkind@gmail.com>, tuhs@tuhs.org
Subject: [TUHS] Re: SCO's "evidence" (was: RIP Darl McBride former CEO of SCO)
Date: Mon, 4 Nov 2024 22:00:45 -0700 [thread overview]
Message-ID: <CANCZdfp2d1kr9jWqKLBe4c9Gttz0RWX0L0nfN2wtXYC6Unk-9g@mail.gmail.com> (raw)
In-Reply-To: <20241105031440.GE18296@mcvoy.com>
[-- Attachment #1: Type: text/plain, Size: 5834 bytes --]
On Mon, Nov 4, 2024 at 8:14 PM Larry McVoy <lm@mcvoy.com> wrote:
> The bmap implementations I saw were bit for bit identical, same code, same
> variables, same style, same indentation. I'm 100% sure they were not
> independent. 100% sure.
>
They are different in 4.3BSD. They are different in 4.2BSD (but less
different). The underlying filesystems are different on disk, so they
routines have to be different.
You may be 100% sure, but it's not this specific routine.
> I've traced that code through all the Bell Labs stuff to BSD. The idea
> that BSD redid this code the same way, in my mind, is a bridge too far.
> bmap() knows about how stuff is laid out on disk, knows about how stuff
> works in the inode (think indirect blocks and double indirect blocks),
> there is _no_ _way_ BSD wrote the same code independently. No f-ing
> way. They just took it.
You may have found a routine like that, but it's not the bmap routine. It
evolved
from when they started with 32V, true and was copied to ufs_bmap.c 4.2BSD
and
altered to work with the new filesystem layout.
For 4BSD and 4.1BSD it's still in subr.c, where it is in 32V and V7. But
even there,
it's writing directories synchronously but other files async. 32V writes
everything
asynchronously. And a few other diffs if you study.
But the routine bmap was copied to ufs_bmap in 4.2BSD and changed.
It was changed further in 4.3BSD, and further still in 4.4BSD. The code
for this is clear, but in the TUHS repo and on Kirk's disk.
https://www.tuhs.org/cgi-bin/utree.pl?file=V7/usr/sys/sys/subr.c
https://www.tuhs.org/cgi-bin/utree.pl?file=4BSD/usr/src/sys/sys/subr.c
https://www.tuhs.org/cgi-bin/utree.pl?file=4.2BSD/usr/src/sys/sys/ufs_bmap.c
https://www.tuhs.org/cgi-bin/utree.pl?file=4.3BSD/usr/src/sys/sys/ufs_bmap.c
and net/2 had ufs_bmap.c. Berkeley agreed to stop distributing it as
it was there, likewise with 4.4BSD.
4.4BSD-Lite has a completely rewritten ufs_bmap.c (I'd checked 4.4bsd-alpha
before). It's very very different. There's an AT&T copyright on the file,
but bmap
is completely different (and it calls routines that are completely
different). You
can see if from the online 4.4-BSDlite2 artifacts (the 4.4 directory from
kirk's
collection also has 4.4-Lite, I believe, and the file is almost the same).
https://github.com/sergev/4.4BSD-Lite2/blob/master/usr/src/sys/ufs/ufs/ufs_bmap.c
has the online copy if people want to check it out.
> I know we all want to think all the Bell Labs code is free or has been
> reimplemented and it's all good, we're clean. We're not.
>
The historical artifacts we have don't show that. Plus, the ancient unix
license gives the right to 32V and 32V derived systems (which all the BSDs
are),
so even if what you said is true, there's a good foundation (but what you
say
is not true, bmap is not 100% identical between 32V and even 4BSD, let alone
4.4BSD-lite, where it's completely re-written.
> It doesn't matter at this point but it matters to me that we are honest
> about how we got here.
We got here in large part due AT&T and Berkeley working out their
differences,
Berkeley rewriting some code and AT&T signing off on 4.4BSD-lite and
Berkeley signing off on System V (since AT&T had also copied from Berkeley
without credit).
Now, maybe there was some other routine, or maybe it was Net2 that you found
it in (and it was fixed), but 4.4BSD-lite is clean in this respect.
Warner
> On Mon, Nov 04, 2024 at 05:32:19PM -0800, ron minnich wrote:
> > I had people relate to me, at least once, cases of utterly independent
> > implementations of a function that were byte for byte the same, as found
> in
> > one court case a friend of mine (now deceased) got pulled into. He had to
> > prove he'd written his code from scratch. But these were pretty simple
> > functions. I don't know if bmap qualifies ...
> >
> > How could this happen? I don't know, but the court case that long
> predated
> > SCO. The only conclusion I can reach
> > is that when enough techniques, ideas, mailling lists, discussions, and
> > documents become part of a shared culture, the code which
> > people create might be the same. A weird parallel evolution of code.
> >
> >
> >
> > On Mon, Nov 4, 2024 at 5:09???PM Larry McVoy <lm@mcvoy.com> wrote:
> >
> > > The thing I never got a reasonable answer to was I found code in BSD
> that
> > > was identical to code going back to at least V7. Find bmap() in the
> UFS
> > > code and then find the same in V7. I might be wrong about V7, might be
> > > 32V, might be V6. I don't think it matters, it's the same in all of
> them.
> > >
> > > bmap() is the code that maps a logical block to a phsyical block,
> > > I'm quite familiar with it because I rewrote it to bmap_write() and
> > > bmap_read() as part of making UFS do extents:
> > >
> > > http://mcvoy.com/lm/papers/SunOS.ufs_clustering.pdf
> > >
> > > When all the lawsuits were going on, since I knew that code really
> well,
> > > I went off and looked and the BSD code at that time had bit for bit
> > > identical bmap() implementations.
> > >
> > > I never understood why BSD could claim they rewrote everything when
> they
> > > clearly had not rewritten that.
> > >
> > > I've raised this question before and I just went and looked, bmap() has
> > > changed. I'm pretty sure I have Kirk's BSD source releases, if I do,
> > > I'm 100% sure I can back up what I'm saying. Not sure I care enough to
> > > do so, it's all water under the bridge at this point.
> > > --
> > > ---
> > > Larry McVoy Retired to fishing
> > > http://www.mcvoy.com/lm/boat
> > >
>
> --
> ---
> Larry McVoy Retired to fishing
> http://www.mcvoy.com/lm/boat
>
[-- Attachment #2: Type: text/html, Size: 8443 bytes --]
next prev parent reply other threads:[~2024-11-05 5:01 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-04 1:17 [TUHS] RIP Darl McBride former CEO of SCO Will Senn
2024-11-04 2:31 ` [TUHS] " Greg 'groggy' Lehey
2024-11-04 3:34 ` Wesley Parish
2024-11-04 17:35 ` Marc Rochkind
2024-11-04 22:50 ` [TUHS] SCO's "evidence" (was: RIP Darl McBride former CEO of SCO) Greg 'groggy' Lehey
2024-11-05 0:05 ` [TUHS] " Marc Rochkind
2024-11-05 0:39 ` Warner Losh
2024-11-05 1:09 ` Larry McVoy
2024-11-05 1:32 ` ron minnich
2024-11-05 1:39 ` Warner Losh
2024-11-05 3:14 ` Larry McVoy
2024-11-05 5:00 ` Warner Losh [this message]
2024-11-05 1:35 ` Warner Losh
2024-11-05 1:54 ` Larry McVoy
2024-11-05 2:13 ` Warner Losh
2024-11-05 3:14 ` Marc Rochkind
2024-11-07 20:41 ` ron minnich
2024-11-07 20:59 ` Marc Rochkind
2024-11-08 0:03 ` Theodore Ts'o
2024-11-08 0:35 ` Warner Losh
2024-11-09 18:29 ` G. Branden Robinson
2024-11-09 20:30 ` Theodore Ts'o
2024-11-09 22:23 ` G. Branden Robinson
2024-11-10 4:27 ` Theodore Ts'o
2024-11-12 1:55 ` Kevin Bowling
2024-11-12 2:34 ` Kevin Bowling
2024-11-12 18:12 ` Marc Rochkind
2024-11-05 1:31 ` [TUHS] IBM's involvement (was: SCO's "evidence" (was: RIP Darl McBride former CEO of SCO)) Greg 'groggy' Lehey
2024-11-05 3:04 ` [TUHS] " Marc Rochkind
2024-11-06 4:00 ` Greg 'groggy' Lehey
2024-11-05 17:55 [TUHS] Re: SCO's "evidence" (was: RIP Darl McBride former CEO of SCO) Noel Chiappa
2024-11-05 18:52 ` ron minnich
2024-11-05 19:01 ` Warner Losh
[not found] ` <CAEoi9W66zUf8RvzEYQG7qNXN-BX6gyDejXCrHw3rk46UM_-XPg@mail.gmail.com>
2024-11-08 20:27 ` Warner Losh
[not found] ` <61F8BCE5-44C5-49D2-BEFE-B8717E3DDEA8@kdbarto.org>
[not found] ` <CANCZdfrJExbrJqp3MgE0Tp9-a=PYTeFpkULk8NnPfBTeoyLW-g@mail.gmail.com>
2024-11-08 23:18 ` [TUHS] Fwd: " Warner Losh
2024-11-09 0:40 ` [TUHS] " rob
2024-11-05 18:58 ` Warner Losh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CANCZdfp2d1kr9jWqKLBe4c9Gttz0RWX0L0nfN2wtXYC6Unk-9g@mail.gmail.com \
--to=imp@bsdimp.com \
--cc=lm@mcvoy.com \
--cc=mrochkind@gmail.com \
--cc=tuhs@tuhs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).