Hacker News new | past | comments | ask | show | jobs | submit login

Easy answer.

The GPLv2

Linus Torvalds

—-

GPLv3 would have flopped. BSD results in variants and splinters. as a dictator Linus made a ton of good calls - and a dictator making good calls is pretty efficient.

The part that makes me laugh is fsf ignoring the views of their number one success as they fragmented copyleft with GPLv3. Linus has built THE most successful community collaboration. Instead the FSF brought in the lawyers




> The GPLv2

Though this helped a lot, I believe the commandment "Do not change user space" was a much larger factor. In some upgrades of any of the BSDs, some user program will crash depending upon what changed in base. Linux, hardly ever happens, I have never had an issue with User Space on Linux Upgrades.


> In some upgrades of any of the BSDs, some user program will crash depending upon what changed in base.

For FreeBSD at least, only in major version releases (12.x->13.x); with minor updates (13.1->13.2) there is API/ABI stability. (Free)BSD also has good kernel compatibility, so you don't have to worry about kernel drivers breaking 'randomly' with each update.

However, if you install the compatibility libraries then even recompiles may not be necessary:

* https://www.freshports.org/misc/compat12x/

* https://www.freshports.org/misc/compat11x/

* https://www.freshports.org/misc/compat10x/

* https://www.freshports.org/misc/compat[4…9]x/


A good point. MS has done well with their compatibility efforts too. Wasn’t it don’t break vs don’t change?


Isn’t linux kinda shitty in binary backwards compatibility? Sure, the kernel interface doesn’t break, but it doesn’t mean much in practice. Good luck running a binary that was compiled one Ubuntu LTS version before the current, let alone multiple years.

Windows does actually have superb backwards compatibility.


yes, you are correct, it is "Do not break user space", thanks.


The other issue is that the FSF is much more focused on ideology than code.

When attempting to be relevant to people who can enrich your product (i.e. hackers), working code is way more important than whether you write letters and a slash before the "linux" part of the name.

Linus is a hacker first and foremost, and ideology takes a backseat. FSF has the cart before the horse.


I'd just like to interject for a moment. What you're referring to as Horse, is in fact, Cart/Horse, or as I've recently taken to calling it, Cart plus Horse.


You think principles unimportant? :)


Different principles is not a lack of principles.


> BSD results in variants and splinters.

Please count the Linux-based systems.


Not OP so not sure what OP meant but I think the reason GPLv2 beats BSD here is that code derived from BSD-licensed code is often taken closed source.

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.


> Industry modifications to FreeBSD and Minix (and maybe NetBSD too?) were never sent back 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.


We only learned by accident in 2017 that Minix is deployed on the Intel Management Engine[1] and we don't know what it does. To this day we don't have the code for the Minix variant that it runs. This wouldn't be the case if Minix was released under GPLv2.

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


At least, the assumption that “nothing” was sent back is wrong. I agree that the BSD license allows to take the code and run away with it, but you don’t have to. In a way, that makes BSD more free than the GPL.


> At least, the assumption that “nothing” was sent back is wrong.

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.


You might take code from there. But you cannot take code from OS X and add it to Darwin. And that is why I cannot just install Darwin and run it on my computers if I wanted to use e.g., network cards.


OS X is Darwin.


> Industry modifications to FreeBSD and Minix (and maybe NetBSD too?) were never sent back upstream or were sent back with a delay.

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...


In the words of Count von Count: One. One Linux kernel. Ah-ha-ha-ha!

Or at least one that matters.


Which of the several kernels is it? Android’s? Chrome OS’s? The anti-free Ubuntu’s?


ChromeOS developer here. You can see our kernels here: https://chromium.googlesource.com/chromiumos/third_party/ker... (just linked one of them, we use a few)

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.


The fragmentation here was I think a Linus misstep - when the wake lock and other ideas came out some subsystem maintainers were fussing.

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.


All those kernels are legally required to be free by the GPL. Those OSes have "non-free" userspaces.


> Please count the Linux-based systems.

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.


It's irrelevant because they are all GPLv2 and intercompatable.

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.


So you can reliably install rpm's in debian and vice versa with .deb's? glibc versions? X11 vs Wayland? System-d vs init.d ? Android?


Yes, to all of those, though some take more work than others.

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?


Nvidia graphics cards. Just saying.


I think it's only feasible for nvidia to release GPL-violating closed source graphics drivers because of the leverage that BSD provides them against Linux.


>So you can reliably install rpm's in debian and vice versa with .deb's?

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/


On chroot installs.

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.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: