<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Aug 31, 2024 at 12:38 AM Greg 'groggy' Lehey <<a href="mailto:grog@lemis.com">grog@lemis.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Saturday, 31 August 2024 at 0:12:16 -0400, Noel Chiappa wrote:<br>
>> From: Kevin Bowling<br>
><br>
>> <a href="https://gunkies.org/wiki/BSD/386" rel="noreferrer" target="_blank">https://gunkies.org/wiki/BSD/386</a> and the parent page on seem to suggest<br>
>> it originated off Net/2 directly.<br>
><br>
> I wouldn't be putting too much weight on what that page says; most of the<br>
> *BSD pages were done by people I don't know well, and who might have gotten<br>
> details wrong<br>
<br>
FWIW, my understanding is also that it came from Net/2. But it's been<br>
a few years now, and I wasn't directly involved. I just can't think<br>
of anything else from which it could have been derived.<br>
<br>
> (So confusing that '386BSD' is something different from<br>
> 'BSD/386'. Was there ever actually a '386/BSD'?)<br>
<br>
Not to my knowledge.<br>
<br>
> Someone who knows the early history of all the *BSD systems (as in,<br>
> you lived through all that) is welcome, nay invited, to fix any<br>
> errors therein.<br>
<br>
I wouldn't exactly call it early history, but my first exposure to<br>
(any kind of) BSD was in March 1992, when I installed BSDI's BSD/386<br>
(something like Beta 0.3.1). You can read more than you want at<br>
<a href="http://www.lemis.com/grog/diary-mar1992.php" rel="noreferrer" target="_blank">http://www.lemis.com/grog/diary-mar1992.php</a><br>
<br>
I subsequently (August 1992) visited Rob Kolstad, who was running the<br>
show at the time, and he filled me in. With his help, what I recall<br>
is:<br>
<br>
- Some time in or before 1991, a company called Berkeley Software<br>
Design Inc (BSDI) was formed with the intention of completing and<br>
marketing a BSD variant. The system was released as BSD/386 in<br>
1992.<br>
<br>
- BSDI had a number of prominent BSD people, including Bill Jolitz.<br>
Bill was not in agreement that they should charge money for it, and<br>
as Rob tells me, in December 1991 Bill left the company after<br>
significant altercations, destroying all his work. He later<br>
released his version, 386BSD.<br></blockquote><div><br></div><div>Yes. They started with net/2. Other accounts have Bill Jolitz bringing some</div><div>preliminary 386 porting work to BSDi and then leaving in a huff over</div><div>charging for it. He released 386BSD based on that work (or a redo of</div><div>that work, I've seen both accounts, not sure which one to believe). He released</div><div>them to the world, and then had no ability to manage the project he created</div><div>leading to the patch kit which without a leader fissioned into NetBSD</div><div>and FreeBSD, each with different aims.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
- At some later date BSDI released a SPARC port, at which point the<br>
name BSD/386 seemed inappropriate, so they changed it to BSD/OS. I<br>
have a CD set of release 2.0 labeled BSD/OS.<br>
<br>
- The last CD set I have is undated, version 3.0, labeled BSDI<br>
Internet Server. I think it was still called BSD/OS, but I can't be<br>
sure.<br>
<br>
Round this time I moved away from BSD/OS, since it cost money, and<br>
FreeBSD seemed to be just as good.<br>
<br>
- In June 2000 we (FreeBSD) discussed merging the code bases of BSD/OS<br>
and FreeBSD, specifically for SMP improvements. At the time the<br>
BSD/OS release was 4.x, and we were looking at the 5.0 code. This<br>
is also the first time where I saw the name written as BSDi;<br>
previously, including all the CDs, it was always BSDI.<br></blockquote><div><br></div><div>There were also a number of items that did get merged into FreeBSD at</div><div>this time. We also looked at the PC Card stack moving over, but I didn't</div><div>have the time to get it working on FreeBSD because significant SMPNG</div><div>work made bringing over the code more difficult and a bigger project than</div><div>I had time for.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
On Friday, 30 August 2024 at 21:40:29 -0700, Kevin Bowling wrote:<br>
><br>
> BSD/386 seems to be a first order derivative of net/2. Source:<br>
> <a href="https://ia902809.us.archive.org/25/items/BSD3861.1CD/bsd1.1-manual.pdf" rel="noreferrer" target="_blank">https://ia902809.us.archive.org/25/items/BSD3861.1CD/bsd1.1-manual.pdf</a>.<br>
> To what degree that it incorporated anything from 386bsd would<br>
> probably rely on first hand accounts.<br>
<br>
As mentioned above, not at all. When the first flaky 386BSD betas<br>
were released, BSD/386 was already up and running.<br></blockquote><div><br></div><div>Yes. Jolitz code was in both, but BSDi's BSD/386 was first. There was</div><div>a longer beta for it as well. That code circulated a bit before it was</div><div>officially released. I think this was to attract VC funding for BSDi, but</div><div>that detail is from a half-remembered conversation with Mike Karls and</div><div>Kirk McKusick over beers far too many years ago.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
> I don't have much to go on for BSD/OS 2.x but it seems like it was<br>
> about rebasing on 4.4-lite if we look at the family tree<br>
> <a href="http://www.netbsd.org/about/history.html" rel="noreferrer" target="_blank">http://www.netbsd.org/about/history.html</a><br>
<br>
Yes, this would have been one of the results of the AT&T lawsuit.<br>
FreeBSD 2.0 was also rebased on 4.4BSD-Lite.<br></blockquote><div><br></div><div>As did NetBSD for 1.0, though they took a different tact: FreeBSD did</div><div>a fresh import into a fresh repo, while NetBSD removed bits incrementally</div><div>until it was clean, but then had issues making their repo public due to the</div><div>settlement with AT&T.</div><div><br></div><div>Everybody had to rebase. Nobody could continue to use NET/2 that was using</div><div>it when the lawsuit started. After 4.4-lite came out, there was no real reason for</div><div>others to start with net/2, so I'm not aware of anybody else using that code for</div><div>a full kernel.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
> Luckily for BSD/OS 4.x we get some release notes:<br>
> *<br>
> <a href="https://ia600908.us.archive.org/view_archive.php?archive=/22/items/bsdos-4.01/bsdos-4.01-binary.iso&file=RELEASENOTES.pdf" rel="noreferrer" target="_blank">https://ia600908.us.archive.org/view_archive.php?archive=/22/items/bsdos-4.01/bsdos-4.01-binary.iso&file=RELEASENOTES.pdf</a><br>
<br>
Yes, that looks good. It also narrows the time frame for when BSDI<br>
became BSDi, some time between July 1998 and June 2000.<br>
<br>
> For 5.x I again don't have much to go on but we can take an indirect<br>
> approach from some FreeBSD SMPng reports where BSDi donated source<br>
> code that was not used wholesale but instead had to be reintegrated or<br>
> rewritten:<br>
> * <a href="http://www.lemis.com/grog/Daemons-advocate/unix-way-c.html" rel="noreferrer" target="_blank">http://www.lemis.com/grog/Daemons-advocate/unix-way-c.html</a><br>
<br>
Heh. I had forgotten about that.<br></blockquote><div><br></div><div>Yes. By the time SMPNG had started, the divergence made lots of the</div><div>kernel code not a drop in. But lots of code was integrated into SMPNG,</div><div>in addition to lots being written / modified.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
> I would be pretty confident in saying BSD/OS is _not_ a FreeBSD<br>
> derivative but a first order derivative of net/2<br>
<br>
Yes, I think so. I can't think of anything else that could have been<br>
in between.<br></blockquote><div><br></div><div>BSDi came from net/2. FreeBSD came from net/2. They shared code</div><div>back and forth in the FreeBSD 3.x, 4.x, 5.x and 6.x time period.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
> ... that eventually wound up looking a little bit like FreeBSD in<br>
> its later years.<br>
<br>
Hmm. You haven't discussed how FreeBSD evolved, which was from<br>
386BSD. And my understanding is that 386BSD, like BSD/386, was also<br>
derived from Net/2. I used both BSD/OS and FreeBSD side by side for a<br>
number of years without noticing significant differences. It wasn't<br>
until I started porting the SMP code from BSD/OS 5.0 to FreBSD<br>
(coincidentally also 5.0) that I realized how different the kernel had<br>
become.<br></blockquote><div><br></div><div>Yes. net/2 -> BSD/386 -> BSD/OS and net/2 -> 386bsd -> patch kit -> FreeBSD.</div><div><br></div><div>But after the BSD/386, BSDi added SMP work (ASMP) and some vm improvements.</div><div>They did a lot of driver work, including supporting PC Cards and a few other things.</div><div>They also wrote 'witness' to debug their locking work that would wind up later in FreeBSD.</div><div><br></div><div>FreeBSD also added VM improvement from John Dyson in 3.x and 4.x as well as</div><div>ASMP support in 4.x from Steve Passe. CAM was added between 3 and 4 as well,</div><div>so we lost a bunch of drivers because CAM was a steep learning curve compared</div><div>to the Julian Elischer scsi code that had come before (though in the end not</div><div>that different from it, the different world view was hard to approach). FreeBSD also</div><div>got a new device model in 3.2 by Doug Rabson (to this day called Newbus, despite</div><div>being over 25 years on from whatever oldbus was).</div><div><br></div><div>During this time, small bits of code flowed back and forth. You can still find commits</div><div>that mention the committer got the code from BSDi, though sometimes that's spelled</div><div>'from Mike Karls' :).</div><div><br></div><div>So BSD/386 was 1992 and FreeBSD 1.0 was late 1993. SMP/ng work started in 2001</div><div>or so, almost a full decade of evolution where both groups were heavily innovating</div><div>core parts of the kernel. These changes made it hard to drop in code.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
> According to grog in<br>
> (<a href="http://www.lemis.com/grog/Daemons-advocate/unix-way-c.html" rel="noreferrer" target="_blank">www.lemis.com/grog/Daemons-advocate/unix-way-c.html</a>) there was an<br>
> attempt by BSDi to rebase to FreeBSD but it was abandoned.<br>
<br>
My recollection was that the intention was to merge rather than<br>
rebase. What we did do (the SMP code) was definitely from BSD/OS to<br>
FreeBSD. The rest of the merge idea didn't get very far, and I can't<br>
recall any significant attempts to push it forward.<br></blockquote><div><br></div><div>That's what I recall as well. I do recall that FreeBSD had to significantly</div><div>rework much of the code we got from BSD/OS due to the evolution</div><div>in both the kernel, and some of Steve Passe's work had to be unwound</div><div>before we could move forward. And it took years to get done. We'd originally</div><div>hoped to do a release in like 2001, and then did a tech preview of 5.0 in 2003</div><div>a full release in 5.2 in 2004 that was useable, but it wasn't really until maybe</div><div>2007 or so that SMP was solid.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
> I've found scant detail on what WindRiver did with 5.0 and 5.1 so I<br>
> am unsure, but in playing around with 5.1 it does have FreeBSD's CAM<br>
> layer but does not look like i.e. FreeBSD 5.x in a variety of<br>
> material ways.<br>
<br>
It's worth considering what things were like at the time. You, as<br>
potential user, have the choice: BSD/OS for $1000 or FreeBSD for free.<br>
What advantage do you get from BSD/OS? Yes, there were some, but they<br>
weren't really enough to keep BSD/OS viable. That's why I had made<br>
the change a few years earlier, and I don't think that WindRiver's<br>
heart was really in it. So the SMP code was really something like a<br>
swan song.<br></blockquote><div><br></div><div>Yes. BSDi's business model hadn't expected the rise of Open Source being</div><div>serious competitors. And the pressures from Linux also helped to slow sales</div><div>around the time the rebase / merge / whatever had been contemplated. Plus</div><div>the sale to WindRiver was supposed to be this wonderful thing, but in the</div><div>end turned out to be not so great.</div><div><br></div><div>I've not studied the BSDi CAM. I'll have to do that. I have studied the Ultrix/OSF/1</div><div>CAM and it is quite different than the FreeBSD CAM (which has evolved significantly</div><div>since 3.x days). The notion of source code compatibility for all SCSI drivers was an</div><div>interesting thing, but even between the Ultrix and FreeBSD CAMs, there's huge differences</div><div>in headers and function blocks that don't seem to be described by the standard and</div><div>that need slightly different code as well... I've also not been able to find source to</div><div>the original MacOS CAM nor the early DOS CAM frameworks, though references to</div><div>them litter the early literature from the mid 90s. Both of them moved on from CAM</div><div>after the first generation of SCSI devices.</div><div><br></div><div>Warner</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Greg<br>
--<br>
Sent from my desktop computer.<br>
Finger <a href="mailto:grog@lemis.com" target="_blank">grog@lemis.com</a> for PGP public key.<br>
See complete headers for address and phone numbers.<br>
This message is digitally signed. If your Microsoft mail program<br>
reports problems, please read <a href="http://lemis.com/broken-MUA.php" rel="noreferrer" target="_blank">http://lemis.com/broken-MUA.php</a><br>
</blockquote></div></div>