On Tue, Jun 07, 2022 at 11:08:34AM -0400, Dan Cross wrote:
On Tue, Jun 7, 2022 at 10:30 AM Theodore Ts'o
<tytso(a)mit.edu> wrote:
The key is I think *competition*. Distributions
were competing to
attract a user base, and one of the ways they could do that was by
improving the install experience. There were people who reviewed
distributions based on which one had the better installer, and that
helped users who were Windows refugees choose the ones that had the
better installer.
My point is that this is something that varies from distro to distro;
it is therefore inaccurate to claim that "Linux solved it" since many
different distros that have widely varying installation processes
fall under the very large "Linux" umbrella.
Yeah, there are a large number of distros but I'm willing to bet that
Debian, RedHat and Ubuntu variants account for the vast majority of
installs.
There are
three different things that's worth separating. One is a
consistent kernel<->user space interface, this is what Linus Torvalds
considers high priority when he says, "Thou shalt not break
userspace". This is what allows pretty much all distributions to
replace the kernel that was shipped with the distribution with the
latest upstream kernel. And this is something that in general doesn't
work with *BSD systems.
Eh? I feel like I can upgrade the kernel on the various BSDs
without binaries breaking pretty easily. Then again, there _have_
been times when there were flag days that required rebuilding
the world; but surely externalities are more common here (e.g.,
switching from one ISA to another).
Try installing an OpenBSD kernel on FreeBSD, that's what we mean by
compat. I'm more than willing to believe that you can pull head on
the FreeBSD source tree and build & install it on FreeBSD. Much less
willing to believe that that works Open/Free or Net/Free.
With Linux, on pretty much any distro, you can pull Linus' tree and
build and install it without drama. If you are running some ancient
release you might have to update your toolchain but that's about it.
Linus is super careful to not break the syscall table. It's extend
only, which makes it a mess, but a binary compat mess.
The second is
application source-level compatibility, and this is what
allows you to download some open source application, and recompile it
on different Linux distributions, and it should Just Work. In
practice this works for most Linux and *BSD users.
This, I think, is where things break down. Simply put, the way
people build applications has changed, and "source-level"
compatibility means compatibility with a bunch of third-party
libraries; in many ways the kernel interfaces matter much, much
less (many of which are defined by externally imposed standards
anyway). If a distro ships a too-old or too-new version of the
dependency, then the open source thing will often not build, and
for most end users, this is a distinction without a difference.
Yes, you are correct, I've experienced that as well with sort of
newer complex apps.