Under the Hood with Arch and Gentoo
Arch and Gentoo are rolling community distributions that emphasise self-help and choice for the adventurous user. Richard Hillesley investigates…
As rolling distributions – by which we mean distros that are installed once only and updated on the fly – and distros that are intended for the kind of users who don’t mind getting involved with the internal workings of their systems, Arch and Gentoo share many characteristics. Both have been influenced by the BSDs, and both have package systems which owe something to FreeBSD’s ports system. They are community distributions that have little or no significant commercial pretensions, and their primary objective is to serve the interests of their own communities and their own particular philosophies, with no obligation to appeal to ‘every’ user.
In so much as this is true, they are alike, but they are very different in the specifics of their policies and application. Neither comes with a preset configuration or choice of packages. Arch Linux packages come pre-compiled and optimised for i686 and x86_64 architectures. Gentoo packages are compiled from source to the specification of the user and the hardware, and every installation of either Gentoo or Arch is unique, and unlike any other installation of the same software.
Both utilise their own automated build scripts which guide the user through the build process but allow for user discrimination and choice. Arch uses the Arch Build System (ABS), while Gentoo uses ebuild. Neither is about ease of use or making installation easier for the new user. Computers are what you do with them, and most users have little or no knowledge of how their systems are put together, and care even less. Distributions like Gentoo and Arch are for the users who want to reach under the hood, get their hands dirty and find out how their system works.
Teach a man to fish
Aaron Griffin, the lead developer of Arch Linux, says of Arch that it is not “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.”
If the user of an Arch or Gentoo system makes the right choices, the result is a customised installation that suits the wants and needs of the individual user. The installation may take hours or days, but the pay-off is that it only happens once and the user has a system optimised to fulfil their own wants and desires – which is likely to be leaner and faster than a run-of-the-mill ‘easy to use’ distribution, where the priority is a quick install and a running system that just works, where choices are made on the user’s behalf and unwanted programs and daemons are run and seldom used.
This doesn’t mean that either Arch or Gentoo are ‘difficult’, but that the onus is on the user to follow the manual and make his or her choices carefully. Distros like Arch and Gentoo are best suited to the patient user who is not in a hurry and doesn’t mind making a mistake and learning from it – or in the case of Gentoo, waiting while the code compiles and going through several iterations to get the choices right.
Installation is hands-on, and slow and painstaking, but is worth the effort if you have the time and the inclination to work your way through the process. The culture for both distributions is not to hold your hand, but to walk you through the process with sound and useful documentation.
As Griffin says of Arch: “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… 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.”
An active process
Both Arch and Gentoo are about exercising the initiative of the user, and giving the user greater control and flexibility, but they have very different emphases. Unlike Arch, Gentoo is a source-based distribution, where code is compiled on the fly, and the emphasis has always been on maximising speed and performance, and getting the best out of both the hardware and the software. Arch is more approachable for less experienced users, and it is possible to install a fully working version in a relatively short time.
Arch sees itself as an adventure in simplicity, where 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,” according to Griffin.
The result is worth the effort of the guided install process, with the installation guide in front of you, in the knowledge that the install is a one-off process. Like Gentoo, Arch is a rolling release, updated and upgraded as you go along, and 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.
The Arch Way
The Arch philosophy is defined as The Arch Way, as set out on the Arch Linux wiki. 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.”
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
feature – where many distributions hide a mass of unnecessary clutter.
Arch is a KISS distribution, where KISS is an acronym for ‘Keep It Simple, Stupid’. The philosophy is, as stated by Aaron Griffin, “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 about simplicity and the art of minimalism – and 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.”
Changing the landscape
In recent years Arch Linux has benefited from an influx of developers and users who are inquisitive and have an interest in exploring how their system is put together and how it works, and don’t mind how many iterations it takes. Gentoo and other source-based distributions, in contrast, have lost some of their appeal and popularity, but continue to challenge the status quo. Back in 2007 it was said, in a DistroWatch commentary, that “Gentoo has become a distribution without any clear goals, without the drive to implement new ideas, and without the ability to deliver products that its users want…
“Unless they wake up soon, Gentoo Linux, once the most innovative and refreshing of all distributions, will become nothing more than an average, buggy operating system characterised by endless bickering among the few developers that will bother to remain with it.”
But despite the dire warnings, Gentoo has not hit the buffers. Indeed, it has inspired Saboyan Linux, an out-of-the-box desktop Linux based on Gentoo. Gentoo’s place is assured as a place to learn, or as a building block to roll your own desktop or distribution.
Gentoo and Arch and the distributions like them, which provide for more adventurous users, may lack the celebrity and acclaim of Ubuntu or Mint, but are, and always have been, a vital part of the Linux landscape.