Recently I was digging around some articles and videos comparing Linux and the BSDs, and the first thing that almost always comes up is that “BSD is a full OS, not just a kernel.”
I understand the technical argument here - that the BSD projects maintain the kernel and all of the accompanying software to release together in one vetted and cohesive package - but I would argue that to a lot of us that distinction just isn’t meaningful.
To your average Linux user, Linux is a full OS - most of us don’t just download and compile from kernel.org, we go to our favorite distribution and download from there. Yes - Debian or Fedora don’t develop every single package included in their repositories…but does that matter to an end user?
Maybe I’m just splitting hairs, but as someone who’s used Linux for a while and is genuinely interested in dipping my toe into BSD - I’d like it if those espousing their choice of OS could give more practical comparisons between the two.
I agree with your points about distributions. When I go to Fedora’s site and download Fedora Workstation I am expecting to have a whole experience, an operating system.
Linux might just be a kernel but a distribution is a full OS for me just like BSD. Somebody put the effort into producing a cohesive user experience.
I am just a user. I do not care if the BSD’s develop their own whole stack of packages and software. Even then you will have to install a browser etc that is not developed by them.
I accept the differences but they might be like you said “meaningless” to the actual end user.
I’m probably a little unconventional in my approach to this, but I also think I’m a bit closer to a general consumer and user’s mindset. I do see Linux as more than just a kernel, but I wouldn’t go so far as to call it an OS. Not really because it tends to rely on things like GNU in its implementations… But because it’s a very crude generalization, and it lacks any specific meaning. I try to specify what type of Linux distribution and implementation I’m using over just saying “Linux” because I feel like it’s more realistic, and doesn’t have the same potentially negative connotations that the word “Linux” does to outsiders. So when I hand someone Fedora, I usually just call it Fedora. When I hand them Ubuntu, I just call it Ubuntu, etc. In those cases, Linux is just a detail in the same way that NT is just a detail for Windows.
Part of this stems from frequent frustrations with the assumption that all Linux distributions are the same and that there’s not really significant differences or values between them, which I feel discredits the projects who work hard to deliver their OS as well as misleading users. It’s a toss-up, because everything from Ubuntu to Android to Fedora to Chrome OS to Alpine, and so on, is Linux. But they are all different from each other on many levels and I think it’s good to just be specific. But what I definitely don’t like is when people discriminate based on these specifics, and people seem to look for excuses to dictate what is “real Linux” or what is “not in the spirit of Linux”, etc for various distributions or software used on them. So I want to be specific because it’s just useful and more approachable, but the other part of me wants to avoid being specific because people can’t be nice to each other.
This is the kind of thing that makes people just like to interject for a moment … The BSDs seem to take a more holistic method to their development and anyone who has used a stock BSD will notice a greater stability system wide. The whole distribution is stable and apps work alongside the system as first class citizens. OpenBSD is a treat to use and your OpenBSD system will run ceaselessly forevermore chugging along doing what it does. That’s the catch though, doing what it does. If you want software which isn’t included in the distribution then you’re, imho, right back to the Linux distribution style software.
FOSS development is primarily done on Linux. Linux is so far ahead of BSD on cutting edge features that it is no contest. As a result, applications on Linux are all second class citizens and it is up to the distribution package maintainers to pick how the application is built. For example, some distributions ship the music app
audacious. Upstream development is focusing on their modern QT5 interface and has been focused on that for a while. The GTK3 interface is long deprecated. If you
sudo apt install audacious on Ubuntu 20.04, you get the app compiled with GTK3 for some reason that only the package maintainers are aware of. If you were to ask Martin Wimpress (not called out here for a specific reason he’s literally the only person in charge who I know the name of off the top my head.) Why this is the case, he probably wouldn’t know. That’s what I mean by second class citizens.
When a bunch of apps hit the various BSDs they are not necessarily at feature parity with the Linux packages. Linux can be made to do a lot of things, but BSDs can do their thing that they do.
That’s what makes BSDs complete OSes and Linux a kernel which OSes are built upon.
My perspective is that if an opinion is based purely on pedantic comparisons then the opinion isn’t going to be strong. I know some diehard BSD devs who use BSD and praise it like its the best OS ever but at the same time those people use Windows for their desktops.
Is Linux an OS? Technically no but the debate of whether the platform has become more than just the namesake for the Kernel . . . Absolutely!
“Linux” has become a brand used for all operating systems in the ecosystem so saying Linux in this way I think is fine. I will say that it is more accurate to say that Ubuntu is an operating system and Linux is an OS Classification. Ubuntu is Linux but Linux isn’t Ubuntu. It’s kind of like LCD TVs vs LED TVs because LED TVs are also LCD but not all LCD TVs are using LED. LCD is the TV Classification and LED is a particular type.
With all that said, I am fine with just using Linux in a broad sense to describe the platform.