Arch Linux
Encyclopedia
Arch Linux is an independently developed, Linux-based
operating system
for i686 and x86-64
computers. It is composed predominantly of free and open source software
, and supports community involvement.
The design approach of the development team focuses on simplicity, elegance, code correctness and minimalism. "Simplicity", according to Arch, is defined as "...without unnecessary additions, modifications, or complications.." and is defined from a developer standpoint, rather than a user standpoint.
Inspired by CRUX
, another minimalist distribution, Judd Vinet started Arch Linux in March 2002. Vinet led the project until 1 October 2007, when he stepped down due to lack of time, transferring control of the project to Aaron Griffin.
Arch Linux uses a rolling release model, such that a regular system update is all that is needed to obtain the latest Arch software; the installation images released by the Arch team are simply up to date snapshots of the main system components.
To facilitate regular package changes, pacman was developed by Judd Vinet to provide Arch with its own package manager able to track dependencies.
Users can create packages compatible with pacman using the Arch Build System and custom PKGBUILD scripts. This functionality has helped support the Arch User Repository, which consists of user contributed packages to supplement the official repositories.
microprocessors to assist performance on modern hardware
. A ports
/ebuild
-like system is also provided for automated source compilation, known as the Arch Build System.
The Arch focus on simplicity and economy for developers means, among other things, that the main effort in assisting the user is not expended in crafting GUI configuration tools — the package manager, for example, does not have an official graphical front-end — but making well-annotated configuration files and extensive use of shell scripts. This has earned it a reputation as a distribution for "intermediate and advanced Linux users who aren't afraid of the command line".
framework, a tradeoff of flexibility for simplicity. It also includes and permits use of System V
runlevels and the inittab file, but there is little differentiation between runlevels. This is because the modules and daemons loaded at startup are arranged as arrays in the central configuration file, /etc/rc.conf, as opposed to System V's system of a directory for each runlevel containing a numbered symbolic link for each daemon. There is also the ability to start processes asynchronously, which neither the original BSD init nor the original Sys V init have.
See init
for more detail on the differences between the two systems.
s that can be run from CD
or USB
. The Arch Linux installer is a shell script using dialog
for user interaction. The default install is minimalistic. Further system customization and expansion (adding a window manager, desktop environment, etc.) must be done manually, installing packages downloaded from online repositories. Arch is therefore generally considered relatively involved to install, in comparison to other operating systems.
An alternative to using CD or USB images for installation is to use the static version of the package manager Pacman, from within another GNU/Linux based operating system. The user can mount
his or her newly formatted drive partition
, and use Pacman with the appropriate command-line switch to have it use the mountpoint of the device as root
for its operations. This way the base package group and any additional packages can be installed on the newly formatted partition by having Pacman retrieve them from its mirrors
. However, there are further actions that need to be taken before the system is ready for use after this process, most notably installing a bootloader
, and making various configurations to the new system.
In addition, there also exist testing repositories that include package candidates for other repositories. Currently, the following testing repositories exist:
The staging and community-staging repositories are used for some rebuilds to avoid broken packages in testing.
The unstable repository was dropped in July 2008 and most of the packages moved to other repositories. In addition to the official repositories, there are a number of unofficial user repositories, the most well-known being the Arch User Repository, or AUR, hosted on the Arch Linux site.
-like source packaging system that compiles source tarballs into binary packages, which are installed via Pacman. The Arch Build System provides a directory tree of shell script
s, called PKGBUILDs, that enable any and all official Arch packages to be customized and compiled. Rebuilding the entire system using modified compiler flags
is also supported by the Arch Build System. The Arch Build System makepkg tool can be used to create custom .pkg.tar.xz packages from third-party sources. The resulting packages are also installable and trackable via Pacman.
The Arch User Repository provides the community with packages that are not included in the repositories. Reasons include:
PKGBUILDs for any software can be contributed by ordinary users and any PKGBUILD that is not confined to the Arch User Repository for policy reasons can be voted into the community repositories.
, and unlike other major distributions such as Ubuntu
and Fedora
, Arch Linux does not schedule releases for specific dates but uses a "rolling release
" system, with new packages provided daily. Its package management allows users to keep systems up-to-date easily. Rather than encouraging users to move between discrete releases, Arch Linux releases are simply snapshots of the current set of packages, sometimes with revised installation software. Therefore it makes no difference from which release Arch gets installed if updates are installed afterwards. In fact, some members of the Arch forums take pride in showing the age of the installation.
From version 2009.02 the goal is to bring coordinated releases following the rhythm of kernel releases, in order to provide optimal hardware support, this means a new release every 3 or 4 months.
, the latest image is 2011.08.19, dated 19 August 2011.
Linux distribution
A Linux distribution is a member of the family of Unix-like operating systems built on top of the Linux kernel. Such distributions are operating systems including a large collection of software applications such as word processors, spreadsheets, media players, and database applications...
operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
for i686 and x86-64
X86-64
x86-64 is an extension of the x86 instruction set. It supports vastly larger virtual and physical address spaces than are possible on x86, thereby allowing programmers to conveniently work with much larger data sets. x86-64 also provides 64-bit general purpose registers and numerous other...
computers. It is composed predominantly of free and open source software
Free and open source software
Free and open-source software or free/libre/open-source software is software that is liberally licensed to grant users the right to use, study, change, and improve its design through the availability of its source code...
, and supports community involvement.
The design approach of the development team focuses on simplicity, elegance, code correctness and minimalism. "Simplicity", according to Arch, is defined as "...without unnecessary additions, modifications, or complications.." and is defined from a developer standpoint, rather than a user standpoint.
Inspired by CRUX
CRUX
CRUX is a lightweight, i686-optimized GNU/Linux distribution targeted at experienced GNU/Linux users and delivered by a tar.gz-based package system with BSD-style initscripts. It also utilizes a ports system to install and upgrade applications. The current release is 2.7.1.Although crux is the...
, another minimalist distribution, Judd Vinet started Arch Linux in March 2002. Vinet led the project until 1 October 2007, when he stepped down due to lack of time, transferring control of the project to Aaron Griffin.
Arch Linux uses a rolling release model, such that a regular system update is all that is needed to obtain the latest Arch software; the installation images released by the Arch team are simply up to date snapshots of the main system components.
To facilitate regular package changes, pacman was developed by Judd Vinet to provide Arch with its own package manager able to track dependencies.
Users can create packages compatible with pacman using the Arch Build System and custom PKGBUILD scripts. This functionality has helped support the Arch User Repository, which consists of user contributed packages to supplement the official repositories.
Design and principles
Arch is largely based around binary packages. Packages are targeted for i686 and x86-64X86-64
x86-64 is an extension of the x86 instruction set. It supports vastly larger virtual and physical address spaces than are possible on x86, thereby allowing programmers to conveniently work with much larger data sets. x86-64 also provides 64-bit general purpose registers and numerous other...
microprocessors to assist performance on modern hardware
Hardware
Hardware is a general term for equipment such as keys, locks, hinges, latches, handles, wire, chains, plumbing supplies, tools, utensils, cutlery and machine parts. Household hardware is typically sold in hardware stores....
. A ports
Ports collection
Ports collections are the sets of makefiles and patches provided by the BSD-based operating systems, FreeBSD, NetBSD, and OpenBSD, as a simple method of installing software or creating binary packages...
/ebuild
Ebuild
An ebuild is a specialized bash script format created by the Gentoo Linux project for use in its Portage software management system, which automates compilation and installation procedures for software packages....
-like system is also provided for automated source compilation, known as the Arch Build System.
The Arch focus on simplicity and economy for developers means, among other things, that the main effort in assisting the user is not expended in crafting GUI configuration tools — the package manager, for example, does not have an official graphical front-end — but making well-annotated configuration files and extensive use of shell scripts. This has earned it a reputation as a distribution for "intermediate and advanced Linux users who aren't afraid of the command line".
init framework
Arch uses a BSD-style initInit
init is a program for Unix-based computer operating systems that spawns all other processes. It runs as a daemon and typically has PID 1. The boot loader starts the kernel and the kernel starts init...
framework, a tradeoff of flexibility for simplicity. It also includes and permits use of System V
UNIX System V
Unix System V, commonly abbreviated SysV , is one of the first commercial versions of the Unix operating system. It was originally developed by American Telephone & Telegraph and first released in 1983. Four major versions of System V were released, termed Releases 1, 2, 3 and 4...
runlevels and the inittab file, but there is little differentiation between runlevels. This is because the modules and daemons loaded at startup are arranged as arrays in the central configuration file, /etc/rc.conf, as opposed to System V's system of a directory for each runlevel containing a numbered symbolic link for each daemon. There is also the ability to start processes asynchronously, which neither the original BSD init nor the original Sys V init have.
See init
Init
init is a program for Unix-based computer operating systems that spawns all other processes. It runs as a daemon and typically has PID 1. The boot loader starts the kernel and the kernel starts init...
for more detail on the differences between the two systems.
Installation
The Arch Linux website supplies ISO imageISO image
An ISO image is an archive file of an optical disc, composed of the data contents of every written sector of an optical disc, including the optical disc file system...
s that can be run from CD
Live CD
A live CD, live DVD, or live disc is a CD or DVD containing a bootable computer operating system. Live CDs are unique in that they have the ability to run a complete, modern operating system on a computer lacking mutable secondary storage, such as a hard disk drive...
or USB
Live USB
A live USB is a USB flash drive or a USB external hard disk drive containing a full operating system that can be booted. Live USBs are closely related to live CDs, but sometimes have the ability to persistently save settings and permanently install software packages back onto the USB device...
. The Arch Linux installer is a shell script using dialog
Dialog (software)
Dialog is an application used in shell scripts which displays text user interface widgets. It uses the curses or ncurses library. The latter provides users with the ability to use a mouse, e.g., in an xterm....
for user interaction. The default install is minimalistic. Further system customization and expansion (adding a window manager, desktop environment, etc.) must be done manually, installing packages downloaded from online repositories. Arch is therefore generally considered relatively involved to install, in comparison to other operating systems.
An alternative to using CD or USB images for installation is to use the static version of the package manager Pacman, from within another GNU/Linux based operating system. The user can mount
Mount (Unix)
The Unix command line utility mount instructs the operating system that a file system is ready to use, and associates it with a particular point in the system's file system hierarchy . The counterpart umount instructs the operating system that the file system should be disassociated from its mount...
his or her newly formatted drive partition
Disk partitioning
Disk partitioning is the act of dividing a hard disk drive into multiple logical storage units referred to as partitions, to treat one physical disk drive as if it were multiple disks. Partitions are also termed "slices" for operating systems based on BSD, Solaris or GNU Hurd...
, and use Pacman with the appropriate command-line switch to have it use the mountpoint of the device as root
Root directory
In computer file systems, the root directory is the first or top-most directory in a hierarchy. It can be likened to the root of a tree — the starting point where all branches originate.-Metaphor:...
for its operations. This way the base package group and any additional packages can be installed on the newly formatted partition by having Pacman retrieve them from its mirrors
Mirror (computing)
In computing, a mirror is an exact copy of a data set. On the Internet, a mirror site is an exact copy of another Internet site.Mirror sites are most commonly used to provide multiple sources of the same information, and are of particular value as a way of providing reliable access to large downloads...
. However, there are further actions that need to be taken before the system is ready for use after this process, most notably installing a bootloader
Booting
In computing, booting is a process that begins when a user turns on a computer system and prepares the computer to perform its normal operations. On modern computers, this typically involves loading and starting an operating system. The boot sequence is the initial set of operations that the...
, and making various configurations to the new system.
Pacman
All packages are managed using the Pacman package manager. Pacman handles package installation, upgrades, removal and downgrades, and features automatic dependency resolution. The packages for Arch Linux are obtained from the Arch Linux package tree and are compiled for either i686 or x86-64 architectures. Arch Linux is primarily based on binary packages in the tar.gz and tar.xz format.Repositories
Currently, the following basic official repositories exist:- core, which contains all the packages needed to set up a base system
- extra, which holds packages not required for the base system, including desktop environments and programs
- community, which contains packages built and voted on by the community; includes packages that have sufficient votes and have been adopted by a "trusted user".
- multilib, a centralized repository for x86_64 users to more readily support 32-bit applications in a 64-bit environment.
In addition, there also exist testing repositories that include package candidates for other repositories. Currently, the following testing repositories exist:
- testing, with packages for core and extra.
- community-testing, with packages for community.
- multilib-testing, with packages for multilib.
The staging and community-staging repositories are used for some rebuilds to avoid broken packages in testing.
The unstable repository was dropped in July 2008 and most of the packages moved to other repositories. In addition to the official repositories, there are a number of unofficial user repositories, the most well-known being the Arch User Repository, or AUR, hosted on the Arch Linux site.
Repository security
Until version 4.0.0 Arch Linux's package manager lacked support for signed packages. Packages and metadata were not verified for authenticity by pacman during the download-install process. Without package authentication checking, tampered-with or malicious repository mirrors can comprimise the integrity of a system. , however, 51% of packages in the repositories are signed..Arch Build System
The Arch Build System is a portsPorts collection
Ports collections are the sets of makefiles and patches provided by the BSD-based operating systems, FreeBSD, NetBSD, and OpenBSD, as a simple method of installing software or creating binary packages...
-like source packaging system that compiles source tarballs into binary packages, which are installed via Pacman. The Arch Build System provides a directory tree of shell script
Shell script
A shell script is a script written for the shell, or command line interpreter, of an operating system. It is often considered a simple domain-specific programming language...
s, called PKGBUILDs, that enable any and all official Arch packages to be customized and compiled. Rebuilding the entire system using modified compiler flags
CFLAGS
CFLAGS and CXXFLAGS are either the name of environment variables or of Makefile variables that can be set to specify additional switches to be passed to a compiler in the process of building computer software....
is also supported by the Arch Build System. The Arch Build System makepkg tool can be used to create custom .pkg.tar.xz packages from third-party sources. The resulting packages are also installable and trackable via Pacman.
Arch User Repository
In addition to the repositories, the Arch User Repository provides user-made PKGBUILD scripts for packages not included in the repositories. The PKGBUILD scripts simplify building from source by explicitly listing and checking for dependencies and configuring the install to match the Arch architecture. The scripts are available for download from http://aur.archlinux.org. Arch User Repository helper programs can further streamline the downloading and building process. However, such tools that search, download and run PKGBUILD scripts automatically will never be included in the official repositories because of potential security risks.The Arch User Repository provides the community with packages that are not included in the repositories. Reasons include:
- License issues. Software that cannot be redistributed, but is free to use, can be included in the Arch User Repository since all that is hosted by the Arch Linux web site is a shell script that downloads the actual software from elsewhere. Examples include proprietary freewareFreewareFreeware is computer software that is available for use at no cost or for an optional fee, but usually with one or more restricted usage rights. Freeware is in contrast to commercial software, which is typically sold for profit, but might be distributed for a business or commercial purpose in the...
such as Google EarthGoogle EarthGoogle Earth is a virtual globe, map and geographical information program that was originally called EarthViewer 3D, and was created by Keyhole, Inc, a Central Intelligence Agency funded company acquired by Google in 2004 . It maps the Earth by the superimposition of images obtained from satellite...
and RealPlayerRealPlayerRealPlayer is a cross-platform media player by RealNetworks that plays a number of multimedia formats including MP3, MPEG-4, QuickTime, Windows Media, and multiple versions of proprietary RealAudio and RealVideo formats.-History:...
. - Modified official packages. The Arch User Repository also contains many variations on the official packaging as well as beta versions of software that is contained within the repositories as stable releases.
- Rarity of the software. Some new or rarely used programs have not been added to the official repositories (yet).
PKGBUILDs for any software can be contributed by ordinary users and any PKGBUILD that is not confined to the Arch User Repository for policy reasons can be voted into the community repositories.
"Rolling releases"
Similar to GentooGentoo Linux
Gentoo Linux is a computer operating system built on top of the Linux kernel and based on the Portage package management system. It is distributed as free and open source software. Unlike a conventional software distribution, the user compiles the source code locally according to their chosen...
, and unlike other major distributions such as Ubuntu
Ubuntu (operating system)
Ubuntu is a computer operating system based on the Debian Linux distribution and distributed as free and open source software. It is named after the Southern African philosophy of Ubuntu...
and Fedora
Fedora (operating system)
Fedora is a RPM-based, general purpose collection of software, including an operating system based on the Linux kernel, developed by the community-supported Fedora Project and sponsored by Red Hat...
, Arch Linux does not schedule releases for specific dates but uses a "rolling release
Rolling release
In software development, a rolling release development model refers to a continuously developing software system; this is opposed to a standard release development model which uses software versions that must be reinstalled over the previous version...
" system, with new packages provided daily. Its package management allows users to keep systems up-to-date easily. Rather than encouraging users to move between discrete releases, Arch Linux releases are simply snapshots of the current set of packages, sometimes with revised installation software. Therefore it makes no difference from which release Arch gets installed if updates are installed afterwards. In fact, some members of the Arch forums take pride in showing the age of the installation.
From version 2009.02 the goal is to bring coordinated releases following the rhythm of kernel releases, in order to provide optimal hardware support, this means a new release every 3 or 4 months.
, the latest image is 2011.08.19, dated 19 August 2011.
Install media history
Color | Meaning |
---|---|
Yellow | Old release |
Green | Current release |
Blue | Future release |
Version | Code name | Date | Notes |
---|---|---|---|
0.1 | Homer | 2002-03-11 | First release built from scratch. |
0.2 | Vega | 2002-04-17 | |
0.3 | Firefly | 2002-08-07 | |
0.4 | Dragon | 2002-12-18 | |
0.5 | Nova | 2003-07-21 | Support for PAM, LVM, GRUB. |
0.6 | Widget | 2004-03-01 | Support for JFS and XFS added. |
0.7 | Wombat | 2005-01-24 | |
0.8 | Voodoo | 2007-03-31 | |
2007.05 | Duke | 2007-05-17 | Pacman v3 |
2007.08 | Don't Panic | 2007-08-05 | |
2008.06 | Overlord | 2008-06-24 | Availability of USB disk images. |
2009.02 | 2009.02 | 2009-02-16 | Inclusion of AIF (Arch Linux Installation Framework). |
2009.08 | 2009.08 | 2009-08-10 | Pacman 3.3, Usage of new AIF installer, better boot device detection, better date/time setting, re-factored grub installation routines. |
2010.05 | 2010.05 | 2010-05-17 | First snapshot with isohybrid support, dual arch images, using isolinux exclusively and pxe support. |
2011.08.19 | 2011.08.19 | 2011-08-19 | Linux 3.0.3-1, syslinux bootloader support, btrfs and nilfs2 experimental filesystem support. |
See also
- List of Pacman-based Linux distributions
- Comparison of Linux distributionsComparison of Linux distributionsTechnical variations of Linux distributions include support for different hardware devices and systems or software package configurations. Organizational differences may be motivated by historical reasons...
- Arch HurdArch HurdArch Hurd is an operating system based on Arch Linux, but uses GNU Hurd kernel instead of Linux.The Arch Hurd project was founded on an Arch Linux forum thread and, after a few weeks with many contributions, progressed to the point where it could boot in a virtual machine...
External links
- Interview with Judd Vinet about Arch Linux, a 2003 interview by DistroWatch
- The Big Arch Linux Interview, a 2005 interview by OSNews
- Interview: Arch Linux Team, a 2010 interview by OSNews