Saturday, June 26, 2010

What makes a distro / Too many distros.

About a month ago, I mused about what exactly makes a linux distribution different than others. Since then, I think I've learned a bit more about it, so I'm going to muse a bit more, hoping that one or two more musings from now, I'll have a pseudo-definitive answer. But for now, here is a list of what I believe makes a Linux distro (note, not a good distro, just a distro), in order of....obviousity:

  1. Kernel: Now this is the part that is absolutely the fuzziest to me. As far as I know, all distros use the Linux kernel, but apparently you can compile it in many different ways. Or maybe I'm wrong. This one definitely needs more research on my part.
  2. Drivers: Also really fuzzy for me, since I really don't know how Linux handles drivers. The bigger, well known distros like Ubuntu are praised for "just working" (as far as Linux goes, anyway) because they include drivers for a ton of stuff.

    Like I said, I haven't a clue of how Linux handles drivers other than the fact that there are also proprietary drivers that some distros don't like, but others do.
  3. WM/DE: The thing about this one is that if you go to a Distrowatch page for a fairly large distro like maybe Mandriva, it says KDE is the default desktop, but then it says that it also supports GNOME and others. So what really seems to "make" a distro would be the default desktop. Why do I say that? Because there's Ubuntu for GNOME, Xubuntu for XCFE, Kubuntu for KDE, Lubuntu for LXDE, Crunchbang for Openbox, Fluxbuntu for get my point.

    One thing that I thought was very interesting was that when installing openSUSE (I believe), they actually asked if you want GNOME or KDE. Why all distros (or all not-uber-lite distros) don't have that capability is another conversation entirely. But the fact of the matter is, should changing up a desktop really be classified as a new distro, even if you add programs specifically for that desktop? (Which is kind of redundant, since that's what I think a DE is: a WM with programs to enhance it.)
  4. Pre-installed programs: This to me seems like it's the most insignificant and honestly the most stupid. It seems like sometimes the only different between two distros is what comes installed as default. For example, in this article about Mint vs Ubuntu, which he basically says is various Mint-specific applications that replace Ubuntu's defaults. Or here on Reddit, people basically say that Mint has "non-free" stuff that Ubuntu doesn't come with standard. But you can just add that stuff in Ubuntu.

    This is just stupid to me. Why? Because everyone is different. No, I mean EVERYONE. If someone made a distro for every single possible combinations of default installed applications, there would be hundreds or thousands of the same Operating System, just with different names and different starting programs.

    Besides, this is just stupid to me because after I install a distro, I go around and install/remove programs that I want/do not want. Why? Because no distro has exactly what I want from the get-go. And I'm fine with that. My tastes for software is always changing; one week I want Firefox, the next Chrome. I don't expect for the default apps to be my favorites

    In my opinion, the default programs should be kept to a minimal, should be somewhat of a personal preference of the OS designer, and should be one of the last things the designer thinks about (unless the OS has a very specific purpose, like for Cloud computing or a scientific OS).
  5. Software repositories/Package Management: Of course there's got to be a way to add new apps, so there's package managers like APT, yum, or pacman. First off, I do not understand preferences for this one. sudo apt-get install firefox vs sudo yum install firefox does not seem to make a bit of difference to me. Same with DEB or RPM (which are the only two I've tried, other than Tinycore's weirdo TCZ). Sure, I prefer APT because unlike yum, it doesn't have to check the server every time, but still: really no difference in the end, IMO.

    Of course there is also the factor of the Software management and Software repositories. From Ubuntu's Software Center to Mint's Software Center (or whatever they are called....), most popular apps have a way of browsing installed/available apps other than a program like Synaptic. So this does make a bit of a difference. But honestly, again, from my perspective, once I get my basic programs installed, I'm good. I don't go around adding new programs every day or even every week. So this seems kind of important, but more like....I dunno, maybe a one-time-ish deal.

    But the repositories are important. The saddest thing is that Ubuntu has great repositories, which most other distros seem to mooch off of. If every distro had to have their own repositories, there definitely wouldn't be as many around.
  6. Community: In order to be a successful distro, you also need a user community, ie a forum. A place where people can ask questions, solve problems, and just mingle. But the thing is, alot of the community is asking about things all distros might have problems with. Problems with Xorg, problems with Firefox, problems with GNOME, etc.
  7. Updates/Activity: Lastly, the distro needs to be maintained. That means new releases or at least fixes for major problems, adapting to new technology/whatnot.

I feel like I'm being a bit of a Judas, since I do prefer some distros over others, and the ones I prefer are actually derivatives themselves (Peppermint and CrunchBang....and even Ubuntu). But this topic has been buzzing in the front of my brain ever since I installed Peppermint. I browsed around the CrunchBang forum and even found a topic that kind of spurred this. Here's a few quotes from that topic, in case you're too lazy to click the link (if you are, I understand):

There are a few more applications available in the #! repos (you could just add the repos to your existing install though)...Other than that it's just themes and a couple configs that are set differently. The differences aren't huge, it's just nice having it all done for you already.

Basically, it's a naked Ubuntu with a certain set of packages installed.

If you are comfortable performing an Ubuntu minimal install and configuring Openbox yourself, then there is no huge advantage to using CrunchBang (apart from saving time).

So basically, it's a bunch of pre-configured stuff. I do love CrunchBang, and Peppermint. I love using Peppermint on my netbook, and I'm not bashing it at all. But it just seems like Linux distros are too many.

So here's my assertion: there are way too many Linux distributions. I've said it before and I'll say it again: Linux's weakness is variety. Xvesa vs Xorg (maybe not the most difficult choice....), GNOME vs KDE vs XCFE vs LXDE, or maybe just a Window Manager, DEB vs RPM vs TGZ, and so on and so forth. And it's not that there's so many choices, it's that there's so many permutations. Well, I like Firefox and GNOME, but Ubuntu has Epiphany and I want Pidgin. But Mint has DEB and I want RPM. But and so on and so on and so on.

Yeah, I'm being picky. I went from "I want to make my own Linux distro!" to "ALL DISTROS ARE BAD!" But that's not what I'm saying. The thing that gets me most is that they just put themselves as being so different than everything else. I still can't find a massive difference between Ubuntu and Debian, between Ubuntu and Mint, between Mandriva and openSUSE.

All in all, I don't see a difference. It's hard to be loyal and really love an OS when it's just a few tweaks away from any other OS out there. It's still really frustrating and confusing to me, because the way I see it, there should be < 10 desktop distros, < 5 netbook distros, and < 5 portable distros (a la DSL). Other than that and possibly localized support (which I'm not even counting) and servers, the entire Linux world seems redundant.

As probably know-it-all and naive as it sounds, I wish I could create a "Distro to end all distros". It would basically be a live DVD that would walk you through what you wanted. What Desktop you want, what package management (ie DEB RPM), what programs you want, all the way down to everything. Like Gentoo, but more user friendly.

That doesn't seem to solve the problem though. Because Linux is not an OS, it's a ton of OSs. Windows has just several installers for a program: Pre-XP, Post-XP, and sometimes x64. Linux, however, has Ubuntu, Fedora, Mandriva, Mint, openSUSE, etc, and you have to tweak it if you use anything else.

The thing is, Linux is great because it's like a puzzle, you can build it out of a ton of pieces. But when you get it together, rather than being like a complete piece, it's still a puzzle. There's just too many different pieces out there, which I understand is fine for choices, but makes other things a lot harder.

Apologies for this post. It almost might seem like I'm having a nerdy breakdown.


  1. So it looks like you are looking for something like SUSE Studio — — where you can pick the components and build a distro with the options you chose. But here is the problem, there are many people in the world and each has their own preferences with what component to choose. So I guess that's why there are so many distros, each person has different taste and no distro will ever satisfy everyone. In my case I've chosen Mandriva, since it provides something of their own — Mandriva Control Center — which in my opinion is the best system configuration utility on Linux. Well YaST from openSUSE is also good but not so user friendly as Mandriva Control Center. Oh and there is another nice thing Mandriva does: they did a nice thing providing a unified look of all apps no matter if they are KDE/Qt or GNOME/GTK.

  2. Komac,

    Yeah, I already know about SUSE Studio. It's nice, but needs some polishing. I talk a bit about it in the post before this one.