Hacker News new | ask | show | jobs
by laumars 3387 days ago
> Distro is synonymous with OS at this point.

Possibly to the layman but the term "distro" (short for "distribution") deliberately exists to differentiate between different OS's and different distributions of the same OS but with a different software stack and default configurations.

While you do sometimes get differences between the Linuxes in terms of init daemons and slightly patched kernels etc, they are all generally GNU/Linux - ie generally share the same common Linux OS fundamentals (eg GNU coreutils). There will be exceptions to this rule (isn't there always?!) but we're talking about the common desktop / server platforms people automatically talk about when discussing "Linux".

However many of the BSDs are developed in insolation. While they may have a shared heritage, the kernels have matured into something quite different from one another. Often the core utilities and init daemons et al can vary noticeably as well.

So in essence, FreeBSD and Dragonfly are different but similar OSs, whereas Linux distributions are the same OS but differently configured. This is why we make the distinction between "distro" and "OS".

3 comments

I've been experimenting with Debian/kFreeBSD lately, and one funny aspect it's had is making me realize that the kernel is not really all that important to the userland experience, at least for what I do. It still feels like Debian, even though they swapped out the Linux kernel for the FreeBSD kernel. That's one reason I think of Debian as an OS, rather than a Linux distro. Debian itself then has several distros, such as Debian/Linux and Debian/kFreeBSD.
I get your point, but aside the package manager and associated tools, most of what you've described are GNU packages / cross platform user land. ie stuff that even in the most limited sense was never Debian specific to begin with; but often was designed to run on most Unix-like platforms anyway. Because of this I've read some people describe kFreeBSD as GNU/kFreeBSD (ie GNU user land with the FreeBSD kernel) and I think that makes some sense if you're following the GNU/Linux naming convention (which I think makes sense in the context of this discussion because it also takes the Hurd kernel into account - GNU/Hurd). But this is one of those edge cases I was thinking of when I talked about exceptions to the rule in my grandparent post.

As for whether it's classified as a separate OS from Debian (Linux) or FreeBSD - there's definitely some room for interpretation so I'll hold off from passing my own personal judgement :)

Talking about rule exceptions, another good example would be Android. Largely the same kernel as GNU/Linux and some of the user land too but equally it's a very different platform to "desktop / server Linux"

One big difference is that Debian has invested a huge amount of work over the years cleaning up the software they package to make it easier to customize, maintain configuration across updates, etc. That's much broader than the percentage of GNU utilities in Debian's userland.
Debian aren't the only ones that do that however patching 3rd party software doesn't make it "Debian's user land".

Debian also runs a lot of software written by Redhat (eg systemd) but that doesn't make it a distribution of Redhat. Ubuntu ships a lot of in house software as well (eg Unity) but that doesn't mean ArchLinux with the Unity DE turns Arch into a distribution of Ubuntu.

What you're doing is akin to classifying groups of web browsers by the websites the user visits rather than by the rendering engines they're built on.

I find it more integrated in Debian than in most other distributions (even including the BSDs, once you get outside their base systems and into the wild west of ports). It's not just that they ship other software in the package manager, but that it's heavily customized to fit into the "Debian way" of doing things. This is partly emphasized by the lack of a distinction between "base" and "ports"; every package, from libc to your mailserver, is a Debian package, and is supposed to follow policy and work how users expect a Debian package to work.

It does vary package to package, but on average there's a fairly substantial amount of work that goes into "Debianizing" a package so it's integrated into the OS coherently, vs. the more lightweight build-scripts that you find with systems like Slackware or FreeBSD ports, that typically ship something closer to upstream. I would compare it more to maybe halfway towards how FreeBSD adapts third-party software into its base system. FreeBSD base is full of third-party patched stuff, too, like ZFS, LLVM, OpenSSH, and sendmail, which is periodically synced with upstream. But they put enough effort into customizing it and making it work together coherently, that I think it's fair to call the base FreeBSD install an "operating system".

I do think Debian as an OS may get less true with systemd, though. SystemD is really going all-in on the idea that there is a specifically Linux way of integrating an operating system, which is closely tied to the kernel, and Debian increasingly finds it difficult to avoid getting pulled in 100% to that path, since the amount of divergence you need to avoid doing things the "systemd way" is growing rapidly. In which case the end game is that there's a Linux/SystemD core OS, of which Debian is just one distribution. While until now Debian has aimed at being a "universal operating system" not tied to any specific kernel.

FreeBSD is a distinct operating system.

I don't agree with your feelings towards Debian simply because I've used plenty of platforms that have the same cohesive feel. But at the end of the day all you're talking about now is an emotional impression based on anecdote, which may feel relevant to yourself but ultimately has little impact to the discussion of distributions Vs distinct operating systems.

It might be more useful to see distro as orthogonal to OS. Is Debian/Darwin a thing yet? :)
If you use Linux with systemd or without is a significant difference, which is probably as big as switching between BSDs.

The name of my operating system is "Ubuntu", not "Linux".

> probably as big as switching between BSDs

No, it's not. You can go from one GNU/Linux distro to another GNU/Linux distro and you're still gonna find a GNU userland and a Linux kernel. Base userland and kernel differ significantly between BSDs.

plus - native binaries can be copied between one and the other and run natively without any emulation layer provided the c library, kernel version, and other libraries are reasonably similar.
> If you use Linux with systemd or without is a significant difference, which is probably as big as switching between BSDs.

I did address the init daemon point. With Linux distros you're still using a common kernel upstream (ie Linux) which all Linux distro's share. That's not the case with the BSDs. You're also sharing the same GNU coreutils which 99% of Linux's share, BSD's often have their own. The kernel is really the key point here though.

> The name of my operating system is "Ubuntu", not "Linux".

Technically it's neither. "Ubuntu" is the distribution name. "Linux" is the kernel name. I don't much agree with Richard Stallman that "Linux the OS" should be named "GNU/Linux" but from a technical standpoint it is a more accurate OS name than either of the two suggestions you raised.

To be fair, D in BSD stands for distribution.
Hehehe it does. But that's more a historical artefact as BSD originally started life as a distribution of UNIX.

We are talking decades ago though. Long before FreeBSDs grandparents, let alone Dragonfly.

edit: Wikipedia has an interesting piece on the history of BSD: https://en.wikipedia.org/wiki/Berkeley_Software_Distribution...