2012-07-15

Why People Distro Hop and How to Stop It.



Disclaimer: 


I'm not a "Human Interaction Specialist" nor am I a "Psycho-analyst".  I did not use the Scientific Method to draw my conclusions, rather, I used my extensive experience on the subject.  I also don't claim that this is "fact" and that "everyone else is wrong", my conclusions are my opinions based on what I see as logic coupled together with experience.  Nothing more.


The Behavior:


We've all (in the Linux community) seen this before.  A relatively new user to Linux comes along, they've been using a(n) *buntu derivative for a month or three and at the urging of their slightly more savvy and infinitely more zealous compatriots, they make the switch to a "bare bones" distribution like Gentoo, Funtoo, Arch, Slackware, etc.  If this fictional user has been given even a modicum of direction, they have read the wiki articles for these distros, studied the "Beginner's Guide" and/or have the beginner's guide open and are going step by step through the installation process.

A few weeks go by, this bare bones distro has already been installed, our new user has some of their favorite programs setup and in-use, they're feeling mighty productive and happy.  Then, the worst thing on the planet happens, their GUI craps out on them for some "completely unexpected reason" and they are thrown into this mysterious "black hole" that has a weird heading with "TTY1", the date, , , Login:, and a blinking cursor.  Something ain't right here Jim!  However, our fictional user composes themselves and enters their login information.  That's when the reality sets in; they are met with a command prompt and nothing else.  Life has just thrown them a lemon and they have no idea how to make lemonade in this space.  Tears fall, sobs rise to the technological heavens, the great software engineers of yore look down in shame, and our user is left in the fetal position in the corner of a round room; their sanity seeping away.  Death looms closely in the air.

But wait! A ray of hope! Our user calls up one of their "guru" (I hate the improper use of that word!) friends who's got more zealotry than savvy and asks for help.  Surely my friend is zealous because he knows how to fix problems like these! Enter the zealous friend without a clue: "You what? Yeah, that's a CLI, you b0rk3d your OS n00b LOL!"  Our fictional user has lost hope, but not enough to go back to Windows or OS X.  They remember that they used to use a *buntu derivative so they hop on another computer to go online and look up "Ubuntu-like distros".  They come up with Mint, Peppermint, Zorin OS, etc.  All good distros, all try to make life easier for the user, and all are Linux! (We'll return to this last item in a few minutes.)

Our fictional user downloads an ISO, say Peppermint (excellent distro by the way), installs it to their system, is happy with the simple installer, loves the GUI package management, and is happy.  Until a few weeks later when something breaks and back to the TTY they go.  At this point, just start from the top and read down to here again, it pretty much goes like that for quite some time.


The Problem:


Ignorance.  Don't get all offended on me.  Hear me out, if we look at the definition of the word Ignorance, we find something:

(Taken from Merriam-Webster.com)


ig·no·rance noun \ˈig-n(ə-)rən(t)s\

Definition of IGNORANCE

: the state or fact of being ignorant : lack of knowledge, education, or awareness

Pay special attention to the last part: "lack of knowledge, education, or awareness".  Now, ask yourself these questions: "When was Stephen Hawking born?", "What is the exact algorithm that Google uses for its search?", "What type of language is LISP?".  If you said "I don't know" or you looked up these questions on Wikipedia, then you are ignorant of that particular item.  You do not have knowledge in that area, you are not educated in that area, or you lack awareness in that area.  It's not offensive, it's fact.

"But Brian! What is our fictional user ignorant of?"

I'm getting to that and then some.  The problem isn't so much the fictional user (though they have a part to play), the bigger problem is their "more zealous than savvy" friends.  The ones who call themselves "gurus" (improperly).  That's right, if you're die-hard Linux and are pushing your distro onto your buddies, I'm talking to you.  I know why you did it, you were afraid! Who wouldn't be?  Seriously though, I'm guilty of having done this as well.  You reach a point in your Linux use where you're pretty decent at the CLI, you've managed to sample various X environments (Desktop Environments and Window Managers), and possibly even creating a binary package for your particular distro.  You even know how to build a package from source! But, you're still very much lacking in the more "nitty gritty" things in the OS.  You're still copying and pasting scripts that you found on some obscure forum that you think is cool, you've graduated to using Tiling and/or Dynamic Window Managers like Awesome, you've even written a tutorial on how to best copy and paste someone else's config into your own config.  You're an "average" user but because you're surrounded by Windows users, you fancy yourself a god.  It happens, don't worry about it, just learn to recognize it and reign yourself in a bit.

It's okay to not know everything.  The trick is to know where to go to get your answers so that you aren't stuck in "I don't know" land.


The Solution:


There is a realization that comes to every new Linux user, usually after about ten distro hops (sometimes 1000 hops...); It's all Linux.

Think about that for a minute: It's all Linux.

That means that, underneath the GUI, underneath the userspace apps, and underneath the system utilities, there's a kernel.  That kernel is Linux (no, I will not get into the GNU/Linux vs Linux debate here! That's for another time :)  ).  Linux (the kernel) is in every (Linux) distro on the open source market right now.  Ubuntu uses the Linux Kernel, Fedora / Red Hat, Novelle, Gentoo, Arch, Debian, etc.  All of them have the Linux Kernel.  All of them have GNU Coreutils.  At the heart of every distro are these two pieces, Kernel and Coreutils.  Everything else that makes your distro a "distro" is (for the most part, I'm looking at you *buntus!) Userspace.  To oversimplify it, Userspace is the space in which the regular user (not root) operates.  GUI, Apps, your browser, games, office programs, etc.  All of these are executed with user permissions by a user who operates in a space meant specifically for that user.  That's userspace in a nutshell.

Note: To those who would quickly like to correct me, read what I said again, "To oversimplify it..."  The day that I want to spend a good ten pages going through more than a super-high-level-overview of "Userspace", we'll be in touch. Until then, the layman will appreciate this explanation.

Once you realize that all distros are basically the same, just configured differently, you begin to realize that you can take a "base distro" and turn it into any of the distributions that you see on the market today, often-times with a not-very-complex script!  What does this mean for you? It means that you don't have to say "Oh, I don't know how to use Gentoo because I've only ever used Fedora."  Sure you know how to use Gentoo! It's got a BASH shell (ZSH for those of us who like a few extra features), it has a package manager, etc.  All you'd need is about ten minutes alone with Portage and the Gentoo Help documentation on Portage in order to understand the basic system, what's already in stalled, with what flags, and what you would have to do to install your preferred packages.  It's not hard.  Hell, here's some anecdotal proof: Take an issue that you've been having on your *buntu derivative and don't go to the Ubuntu forums, instead, go to the Arch Linux Wiki.  Aside from the package manager specific stuff, you can apply those processes and concepts to your distro and any other distro.  Now, take your Arch based distro and go to the Ubuntu forums, notice anything? Yeah, those steps, aside from the package manager specific ones, will work in Arch! I wonder why that is? Oh! Right! They're all Linux! Victory is mine!


The Challenge:


Don't hop distros for at least one month.  In that one month, every time you have a problem with your current distro, I want you to go to at least three other distro's wiki sites/pages and/or forums.  Now, don't go posting on Ubuntu forums with an "Arch problem", that would be bad and would take away from the care being provided to Ubuntu users.  Instead, realize that your problem is not new and you aren't a special snowflake.  Linux has been around since the 90's, I can assure you that almost every problem that has ever been had on a Linux system has already been posted online somewhere and the solution available publicly.  Back to the challenge.  The three other forums/wikis for three different distros (for you *buntu people, that doesn't mean that if you're using Xubuntu that you go to Kubuntu wiki/forums, that means you pick something like Gentoo, Arch, Slackware, etc.  Debian would be cheating too!)  Read through the issue description and the solutions, you will find that the solutions are strikingly similar despite being on completely different distributions.

Once you realize all of this, you'll choose a distro based on it's merits, not FUD.  You'll also be much happier as you'll be able to tackle any problem using any distribution's documentation.  One month, no hopping.  Can you do it?
Post a Comment