Alpine Linux

{{short description|Linux distribution based on musl and BusyBox}}

{{Use dmy dates|date=January 2021}}

{{Infobox OS

| name = Alpine Linux

| logo = Alpine Linux.svg

| screenshot =

| caption =

| developer = Alpine Linux development team

| family = Linux (Unix-like)

| working state = Active

| source model = Open source

| released = {{Start date and age|2005|08|df=yes}}

| latest release version = {{wikidata|property|reference|P348}}

| latest release date = {{start date and age|{{wikidata|qualifier|P348|P577}}}}

| marketing target = General-purpose. Security, embedded systems and other resource-constrained systems, such as containers.{{Cite web |title=about | Alpine Linux |url=https://alpinelinux.org/about/ |website=alpinelinux.org}}

| language = Multilingual

| package manager = APK (Alpine Package Keeper){{Cite web |title=Alpine Package Keeper |url=https://wiki.alpinelinux.org/wiki/Alpine_Package_Keeper |website=wiki.alpinelinux.org}}

| supported platforms = {{Plain list|

}}

| kernel type = Monolithic (Linux)

| userland = BusyBox

| ui = Ash

| license =

| website = {{URL|https://alpinelinux.org}}

}}

Alpine Linux is a Linux distribution designed to be small, simple, and secure.{{Cite web |title=about | Alpine Linux |url=https://alpinelinux.org/about/ |website=alpinelinux.org}} It uses musl, BusyBox, and OpenRC instead of the more commonly used glibc, GNU Core Utilities, and systemd.{{Cite web|url=https://linuxbsdos.com/2010/08/23/alpine-linux-2-review/|title=Alpine Linux 2 review | LinuxBSDos.com|first=GigaTux|last=says|date=24 August 2010}}[https://news.softpedia.com/news/security-oriented-alpine-linux-3-7-has-uefi-support-grub-support-in-installer-518820.shtml Security-Oriented Alpine Linux 3.7 Has UEFI Support, GRUB Support in Installer], Softpedia News[https://fossbytes.com/secure-linux-distros-privacy-anonymity/ 10 Most Secure Linux Distros For Complete Privacy & Anonymity | 2017 Edition], FossBytes{{Cite web|url=https://www.networkworld.com/article/3031762/is-docker-ditching-ubuntu-linux-confusion-reigns.html|title=Is Docker ditching Ubuntu Linux? Confusion reigns|first=Katherine|last=Noyes|date=9 February 2016|website=Network World}}{{Cite web |title=OpenRC - Alpine Linux |url=https://wiki.alpinelinux.org/wiki/OpenRC |website=wiki.alpinelinux.org}} This makes Alpine one of few Linux distributions not to be based on the GNU Core Utilities or glibc.{{Cite web |title=What is Alpine Linux? {{!}} Definition from TechTarget |url=https://www.techtarget.com/searchitoperations/definition/Alpine-Linux |access-date=2023-11-24 |website=IT Operations |language=en}}

For security, Alpine compiles all user-space binaries as position-independent executables with stack-smashing protection.{{Cite web |title=Alpine Linux official website under Secure section. |url=https://alpinelinux.org/about/ |website=alpinelinux.org/}}

Because of its small size and rapid startup, it is commonly used in containers providing quick boot-up times,{{Cite web|url=https://thenewstack.io/alpine-linux-heart-docker/|title=Meet Alpine Linux, Docker's Distribution of Choice for Containers|date=28 March 2017}}{{Cite web|url=https://www.infoworld.com/article/3206644/review-alpine-linux-is-made-for-docker.html|title=Review: Alpine Linux is made for Docker|date=10 July 2017|website=InfoWorld}} on virtual machines as well as on real hardware in embedded devices, such as routers, servers and NAS.{{Citation needed|date=May 2023}}

History

Originally, Alpine Linux began as an embedded-first distribution for devices such as wireless routers, based on Gentoo Linux,{{cite web|url=https://sourceforge.net/p/leaf/mailman/message/12731262/|title=Re: [leaf-devel] 2.6.x kernel support?|website=SourceForge}} inspired by {{Tooltip|GNAP|Gentoo Network Appliance Project}} and the Bering-uClibc branch of the LEAF Project.{{cite web|url=https://sourceforge.net/p/leaf/mailman/message/12731159/|title=Re: [leaf-devel] 2.6.x kernel support?|website=SourceForge}} Founder Natanael Copa has said that the name was chosen as a backronym for "A Linux-Powered Network Engine" or some such similar phrase, but that the exact phrase has since been forgotten.{{Citation |title=Small, Simple, and Secure: Alpine Linux under the Microscope | date=3 November 2017 |url=https://www.youtube.com/watch?v=sIG2P9k6EjA |access-date=2023-06-30 |language=en}}

Alpine's package management system, the Alpine Package Keeper (apk),{{efn|Not to be confused with the apk file format used by Android}} was originally a collection of shell scripts{{Cite web|url=https://sourceforge.net/projects/apk-tools/|title=apk-tools|website=SourceForge|date=18 April 2013 }} but was later rewritten in C.{{Cite web|url=https://git.alpinelinux.org/apk-tools/|title=apk-tools - Alpine package manager|website=git.alpinelinux.org}} The aim of this package manager is to achieve a high install and update speed, which it does by writing new data directly in-place into the operating system's file system, rather than employing caching or compression.

In 2014, Alpine Linux switched from uClibc to musl as its C standard library.{{cite web |title=Release notes |url=https://alpinelinux.org/posts/Alpine-3.0.0-released.html |access-date=6 May 2018 |website=alpinelinux.org}}

A PaX hardened kernel was included in the default distribution to aid in reducing the impact of exploits and vulnerabilities,{{Cite web |title=Alpine 3.8.0 released {{!}} Alpine Linux |url=https://alpinelinux.org/posts/Alpine-3.8.0-released.html |access-date=2022-04-27 |website=alpinelinux.org}} but Alpine's maintainers chose to discontinue this support due to the PaX patch no longer being made publicly available.{{Cite web |title=How does Alpine Linux harden its kernel? — alpinelinux lists |url=https://lists.alpinelinux.org/~alpine/users/%3CCABbU2U-w34QfSGg4wZKxvCoYgtqLRj9Z0SKHipDPNaSdHdBeAQ@mail.gmail.com%3E |access-date=2023-06-30 |website=lists.alpinelinux.org}} Alpine still uses a hardened toolchain and position-independent executables to minimize the potential for stack-based attacks, but is now based on the standard long term stable distribution of the Linux kernel.

Features

Alpine's primary feature is its small size, which enables it to start quickly and run in environments very low in memory and storage, such as containers or embedded devices.

Alpine Linux can optionally be installed as a run-from-RAM operating system. This allows Alpine to work reliably in demanding embedded environments or to (temporarily) survive partial disk failures as sometimes experienced in public cloud environments. By default, Alpine running in this mode will only load a few key packages, but a tool called LBU (Alpine Local Backup){{Cite web |title=Alpine local backup - Alpine Linux |url=https://wiki.alpinelinux.org/wiki/Alpine_local_backup |website=wiki.alpinelinux.org}} is made available that allow changes in this boot configuration to be written to a special file called an APK overlay file (usually shortened to apkovl), a tar.gz file that by default stores a copy of all files in /etc that have been changed from the default configuration, with the option to track more directories as needed.

Alpine offers a number of preinstalled configuration scripts which guide the user through initial configuration of the system for common computing tasks.{{Citation |title=alpine-conf |date=2023-06-17 |url=https://github.com/alpinelinux/alpine-conf |access-date=2023-06-30 |publisher=Alpine Linux}} In addition, Alpine also offers a webserver-based tool known as the Alpine Configuration Framework, which allows users less familiar with Alpine or the command line to configure the operating system in a way similar to that allowed by Debian's debconf utility. Alpine's configuration scripts are written entirely as UNIX shell scripts, which call a small ISO image parsing utility written in C and distributed in Alpine. The Alpine Configuration Framework is scripted in Lua.{{Cite web|url=https://wiki.alpinelinux.org/wiki/Alpine_Configuration_Framework_Design|title=Alpine Configuration Framework Design - Alpine Linux|website=wiki.alpinelinux.org}}

Derivatives

postmarketOS, a Linux distribution for mobile devices, is based on Alpine Linux.{{Cite web |date=28 April 2022 |title=postmarketOS // real Linux distribution for phones |url=https://postmarketos.org |website=postmarketos.org}}

References and notes

{{Reflist|30em|refs=}}

{{Notelist}}