The BSD family tree
github.com
github.com
Edit: Updated with newest version.
Unlike Linux, with has a viral license which essentially forces people to work on the same code base - BSD doesn't, which from a technical standpoint causes way more forking and less contributions back to a main tree.
Also, Linux have longstanding forks, the Android kernel and the real-time tree to take two prominent examples.
I really don't get it: Companies are routinely shown to be ignoring GPL and other licensing with zero consequence and your average computer user probably doesn't even understand the concept of a source code license.
Does anyone really think that if OpenBSD had some GPL'ed code in there, and $company was taking that code and distributing it closed-source, that there would be any consequences whatsoever? If so, why does this never make the news? If not, then why do these people bother?
The BSDs have a different philosophy where the kernel and userland go together as one package. Linux distros reuse the same kernel and rely on GNU for many tools, but are otherwise free to do their own thing, just like the BSDs.
I doubt the GPL is what really keeps Linux together. Rather, since the Linux kernel is developed separately from everything else, and is such a huge thing, there's little incentive to fork the kernel along with userland. You develop a new userland (as with Android) and keep the kernel.
Now it's not exactly accurate to call this a fork either b/c they do eventually catch up... but still, lots of non-standard kernels out there.
If this were so, my life would be so much easier. Maybe things are like this on higher-end servers, in DevOps and so on, but the other side of Linux deployment -- in embedded systems, consumer hardware, various gizmos, phones and so on -- it's very much not true.
Virtually no device that's actually being sold somewhere runs a vanilla Linux kernel when you take it off the shelf. Companies comply with GPL technically -- they publish their changes and they'll even mail you the CD if you ask nicely -- but there's no community work of any kind, really. Sometimes you'll have manufacturers working with funky hardware from obscure companies that never bothered to update their drivers past 2.6.32 (or, best case scenario, 3.2) and the forward-porting dance begins -- that is, if you're lucky and the driver isn't a binary blob. Sometimes the opposite happens -- you're working with shiny new stuff but a Really Smart Manager heard that older kernels are more stable and now the backporting from 4.10 to 3.16 dance begins. The "same codebase" thing is pretty much just a distant dream now -- and you don't want to see most of the codebases out there.
Granted, there is a common(-ish) core -- the differences are not on the magnitude of FreeBSD vs. OpenBSD (different vmm systems etc.), but IRL, there's rarely a "single" Linux.
Edit: oh, and don't even get me started on all the innuvashon that happens in the layers above the kernel.
It's probably pretty well-known that question mark is NeXTSTEP, which was built at NeXT, the company that Steve Jobs founded after he left Apple the first time around. NeXTSTEP was built around BSD mostly because of Avie Tevanian's involvement in CMU's Mach kernel project.
I was also surprised at the origins of DarwinBSD. I never really looked up the history and didn't realize it forked some of the code off FreeBSD.
It's interesting to note that the PS4 OS is also a forked FreeBSD variant as well.
Sometimes i wish the same kind of attitude towards stability would be a prevalent in the Linux world, rather than the magpie like chase of shinies.
They run the FreeBSD network stack in another process in user land, hence the copyright claim.
Here's a nice talk at CCC last year which explains some bits of FreeBSD in the PS4. It's mostly about hardware and how to run Linux on it, but FreeBSD gets a nice mention there too.
The earliest I can find is 4.1c from 1983, but that looks more fully formed that I expected. And there is a fragment in a 2.9 from 1982, but I think that leaked in from 4.1.
My thinking w/o references (enthusiast but was not 'there' at the time) is that this was introduced with either the 32Bit VM system, FFS implementation, or BSD network starck - probably the McCusick FFS papers [ed: are worth a read].
Really it's kind of nuts how 'usable' and 'current' a load of 4.3BSD on a VM load feels out of the box.
-Off NET/2 or Reno probably.-
Correction, off 4.0.something or earlier.
See wikipedia.
There were lots of other proprietary BSD based systems in the 80s as well.
I guess they're confining the history to non-commercial (albeit semi-closed source) versions.
What happened with the 4.4BSD lite to OpenBSD fork? The next OBSD is a parent of NetBSD.
I though they just added Mach IPC ?