What *is* a linux distro, fundamentally?
I'm not asking a basic question—though it sounds like one—but trying to get at something lower level.
When I think of a distro, I tend to think of a package manager and default desktop environment/windows manager. But neither of those are *really* tied to a distro.
If I use i3 (or dwm, or sway, or stumpwm…) as my windows manager and get all my packages from Guix (or snaps, or flatpacks…) what is the distro actually providing?
The init system?
Hot take: a distro is the crystallized preferences of the distro maintainers, & everything else is variable.
@codesections I’m old enough to remember when everybody was installing applications from source, and a “distribution” was just that—an installer for the kernel, bootloader, and some basic software you would then use to bootstrap your working system.
@codesections i think your wrong the distro is the package manager wm/de can be got from anywhere. thus i see distros as families not individuals what with apt pacman dnf etc
> the distro is the package manager
So, in your view, if someone created something that looks a lot like a distro but didn't provide a package manager, that wouldn't really be a distro?
(I'm imagining a "distro" that lets you select Snap/Flatpack/etc. as your primary package manager on install, just as many let you select DE right now)
@codesections that flatpack mechanism becomes the package manager which is as i see it nothing more than a mean to install and manage what is installed in the OS via its repos
@codesections when "flatpack" becomes ubiquitous the concept of distros is moot as the package becomes independent/agnostic of the manager.
@codesections Leaving aside the community aspects of a distro, I'd say it boils down to the init system and the default package manager plus, if you will, the default repositories and the related question of distribution specific patches.
To support your suspicion that a linux distro does not necessarily comprise much after all, checkout e.g. Arch Linux's setup procedure. Also, have a look at Linux From Scratch to be able to pinpoint the distro specific bits in Arch.
I'm currently running Arch and I mentioned how the real way to see what the distro provides would be to install LFS in a follow-up toot.
But yeah, I guess I'm curious to learn what the "distro specific bits" are, in a way that *doesn't* require installing Linux From Scratch (though I may well get around to that one day…)
I just started reading Linux From Scratch and made plans to put it into practice some time in the distant future when the world stands still for a week.
But for your purpose, which, essentially, was mine, too, I think reading does the trick.
@codesections init system, installer, default configuration for all the "under-the-hood" stuff running there (including the actual GUI no matter whether using X or Wayland or something like this). Sure, however, all along with flatpaks, snaps, appimages, ..., Linux distributions might be in for a change sooner or later.
@codesections the distro only provides a set of defaults for everything, and usually maintains their specific set of packages + patches, on versions based around their usecase (rolling, stable, etc)
@codesections "Linux From Scratch" could answer that.
@codesections I've thought about distros more like a community group. The group works together to produce a (more or less) coherent arrangement of software for general purpose computing. The tools, and package managers, and approaches, those are all details about how the community goes about doing its business.
Anyway, that's just how I think about it, but I also haven't had my coffee yet this morning.
beyond that, it's a set of shared norms / expectations, and an ongoing effort in maintenance and integration. fundamentally, it's a thing that people keep doing:
@codesections When I pick a distro, I'm picking the maintenance team, based on the decisions they seem to have exhibited and their motivations. Implementation is, as you say, not really tied to what the distro is, and might change down the line, but the philosophy of the collective maintenance team, that's the "core" of it, I think.
@codesections p.s. this is part of why i don't mind corporate distros like ubuntu and red hat, i see their decision-making as a fair sight less fickle - and consistent decision-making is honestly more important to me than making good choices arbitrarily. (In software and in life, I tend to value predictability over fitness.)
@emsenn I’m usually looking at coherence of vision, but it depends on what I need the distro for. I’m curious, how do you view more tightly integrated distros like elementary?
@codesections The distro provides a culture of packaging and qualiy assurance and review. Using the herd of expertise to make your life easier and find out bugs before they get pushed to you
How so? Do you just mean that they (unlike Snaps) audit the packages they include pretty deeply? If so, how would something like guix (which is a distro-neutral curated package repository) fit into that picture?
Or do you mean something else by security?
@codesections a distro is a set of decisions and policies from its maintainers/packagers. Flatpak (that's how you spell it) is essentially a system for creating, distributing and managing specialized distros that are intended to be used *on top of* another existing distro.
To answer the second question, the kernel, libc, coreutils, various services like PulseAudio, polkit, logind, etc
@codesections A distro is a work of integration between multiple independent pieces of software. Think of Linux From scratch included a patch so a manually compiled piece of software worked with their filesystem hierarchy or communicated nicely with other pieces in the distribution.
Fosstodon is an English speaking Mastodon instance that is open to anyone who is interested in technology; particularly free & open source software.