Alpine Linux is a Linux distribution designed to be small, simple and secure. Alpine Linux uses musl, BusyBox and OpenRC instead of the more commonly used glibc, GNU Core Utilities and systemd respectively.
For security, Alpine compiles all user-space binaries as position-independent executables with stack-smashing protection.
Because of its small size and rapid startup, it is commonly used in containers providing quick boot-up times, on virtual machines as well as on real hardware in embedded devices, such as routers, servers and NAS.
Originally, Alpine Linux began as an embedded-first distribution for devices such as wireless routers, based on Gentoo Linux, inspired by and the Bering-uClibc branch of the LEAF Project. Founder Natanel Copa has said that the name was chosen as a backronym for "A Linux-Powered Network Engine" or some similar phrase, but that the exact phrase has since been forgotten.
Alpine's package management system, the Alpine Package Keeper, was originally a collection of shell scripts but was later rewritten in C. 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 , rather than employing caching or compression.
In 2014, Alpine Linux switched from uClibc to musl as its C standard library.
A PaX hardened kernel was included in the default distribution to aid in reducing the impact of exploits and vulnerabilities, but Alpine's maintainers chose to discontinue this support due to the PaX patch no longer being made publicly available. 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.
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.