Jump to content

Alpine Linux

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Hitechcomputergeek (talk | contribs) at 06:22, 16 December 2017 (Features: remove mention of specific exploit and changed "lighter weight" to "more lightweight"). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Alpine Linux
DeveloperAlpine Linux development team
OS familyUnix-like
Working stateActive
Source modelOpen source
Latest release3.7.0 / 30 November 2017; 7 years ago (2017-11-30)[1]
Repository
Marketing targetDevelopers, power users
Available inMultilingual
Package managerAPK
Instruction setsx86, x86-64, ARMhf, AArch64
Kernel typeMonolithic (Linux)
UserlandBusyBox (GNU Core Utilities are optional)
Default
user interface
Command-line interface
Official websitealpinelinux.org

Alpine Linux is a Linux distribution based on musl and BusyBox, primarily designed for "power users who appreciate security, simplicity and resource efficiency". It uses a hardened kernel and compiles all user space binaries as position-independent executables with stack-smashing protection.[2]

A fork of the distribution, postmarketOS, is designed to run on mobile devices.

History

Originally, Alpine Linux began as a fork of the LEAF project.[3] The members of LEAF wanted to continue making a Linux distribution that could fit on a single floppy disk, whereas the Alpine Linux wished to include some more heavyweight packages such as Squid and Samba, as well as additional security features and a newer kernel. One of the original goals was to create a framework for larger systems; although usable for this purpose, this is no longer a primary goal.[citation needed]

Version history

Version Release date[4] End-of-life date[5] Kernel release
Unsupported: 3.2 2015-05-26 2017-05-01 3.18.xx
Unsupported: 3.3 2016-01-06 2017-11-01 4.1.xx
Supported: 3.4 2016-05-31 2018-05-01 4.4.xx
Supported: 3.5 2016-12-22 2018-11-01 4.4.xx
Supported: 3.6 2017-05-24 2019-05-01 4.9.xx
Latest version: 3.7 2017-11-30 2019-11-01 4.9.xx
Preview version: edge rolling
Legend:
Unsupported
Supported
Latest version
Preview version

Features

  • Package management: Alpine uses its own package management system, apk-tools,[6] which originally was a collection of shell scripts but was later rewritten in C. Alpine currently contains most commonly used packages such as GNOME, Xfce, Firefox, and others. Typical package installation times are between 1 and a few seconds.
  • Running from RAM: Alpine Linux can be installed as a run-from-RAM distribution. The LBU (Alpine Local Backup)[7] tool optionally allows all configuration files to be backed up to an APK overlay file (usually shortened to apkovl), a tar.gz file that by default stores a copy of all changed files in /etc (with the option to add more directories). This allows Alpine to work reliably in demanding embedded environments or to (temporarily) survive partial disk failures as sometimes experienced in public cloud environments.
  • Security: A hardened kernel is included in the default Alpine Linux kernel, which aids in reducing the impact of exploits and vulnerabilities. All packages are also compiled with stack-smashing protection to help mitigate the effects of userland buffer overflows.
  • Networking: Alpine Linux is the only distribution that as a default includes patches that allow using efficient meshed VPNs using the DMVPN standard.
  • Virtualization: Alpine Linux has reliably had excellent support of Xen hypervisors in up-to-date versions, which avoids issues as experienced with Enterprise Distributions. (The standard Linux hypervisor KVM, is also available.)
  • Size: The base system in Alpine Linux is designed to be only 4–5 MB in size (excluding the kernel).[citation needed] This allows very small Linux containers, around 8 MB in size, while a minimal installation to disk might be around 130 MB.[2] The Linux kernel is much larger; the 3.18.16 kernel includes 121 MB of loadable kernel modules (primarily drivers) in addition to the 3.3 MB for the base x86-64 kernel image.[citation needed]
  • Alpine Configuration Framework (ACF): While optional, ACF is an application for configuring an Alpine Linux machine, with goals similar to Debian's debconf. It is a standard framework based on simple LUA scripts.[citation needed]
  • C standard library: Alpine Linux previously used uClibc instead of the traditional GNU C Library (glibc) most commonly used. Although it is more lightweight, it does have the significant drawback of being binary incompatible with glibc. Thus, all software must be compiled for use with uClibc to work properly. As of April 9, 2014, Alpine Linux switched to musl, which is partially binary compatible with glibc.[8]
  • Init system: The simple and lightweight OpenRC is the init system currently used by Alpine Linux.[9] Unlike Debian, Ubuntu, RHEL, Arch Linux and CentOS distributions of Linux, Alpine does not use systemd.

References

  1. ^ "Alpine Linux 3.7.0 released". Alpine Linux. Alpine Linux Development Team. 2017-11-30. Retrieved 2017-12-01.
  2. ^ a b alpinelinux.org/about
  3. ^ "linux.leaf.devel - Re: [leaf-devel] 2.6.x kernel support? - msg#00039 - Recent Discussion OSDir.com".
  4. ^ https://alpinelinux.org/posts/ Alpine Linux News archive
  5. ^ https://wiki.alpinelinux.org/wiki/Alpine_Linux:Releases Alpine Linux:Releases
  6. ^ "Alpine Linux package management".
  7. ^ "Alpine local backup".
  8. ^ "musl FAQ".
  9. ^ "Alpine Linux Init System".