Please count the Linux-based systems.
Please count the Linux-based systems.
Industry modifications to FreeBSD and Minix (and maybe NetBSD too?) were never sent back upstream or were sent back with a delay.
Splinters in Linux-based systems are still open source so good modifications can be added to upstream.
The most popular software that was derived from (a number of predecessors and) FreeBSD, Apple’s Darwin, is free software, nobody stops anyone from taking code from there. In fact, quite a few FreeBSD developers are (were?) paid by Apple.
Sony also used FreeBSD in PlayStation 4[2] and to my knowledge their modifications have not been open sourced. I may be wrong though.
[1] https://en.wikipedia.org/wiki/Intel_Management_Engine#Design
[2] https://en.wikipedia.org/wiki/PlayStation_4_system_software
That is true, I should have phrased it more carefully.
> In a way, that makes BSD more free than the GPL.
Yes, BSD is a permissive license and GPL isn't. But the original question was whether GPL leads to more splinters or BSD.
I think that the copyleft nature of GPL leads to fewer "effective" splinters since good modifications can be merged into upstream, and what is left unmerged tends to be less important to the success of the parent project. This has helped Linux gain momentum and unfortunately hasn't much helped the BSDs or Minix. I would like to see the BSDs succeed but I suspect that the permissive license has been one of the impediments to that.
And the companies that did this paid a price for it when FreeBSD moved forward and they were left behind holding a whole bunch of patches.
After the learning the hard way about withholding non-secret sauce patches, many companies contribute back anything that they find in the 'common code' that wouldn't threaten their value proposition. You will regularly see patches with the "Sponsored by" tag in the commit logs:
* https://www.freshsource.org/commits.php
Here's one from a few hours ago by Netflix:
* https://www.freshsource.org/commit.php?message_id=75ad24775b...
NetApp, Dell-EMC Isilon, Juniper, iXsystems, pfSense, etc are often seen in base, but also in ports and also drivers (Intel, Chelsio, Mellonox).
* https://en.wikipedia.org/wiki/List_of_products_based_on_Free...
Or at least one that matters.
Everything is open source, we mostly keep up with Linux development and upstream all of our patches but some take time so we have our own branch. Still entirely open source.
But code talks and talk walks, the android folks were solving real issues - so my own view would have been to be supportive of their efforts which were not insignificant.
And they all take the same source from upstream and maintain compatibility. Packaging and some user-space dependencies aside, binaries run on any Linux system.
Distros are just that: different distributions of the (largely same, interchangeable) software. There is no splintering where it matters: legally and technically.
In the BSD world you will have companies like Sony take BSD into their closed source world. The linux equivalent would be some semi-free environment like Android.
Yeah, just use a chroot. It's the same kernel. You could also just distribute static binaries or have your dynamic libs bundled in a single .AppImage file.
>glibc versions?
Linux guarantees source compatability, but doesn't guarantee binary compatability (unlike most proprietary software like ms-windows).
>X11 vs Wayland?
X11 and wayland are different protocols, but Wayland is reverse-compatible with X11.
>System-d vs init.d ?
I don't know much about init systems, but I don't use systemd, I use OpenRC and it works fine with "systemd-dependent" software like GNOME or KDE by using elogind[0][1] for example.
>Android?
For android apps, you can containerize an android userspace with tools like Waydroid[2].
[0] https://wiki.gentoo.org/wiki/Elogind [1] https://github.com/elogind/elogind [2] https://waydro.id/
Debian's installation manual has a section on how to perform chroot installs. That is, there's a documented process for how to install Debian within another Linux distribution should you choose / need to do that.
It came about because the original author was hoping to try out Debian on a Red Hat system.
It's all userland over the kernal.
These days, even at the process level (or using tools such as jails), it's possible to define largely independent contexts for each individual process. CPU, memory, and kernel are common and/or shared, but other resources can be strongly segregated.
It says a lot that "systemd vs init.d" instead of "systemd vs sysvinit" was there.
The question is not about the ecosystem, though, but about the kernel itself. Yes, there are embedded vendors (mostly networking equipment, and especially routers) who violate the GPL by not complying, but generally speaking, hardware vendors who choose Linux publish sources.
Those sources may not ever make it into mainline, but the device trees/drivers for embedded stuff does provide a reference for a cleaner, better implementation.
Compare to FreeBSD for the Playstation's management layer. Where are the contributions for Cell support? Where are the patches Sony certainly needed to make for wifi and bluetooth? Where are the patches from Juniper for validated FIPS?