Arch Linux – "It is what you make it"by Richard HillesleyMany Linux distributions have taken the path of easy GUI-based installation, in order to appeal to a broader mix of users. But not Arch Linux, which emphasises simplicity of technical complexity over general usability. Richard Hillesley explains.

"A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away." – Antoine de Saint-Exupéry.

Arch Linux is a lightweight Linux distribution optimised for i686 and x86-64 architectures. Arch features a BSD-style init system and its own pacman package manager, and uses a rolling-release development model rather than issuing fixed releases.

Arch likes to define itself around the concept of simplicity, yet Arch Linux is not a distribution for the first time user. Simplicity, as defined by an Arch user, is about elegance and reduced technical complexity at the system configuration level and is not about ease of installation or ease of use, though ease of use may be a useful by-product of the installation process.

Arch doesn't use a graphical installer, and installation is a guided process designed to give the optimum result for the individual user. The user installs a lightweight base system using a text-based installer. The base system comprises the basic necessities: the kernel, the GNU toolchain, libraries and some utilities. The philosophy of the Arch developers is that: "A lightweight base structure built with high programming standards will tend to have lower system resource demands." To this end: "the base system is devoid of all clutter that may obscure important parts of the system, or make access to them difficult or convoluted."

Arch has "a streamlined set of succinctly commented, clean configuration files that are arranged for quick access and editing, with no cumbersome graphical configuration tools to hide possibilities from the user", so, "an Arch Linux system is therefore readily configurable to the very last detail."

Every Arch installation is different to every other Arch installation and is defined by its technical elegance and its adherence to the demands of the individual user or set of users. The aim is not a Linux for every man, but a Linux that is moulded to fit the demands of the individual user. So, as the Arch wiki expresses it, simplicity in the context of Arch Linux means "without unnecessary additions, modifications, or complications. In short; an elegant, minimalist approach."

The benefit of this approach is that an effective Arch installation becomes whatever the user wants of it and, ultimately, "it is what you make it."

For the star gazersIn the beginning GNU/Linux distributions came with everything, because everything wasn't very much. An early GNU/Linux distribution came with the GNU tools, some text editors and games, email clients and browsers, Apache and Samba, and some maverick add-ons, such as ham radio tools or XEphem for the star gazers. Everything that was out there came in some form or another, on a bunch of floppies. For the most part the user put things together himself (or herself), and not everything worked, but it could always be added to or fixed. Linux became a playground for programmers, hobbyists and informed users who had some understanding of how the system worked.

And then along came the more modern distributions that were aimed at the general end user. The emphasis was on getting things to work out of the box, with snazzy GUIs and graphical installers which aimed to be "big and professional", and every distribution hoped to be Linux for the everyman. The downside with these distributions is that the things that made Linux attractive to the hobbyists, programmers and informed users – such as control and flexibility – were sacrificed for the greater good of the generic user.

The role of community distributions such as Arch Linux is to return control to the more technically inclined user as a platform for learning, educating and building into the future. According to Aaron Griffin, the "owner" and lead developer of Arch Linux: "Arch is not a distribution made for 'user friendliness'. It is a distribution designed to be a platform – a 'base' for the user to do what they want. This means that we don't try to force a user's hand into our way of doing things, with our configuration tools, and our ideas. It should be about their ideas."

Chakra's Tribe installer. 'The installed system is pure Arch Linux + KDE4 + Shaman, with some artistic touches.' Perhaps because the user is able to do as they wish, Arch has been the base for many derivatives, the best known of which is probably ArchBang; this has gained a following as a minimalist distribution which uses an Arch base and the OpenBox window manager. The Arch philosophy has also been ported to the Hurd in the form of ArchHurd. Other Arch derivatives that are worth trying are Chakra, which is "Arch Linux + KDE4 + Shaman with some artistic touches", and Parabola, which is entirely free software. Arch has also been ported to other architectures, notably ARM-based processors with Arch Linux ARM.

The art of simplicityThe jazz musician and composer Charlie Mingus once declared that "making the simple complicated is commonplace", but "making the complicated simple, awesomely simple, that's creativity". Reducing complexity refines the possibilities and gives the user greater control. Greater access to the levers of power opens the door to other possibilities. The starting place is not at the point the end user sees, in the form of a graphical user environment or a super-quick graphical installer, but at the point of the lowest level system configuration – where many distributions hide a mass of unnecessary clutter.

Arch is often described as a KISS distribution, where KISS is an acronym for 'Keep It Simple, Stupid'. In this context, the Arch developers sometimes refer to Occam's Razor or to the principle that "entities must not be multiplied beyond necessity".

The philosophy of the Arch user is: "if you try to hide the complexity of the system, you'll end up with a more complex system", and that "layers of abstraction that serve to hide internals are never a good thing. Instead, the internals should be designed in a way such that they NEED no hiding."

Arch is a community distribution without any significant commercial pretensions, and its primary objective is to serve the interests of its own growing community and its own particular philosophy, so it doesn't have to appeal to every user. The community is responsive and friendly, but there is a very definite "self help" philosophy, aided and abetted by comprehensive and helpful documentation that is as useful for experienced users as it is for beginners. Griffin is blunt on this topic: "We can't help you", he says. "Yes this is a philosophical point. Every Arch user is expected to be able to help themselves – to be able to look up information, configuration files, bugs, etc. You're expected to be able to do a little research when you have a problem. Teach a man to fish, and all that."

He has also said: "We're not about hand-holding. If you want to learn something, you better be prepared to learn it for yourself rather than have someone sit down and explain it to you."

Arch is about the art of minimalism; simplicity, in the context of Arch Linux, refers to what lies under the hood. Arch is not about user friendliness, but does consider itself to be user-centric. According to Griffin: "Arch is not primarily concerned about the user. The user is important", he says. "Sure, but most important are simplicity and elegance. The user is important as long as it does not interfere with these doctrines", and simplicity is defined "from a technical standpoint, not a usability standpoint. It is better to be technically elegant with a higher learning curve, than to be easy to use, and technically crap."

"In short, the Arch Way is about simplicity and giving control to the user. Keeping things simple, and agile."

The way to kissLike Gentoo, Arch is an operating system for more adventurous users who aren't afraid to get under the hood and get familiar with the internal workings of their system, and want to understand how things work. Both Arch and Gentoo have been influenced by the BSDs, and both have their own package and build management systems which owe something to FreeBSD's ports system.

But there are also considerable differences between Arch and Gentoo. Arch Linux packages come pre-compiled and optimised for i686 and x86-64 architectures. Arch is more approachable for less experienced users, and it is possible to install a fully working version of Arch in a relatively short time.

The result is worth the effort of the guided install process, with the installation guide in front of you and the knowledge that the install is a one-off process. Like Gentoo, Arch is a rolling release, updated and upgraded as you go along. The Arch Linux community has a very definite idea of its identity and philosophy, as defined by The Arch Way, and, as a result, tidily documents the installation process.

At the end of the process the user has an operating system that is leaner and meaner, less weighed down with bloat and flab, and configured to fulfil the user's objectives. Pacman, the Arch package manager, can be run with the --sync option at any time to synchronise a remote installation with the package sets on the master server. This approach re-enforces the Arch imperative that "relying on complex tools to manage and build your system is going to hurt the end users", and that "maintenance and upgrading should be an active process, not a passive one."

Keeping it simpleArch began life in early 2001 as a personal project of Judd Vinet, who drew his inspiration from Per Liden's CRUX distribution which shares many of the characteristics of Arch Linux. Like Arch, CRUX was designed to be a lightweight Linux distribution and used BSD-style init scripts and, like Arch, the focus of CRUX was to "keep it simple".

Vinet was drawn to Crux because he found it: "simple, elegant, and very quick and easy to use once you understood how it worked. And understanding did not take long, because everything just made sense – concepts and methods weren't complicated unless they had to be."

But CRUX had one major shortcoming. CRUX used gzipped tarballs and had no dependency tracking. "There was no meta-data, no dependency tracking, and no easy way to locate and download packages. The package set was also very minimalistic."

Vinet's solution was to develop Arch. Initially, Arch was a one-man project, to fulfill the time-honoured objective of scratching the itch of one developer, but the project has grown steadily through the years, and now has well over thirty core developers. For Vinet, Arch was "an opportunity to take all the great concepts I liked about other distributions and combine them together, along with some of my own tastes. Simplicity and elegance were my goals."

The Arch Linux installer Scratch an itchVinet's solution to the dependency problems he had encountered with Crux was to write a package manager, pacman, which served as a useful adjunct to his build scripts, and became the main selling point of Arch. "Once you install Arch Linux on your computer", he noted, "it's always up to date. Just run pacman on a regular basis and you never have to download another ISO, and never have to rebuild your system with a newer version."

But pacman is "only half of the package management system. It tracks, downloads, installs, removes, and upgrades the tar-gzipped packages that we distribute. The other half is the Arch Build System (ABS), which is a build system heavily based on FreeBSD's ports system."

Other Linux users may argue about the drawbacks of having yet another package management system to rival apt-get or yum, but Linux at the community level has always been about control and choice, and Arch users will tell anyone who asks that pacman is their preferred choice.

According to Vinet pacman was "the biggest draw" for Arch Linux. "People love it," he said. "They also seem to like the simple filesystem layout, the lack of extraneous stuff (like /usr/doc), and the simple boot scripts, which provide modular rc.d daemon scripts but without the SysVinit-style fun."

Just for funJudd Vinet left the project in 2007 and handed the reins over to Aaron Griffin, under whom Arch has continued to grow, as a popular distro with a distinctive philosophy all of its own – for experienced users and for those with an itch to scratch.

Arch Linux rivals only Debian in its dedication to its guiding philosophy. For the Arch developer "simplicity is the primary principle", and elegance, versatility and expedience are the secondary virtues. "The simple, elegant and versatile system must offer expedience where practical, but expedience can and will be sacrificed in favour of any of the above. It must be sacrificed whenever implementation simplicity is jeopardised. When expedience is compromised by a resulting complexity of user interface, it must present its complexity without unnecessary complication. All other principles must be sacrificed in favour of design simplicity. Implementation simplicity is more important than interface simplicity."

As if to prove Arch's growing influence and popularity, Arch Linux ARM was recently chosen as one of the distributions to be offered with the Raspberry Pi Foundation's revolutionary ultra-low-cost Linux computer for teaching computer programming to children.

"It's just for fun..." Griffin has said. "I am trying to create the perfect distro to run my machines, and that just so happens to coincide with what other people want. Otherwise we wouldn't have such a great team of developers and community members."

For other feature articles by Richard Hillesley, please see the archive.