As you might know, there are about a hundred thousand million billion Linux distributions. (For those who don't know, the "Linux" core is an operating system kernel, and people take it and build collections of software around it called "distributions", and people install these distributions, and then, in casual conversation, call the distribution "Linux". All this adds up to confusion for people who don't already know it all.)
Which distro you choose depends a lot on what type of user you are, and how dirty you want your hands to get. For many people, this is, "I'm a normal user, and I don't want to get my hands dirty." (I recommend the Ubuntu distribution for these folks.) Some people might want to run a server; in that case Red Hat (or CentOS) is a good one. Of course, there are many, many good ones (I'll put a nod here in for BSD.)
But that's not what this post is about.
If you're a user who does want dirty hands, you might consider the following two comparable distros. Both support 32 and 64-bit, and both adhere to the KISS principle. They are the relative newcomer Arch Linux (created in 2002) and venerable battle-tested Slackware Linux (created in 1993 and currently the oldest actively-maintained Linux distro—kids who were born when Slackware was released are driving cars today). By "getting your hands dirty", I mean there's a lot of manual configuration file editing, not a lot of GUI friendliness, and lots of terminals. Eventually you'll get the system set up with a nice GUI; both Slack and Arch officially support KDE—Arch also officially supports GNOME which is easily available for Slack via third parties.
Why would you subject yourself to this? Answer: because you'll learn a lot about how the system works, and when it breaks, you'll be much better-prepared to fix it.
The irony of the user-friendly systems is that the layers of user-friendliness are by necessity layers of complexity. The systems are offloading the tasks of system management from the relatively smart super-powerful human brains and moving it onto a relatively stupid piece of complex and fragile system management software. (I'd argue that the reason these pieces of management software are fragile and complex is that historically Unix systems were administered by humans, and they weren't built with "fire-and-forget" machine administration in mind, but that's a story for another time.)
So we get rid of the layers of complexity, and put humans back in charge, and you end up with a simpler system at the expense of the human needing to know more about how to configure and maintain it.
(If you really wanted to get a feel for how a Linux distro works, you can build your own with Linux From Scratch, but I won't take you that far today.)
So back to the two distros in question: Arch and Slackware. Both install in text mode (with text-based GUI widgets) and don't fire up X until you tell them to. Slackware's installer will handhold you through the configuration process, while Arch's actually puts you into an editor to hand-edit /etc/rc.conf (which is a pretty simple file).
Arch's install is a little bit different in that it doesn't actually come with X—you have to install it with the package manager (which downloads it) before you can use it.
With both, once the install is done, you'll get a login prompt and can go from there.
Both systems include package management software, and both use a tarball-based format. Arch's custom tool called "pacman" is faster than Slack's, but I never found that to be a practical concern. One major difference is that Arch uses a package dependency system, while Slack does not. Slackers don't care for dependencies, which they feel lead to "dependency hell". Can a system be stable without explicit dependencies? Yes, it can, as Slackware shows in practice. Users just upgrade packages as needed. On the flipside of dependency hell is dependency heaven, where everything works properly and you upgrade and it pulls in the necessary packages and that's that!—Arch pulls this off quite well.
Speaking of stability, Slackware is known for it. Packages are well-tested tried-and-true versions of the software and non-security updates between major releases are rare. You set up a system and it "just works" forever.
Arch doesn't make a stability claim, mostly due to the fact that all the software on the system is basically cutting-edge (generally it's the non-development versions of the software, though). As new software is released, it comes out for Arch very very soon thereafter. (There is often a delay while the packages move through Arch's "testing" repository, which users don't normally access, but can access if they want to help test.) Arch users upgrade their systems early and often by running "pacman -Syu" to upgrade all packages. Usually several packages get updates each day as new versions are released. Arch packages them all, whether they are security-related updates or not.
While that sounds like some kind of stability nightmare which would result in a broken system more often than not, in practice the upgrades work without a hitch virtually all the time. I had one breakage where an Arch maintainer forgot to push a KDE package out that was part of a major update, but that was soon fixed. Another breakage occurred when nVidia moved my video card's driver into another package and the old package wasn't compatible with the latest Xorg server—installing the proper Arch driver package fixed it. These were the only two upgrade failures I'd seen in eight months of near-daily upgrades, and I can't really blame the second one on anything fundamental to Arch's system.
If you want to push Slackware a bit and get access to more up-to-date packages, you can update against Slackware's "-current" repository. This stuff isn't well-tested (because its users are the testers!), but eventually -current will be blessed into the next official version when it's rock-solid.
Speaking of updates, what of security updates? Slackware is good with security updates, and provides them for the current release, plus several back-releases. You can be assured of security support for a long time, and I never once had a security update break the system. Arch, by comparison, does not have "security" updates, per se; their security updates just happen as a matter of course when you update the whole system to the latest. Arch doesn't provide separate security issue tracking.
One place where that makes a real difference is if you want to run a server. With Slack, you know that updates you make are going to be for security purposes, so that's OK. But you might not want to update to the latest version of postfix "just because", since it might be a disruption to the users. As such, I'd not recommend Arch as a server, though there are people who run it as one. (One concession Arch has made in this regard is the "stable longtime supported kernel", a kernel package that is not frequently updated and is thus more suitable for long-uptime machines.)
You might be thinking, "If Arch constantly updates to the latest, why would you ever get 'latest release' DVD?" You wouldn't! Once you install it, you'll never do a reinstall or big upgrade every six-months or so. You just keep updating to the latest over the net. Arch calls this the "rolling release" model. Slackware uses a standard version number-based release model.
Which distro comes with more packages? The answer, to be short, is Arch. Quite a few more. Let's not beat around the bush: it's a lot more. Slack 13.0 has about 1000 packages, while Arch has about 4000. What this means is that things like Inkscape will be in Arch's official distro, but not in Slack's. Don't get me wrong—1000 is a lot, but you might find that something you want isn't there. (You can always build and package things yourself, of course.)
When you want some software that's not in the repo for either distro, you can step outside the official channels. For Slackware, this often means going to slackbuilds.org (SBo). SBo has about 1700 user-submitted "build scripts" (which are sh scripts you just run) that will build Slack packages for you that you can install. For instance, there is an Inkscape Slackbuild script there so you can install the latest Inkscape without figuring out how to build it yourself. Also provided is usually a README file that describes which dependencies you also need to install. In the spirit of Slackware's legendary stability, all the SBo scripts are examined and tested by (and, to a certain extent, vouched for by) the site admins.
By comparison, Arch has the "Arch User Repository" (AUR), which contains some 18,000 (!) user-submitted build scripts. Arch makes no warranty for or vouches for these build scripts in any way, stating, "Unsupported packages are user produced content. Any use of the provided files is at your own risk." AUR users ruthlessly flag PKGBUILD scripts out of date the moment a new version of the software is released, and the volunteer package maintainer is expected to either update the build script, or "orphan" the package so someone else can maintain it. The system runs itself and AUR admins don't tend to interfere with, vet, or verify uploaded build scripts. Though the build scripts could absolutely be malicious, I haven't seen this happen, and such a script would be removed by the admins.
Compared to Slack's standalone build scripts, Arch build scripts are bash-based, and are executed by Arch's makepkg program. These build scripts are cleaner than Slack's, since much of the grunt work is moved into the makepkg software, and the scripts can take advantage of bash-isms, like arrays. The loss is that an Arch package build is dependent on both bash and makepkg, whereas with Slack, the only dependency is sh. But the user process is the same on both: run the script and then install the resultant package.
In summary, the similar aspects are:
Slack and Arch: KISS principle, 32 and 64-bit, tarball-based package management, text install, config file editing is expected in administration, KDE.
Notable points to help decide between the two:
Slackware: total stability, good for servers and not-bad for desktops, relatively small (but reasonable) amount of well-tested stable software, security updates provided, GNOME from a third-party, standard release schedule, i486 build officially distributed, admin tools depend on sh.
Arch: good (but not guaranteed) stability, huge amount of cutting-edge software, good for desktops but not-as-good for servers, update everything continuously, GNOME officially supported, "rolling release" schedule, i686 build officially distributed, admin tools depend on bash.
Which one is truly better? That's up to you!
One of the best articles I've seen. I have used many distros since 1997, from Caldera Open Linux through some of the more recent like Gentoo, Arch, SuSE, Open SUSE, etc. I've also use Debian and some of it's derivatives such as Sidux, Mint, Kubuntu, Ubuntu, and Corel Linux, and a few of the BSD's; just to name a few of all the distros I've tried. But Slackware has become my distro of choice because of it's ease of maintenance, stability, and cleanliness. By cleanliness I mean it doesn't alter upstream software. You get what upstream developers intended when they wrote their code. Also , as you mentioned, the lack of complexity from those so called "user friendly" admin aids is a great plus. Slackware essentially doesn't introduce any layers of obstruction between you and your system.
Thank you for the article. I currently use Fedora, but I'm sick of much of the "hand-holding' in such distros. I have been really looking into Arch, but since many of your statements, I have decided to not adopt it as my main distro. I might go with Slackware, but I have noticed that Slack just implemented 64 bit since '13'. I only use 64 bit on my machines, so was just wondering how 'up-to-date' is this architecture on Slackware.
That's way I love Slackware. I know Slackware since 2006, no distros can replace it as main OS on my PC.
i'm really thinking to migrate into Arch linux. Slackware is the historic best choice because of its cleaniness of sources and simple deployment (and manteinance)
@Marius Romanus I haven't run Slackware on a 64-bit machine, but I have no reason to think the 64-bit Slack isn't every bit as good as the 32-bit Slack, and I believe Slack32 and Slack64 are kept in sync, so both are "up to date". (There are some binary packages that are 32-bit only, but you'll have the same issues with those on any 64-bit distro.)
I began dual-booting with Slackware in 1997, and switched to it full-time in 1998. I experimented with other distros over the next few years, but came back to Slackware permanently as of 2002.
As of Slackware 13.0, I am a full-time Slackware 64-bit user. I will vouch for the full "Slackware experience" in 64-bit land that I came to know and love in 32-bit land.
Great article, as a longtime Slackware user this makes me curious to try Arch and see just how it stacks up in the deep admin side.
FYI.. If you like auto-pulls from repos you can use sbopkg (http://www.sbopkg.org/) to automatically pull scripts from the Slackbuilds archive and auto-build/install them. You can also use slackpkg (included in slackware) to pull and install Slackware patches and updates.
I use both 32-bit and 64-bit Slackware v13.0 and -current, and the 64-bit is just as reliable as the 32-bit version. As for the packages, in most cases the applications are synced, there are a few exceptions, but most of which are located in the /extra directory, such as grub is 32-bit only.
Having used both I'd say I'll take Slack over Arch anyday
I like the comparison. Having never used Slack and using Arch I've heard people talk about Slack before but didnt' know much about it. The non-dependency thing would probably get to me after a while though (imagine updates would take a while), but I do like the thought of being able to control them.
The only difference between Slackware and Slackware64 is the compile flag for 64-bit. You can even go multilib and have both 32 and 64-bit software on the same computer; however, multilib does take a little setup.
Both Slackware and Slackware64 use the same slackbuilds for creating the packages. If you open a slackbuild file (ex: seamonkey.SlackBuild found in the source/ directory of the slackware cd/dvd), you can see the section that checks for which architecture you're compiling it for.
For helping with the 3rd party slackbuilds.org, there is also a package manager called sbopkg (http://www.sbopkg.org/) that will browse the slackbuilds.org site and allow you to select a package to build and install for you.
There is another, more tehnical cathegory of arch like distros, the source based one. Linux From Scratch (LFS) is one such example, albeight there are some more easy or more powerful. I can mention the Gentoo distro, or a very powerful and more easy to install (comparing with Gentoo or LFS) Lunar Linux distro, the one i use. You can see more at www.lunar-linux,org.
So friendly comparison, really. I will choose dependency-hell resolved automagically, 'stable' cutting-edge, binary (compare to Gentoo way; just like PCLinuxOS), any DE/WM supported officially. I am an archer now. :)
My start point was Slackware but has for some years been running Arch on the desktop (both at home and work and elsewhere). Well balanced and fair article. For desktops and less critical (or critical but with a simple easy administrated task) I would choose Arch. It's a breeze to install and then it just rolls (only re-installation I've done is when I decided to go 64bit only, otherwise I've migrated my installation from faulty hardware). I've kept on an older computer my favourite of the past, Slackware with Window-maker (at times I go back to Window-maker on Arch as well, while spending most time in Awesome). I like the no fuzz no compromise approach of Slackware and it will be around on some of my computers as long as it exists.
This article is as friendly as I've found the Arch community to be towards other distributions.
And, if you put an "export ARCH=$(uname -m)" line into Slackware's "/etc/profile" file, sbopkg will even automate the selection of which architecture to compile for.
Gentoo is far more finely tweak-able than Slackware. Its package manager (emerge) is also far more robust and offers fine grained control. I currently use both Slackware and Gentoo and I gotta say that if learning Linux is of prime concern then try building Gentoo from source. It also works on platforms that Slackware can't quite handle and by that I mean that Gentoo works better on older systems than Slackware does. Best of all ... like Arch its a rolling distro which means you never ever have to install new versions of its distro ever again.
Gentoo failed for me when it did a bad build of libffi. From that point forward, updating was impossible, because the failing libffi meant no gcc.
No amount of "tweakability" can justify that.
Slackware has been my primary operating system for a few years now. I don't plan on changing that any time soon. That being said, I also happen to have Arch Linux on my system and find it to be an outstanding GNU/Linux learning tool as well as an excellent candidate for a primary operating system. Arch Linux, like Slackware, also has an outstanding support community. Try it. You might like it.
How does Arch compare against SourceMage and Xubuntu and such?
Some day i'm going to try to make the final big upgrade from
Windows and i'm not looking forward to trying seventeen distros.
I want speed of simplicity and flexibility.
But also many good fairly-stable fairly-recent apps.
Nothing short of utopia, something that both me and n00bs can
be happy with...
Right now Xubuntu seems a clear winner...?
The 64bit version is quite up-to-date, comsidering its release date - as up to date as the 32bit version. A lot of work went into the new release in order to make the creation of the respective versions easy and painless so I believe both versions are automatically built at the same time. Now, I don't currently use Slackware so you'll have to look up the version details yourself.
Arch is my absolute favourite at the moment, but I learned Linux using Slackware about ten-twelve years ago and it's always been up to date when new versions were released, and it has always "just worked" for me (except for the manual configuration needed, but I have always thought that is easier to handle than solving problems that some magic piece of software failed to figure out correctly). However, the convenience of pacman is what I'm sold on, I don't really care for manually keeping track of every package on my systems.
Like most of the other posters I've tried multiple other distros and the first distro that I really stuck with was kubuntu (meaning the first linux distro I'd rather use than windows). After trying to optimize that multiple times I tried other Debian based distros since I was used to the "style" of it and swore I'd never use anything that wasn't Debian based.... until I found Arch.
I've been using Arch for about two years and it took a little while to get used to but as soon as I did I loved it. One thing that I love is the "Rolling Release" model, that's one thing that really annoyed me about kubuntu was that you had to wait for new packages to be released and half the time those packages were a few months older than the current ones. Another thing that took a while to get used to (and understand) was the AUR, once I figured it out it's amazing and saves so much time compared to regular compiling.
Even though I was dedicated to Arch I figured I'd try other distros since I had the HDD space so I installed slackware since I knew it was pretty much the "father" of all other distros. I got it installed but couldn't get past the command line, even though I had installed Arch from the CLI up a few times. I tried to install everything a few times but figure it out so I said screw it and kept using Arch (which I am on now on my netbook). I will most likely use Arch as my main OS for awhile, if not forever.
I forgot to add this in, Arch is 10x better than any version of Ubuntu or it's derivitives. They're way too bloated, meant to be 'one size fits all" and user friendly which makes them more of a pain to configure/optimize (as stated previously). Arch is really stable, but there are some times (not that often) when there is a non-critical dependency/package problem but they're easily and quickly fixed most of the time. Give it a chance and I'm sure you'll like it.
That's a pretty cool article, about 2 of the greatest GNU/Linux distros available actually, I'm a Slack user since 2004, but I really liked the way Arch does things, for sure it's a nice choice if you want "a real GNU/Linux distro".
And another thing to consider, never try to compare *buntus with these ones, no way to do that. K.I.S.S.!!!!
long time xp user/manipulator just switched to xubuntu and couldn't be happier. messed with puppy and liked it, then xubu. interested in arch, but xubu is so cut and dry seamless install and damn fast compared to a tweaked xp box I am sold. gonna build a powerhouse and play with 64bit soon...
Slackware for the win! :-)
I use Slackware since 2005 and haven't been happier since. Although it wasn't my first distro (it was SuSE 9.3 for the ease of use), I love slack. Never tried Arch, because I like having versioned releases with stable software set in them. If I'm installing a really old box I can easily pick slackware 11.0 (which is the latest one using linux 2.4) and fire it up. While for the latest hardware the latest Slack runs awesome.
Get the official Slackware 13.0 DVD at the Store: http://store.slackware.com/
You get a dual-sided disk with slackware-32bit on one side and slackware-64bit on the other one!
Multilib packages are available from http://connie.slackware.com/~alien/multilib/
Join us in ##slackware on irc.freenode.net!
Excellent article, very nice summary of 2 of the best distro's. I tried Slackware last year on 12 and 13. I loved the KISS philosophy and the whole 'Church of Subgenius' is pretty funny. That said, when I'd finished the installs I thought they were too vanilla for my personal liking and wasn't inspired to keep them going (package management just seems a bit fuzzy to me in Slack - there are too many ways and tools to go about it). I've been using Arch for a couple of weeks. I love the 686 speed, the fact packages are always bang up to date and the Arch Wiki is absolutely brilliant for easily learning how to do just about anything. (compare this to slackbook which has been threatening to be updated to version 3 for years). Arch is the top 'serious' distro on distrowatch for a reason. Anyway, no offence to Slack and Pat, it is also brilliant and has a place - it just depends what your priorities are as Beej has so well summarised in this article.
Thank you for this really informative comparison, which made me curious on trying archlinux on my private Desktop.
After having tried many different distros, i always land again on Slackware, especially for machines that have to run really reliably at all points.
I totally agree. Slackware is the way to go. I have LXDE running on top of Slack and the combination results in a functional,good-looking, lightweight desktop on top of a simple, stable distro. Can't get better than that, IMHO.
I wonder if I have your permission to reproduce this material translated into Portuguese at vivaolinux (www.vivaolinux.com.br), which is the largest website of Latin America about Linux.
Yes! If you do, send me a link, and I'll link to it.
Thanks for detailed information
Outstanding comparison, Thanks!
These distros are not for the faint of heart. I've been trying to get x to work for longer than I care to admit now in my Arch install. And, yes I know how to read...and have done so.
(There are dozens of Arch users forming a line.. as we speak...to tell me to go to the Arch Wiki and me to read the guides.) Speaking of which, there are too many guides. A little consolidation would go a long way.
Having been a long time Slackware user, since 1996, and more recently an Arch user, I would say this comparison is very fair to both distributions and "spot on". Good job!