This post is a bit more technical than my usual blog entries, but it doesn’t really fit over at my programming blog, so I’m going to post it here instead.
History
I started messing around with Linux back when I started my undergrad. I installed Ubuntu (a distribution of Linux more geared toward end users) on my then state-of-the-art Toshiba laptop. Things worked okay, but I could never fully make the plunge: I used a lot of Windows-only software for my day-to-day tasks: Visual Studio for my programming assignments, Office for my documents, etc. I would always find something I missed and run back to Windows with my tail between my legs. In retrospect, Visual Studio was total overkill for all of my programming assignments, and MS Office is not a very good note-taking tool (well, One-Note is pretty good, but nothing beats putting pencil to paper.)
Then one day, for some reason, I just decided to take the plunge. I challenged myself to use Linux solely on my laptop for three months. It was tough for the first while. I had to get used to using a new operating system, plus new applications, but after the three months were up I was hooked
I took things a little further after that, installing Arch Linux (a more advanced distribution) over Ubuntu. My goal was to learn more about how Linux worked under the hood, and I achieved my goal! Arch does a lot less hand-holding than Ubuntu does, so I was forced to do a lot of tweaking and hacking, editing config files by hand, installing software manually, and all that fun stuff. I was addicted to how much control Arch Linux gave me
Fast forward a while. I’ve messed with many different distributions, as well as FreeBSD, (a Unix-like operating system with a very rich history) but I finally settled on my current distribution of choice: Slackware.
Why Slack?
Slackware prides itself on being “the most Unix-like Linux distribution.” Slackware is a very simple system from a design perspective, but it takes a little care to maintain it. A few things that I enjoy most about it are:
Packaged software is rarely edited
Some distributions like Debian and Ubuntu occasionally make changes to “upstream” software. For example, Debian changes the default locations of the configuration files for the Apache server software. Therefore there are at least two ways to customize Apache: the Apache way, and the Debian way. If I want to modify Apache on Slackware, I can just read the documentation on the Apache website.
Slackware is very simple to set up
Setting up Slackware on a disk is very easy, since there are no hidden gotcha’s. Setting up Slackware is as easy as the following: 1) Setup your partitions with fdisk (or cfdisk) 2) Run the setup script and follow the instructions. Once you’re done, you have a nice clean working system ready to be customized. For me, customization usually just includes making a user for myself “bryan” and installing the video driver I need. This is of course probably not as easy for a beginner to perform, but for a Linux user for some years now, installing Slackware is a very hassle-free task.
Installing custom software is also very simple
If I need some software that isn’t included in the default Slackware installation, I search for it on Slackbuilds.org and install it. If it doesn’t exist there, I download the software and install it manually, just like what I would have to do it I were running Windows.
Slackware isn’t a rolling-release distribution
Certain distributions like Arch Linux and Gentoo use a method called “rolling release”, whereby you can update your entire system with a single keyboard command. This is a good thing for those who like it. I prefer to update my software manually. If a new version of some software requires another piece of software in order to run properly, I prefer to install that new piece of software myself instead of letting a program automatically do it for me. I enjoy knowing exactly what is installed on my machine at any given time. Either the software was installed by default from Slackware, or I installed it myself. There are no other cases.
Conclusion
I enjoy using Slackware because of its simplicity. The reasons I mentioned above are of course personal, and if you don’t agree with them, then you are free to use another distribution that fits you better, that’s the beauty of Linux! If you prefer a rolling-release distribution, then go for Gentoo or Arch. If you want stability at the expense of bleeding-edge software, then Debian Stable is your best bet. If you want a system that is easy to set up for end users, then Ubuntu should fit your bill. I’ve tried all of the above mentioned distributions, each with their own strengths and flaws, and I’ve settled on Slackware. But to each their own.