Re-subject'd as this part of the conversation diverges.
Found the quote that I was thinking of when I said that:
https://yarchive.net/comp/bsd.html
"Research Unix 8th Edition started from (I think) BSD 4.1c, but with enormous amounts
scooped out and replaced by our own stuff." - Dennis Ritchie
The "I think" adds some murkiness for sure. There's definitely a good
chunk of code from 4BSD. Compare init, getty, locore.c (as opposed to .s in V7 back).
Heck, even the main.c between the two kernels are more similar to each other than V7. I
would almost opt towards calling that being rebased on 4BSD rather than V7 with bits and
pieces of BSD added. I could see it being more beneficial to start with 4BSD and tack on
necessary Bell bits rather than take V7/32V and try and shoehorn in the VM implementation
for VAX.
The 4.1cBSD copy on the archive does appear to be pretty different, so in terms of raw
comparison, I suspect the basis is 4BSD rather than 4.1cBSD. I don't know that we
have a clean copy of 4.1BSD gold, I'd be interested to see if the structure of the
source code changed between 4.1 and 4.1c, as 4.1c does exhibit the new organization by the
BSD folks, 4BSD still shows folders like cmd, lib, and so on.
Not trying to be combative by any means, but I've been doing a bit of research lately
into when V8 was snapped from BSD and where Bell and Berkeley then diverged from that last
major confluence, especially with a focus on init and other early stages of userland.
- Matt G.
------- Original Message -------
On Friday, July 15th, 2022 at 1:51 AM, Paul Ruizendaal via TUHS <tuhs(a)tuhs.org>
wrote:
Message: 6
Date: Thu, 14 Jul 2022 17:51:39 +0000
From: segaloco segaloco(a)protonmail.com
Given V8 being rebased on 4(.1?)BSD, I suspect the path of least resistance would be to
just start grafting V8 code onto the working 4.1BSD.
I doubt that V8 is "rebased on 4(.1?)BSD": in my understanding it ported some
code from 4xBSD, but it is a different code base.
As I currently understand it, the V8 kernel:
- is a further development from 32V
- retains the code organisation of the V5..32V versions
- adds virtual memory code from BSD
- adds select() from BSD
and then adds all the V8 innovation on top of that (streams, file system switch, virtual
proc file system, networking, remote file system, support for the Blit terminal, etc.)
In particular in the area of networking the V8 kernel is organised quite differently from
the 4xBSD kernel, including the Chaosnet driver (i.e. it is streams based).
Paul