Developer | Alpine Linux development team |
---|---|
OS family | Linux (Unix-like) |
Working state | Active |
Source model | Open source |
Initial release | August 2005 [1] |
Latest release | 3.21.0 [2] / 5 December 2024 |
Repository | |
Marketing target | General-purpose. Security, embedded systems and other resource-constrained systems, such as containers. [3] |
Available in | Multilingual |
Package manager | apk-tools |
Platforms | |
Kernel type | Monolithic (Linux) |
Userland | BusyBox |
Default user interface | Ash |
Official website | alpinelinux |
Alpine Linux is a Linux distribution designed to be small, simple, and secure. [3] It uses musl, BusyBox, and OpenRC instead of the more commonly used glibc, GNU Core Utilities, and systemd. [4] [5] [6] [7] [8] This makes Alpine one of few Linux distributions not to be based on the GNU Core Utilities or glibc. [9]
For security, Alpine compiles all user-space binaries as position-independent executables with stack-smashing protection. [10]
Because of its small size and rapid startup, it is commonly used in containers providing quick boot-up times, [11] [12] on virtual machines as well as on real hardware in embedded devices, such as routers, servers and NAS.[ citation needed ]
Originally, Alpine Linux began as an embedded-first distribution for devices such as wireless routers, based on Gentoo Linux, [13] inspired by GNAP and the Bering-uClibc branch of the LEAF Project. [1] 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. [14]
Alpine's package management system, the Alpine Package Keeper, [15] was originally a collection of shell scripts [16] but was later rewritten in C. [17] 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. [14]
In 2014, Alpine Linux switched from uClibc to musl as its C standard library. [18]
A PaX hardened kernel was included in the default distribution to aid in reducing the impact of exploits and vulnerabilities, [19] but Alpine's maintainers chose to discontinue this support due to the PaX patch no longer being made publicly available. [20] Alpine still uses a hardened toolchain and position-independent executables to minimize the potential for stack-based attacks, [14] 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. 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) [21] 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. [22] 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. [23]
postmarketOS, a Linux distribution for mobile devices, is based on Alpine Linux. [24]
Due to its robustness and compactness, Alpine Linux is tightly integrated with popular developer and system administrator environments and toolsets.
A Linux distribution is an operating system that includes the Linux kernel for its kernel functionality. Although the name does not imply product distribution per se, a distro, if distributed on its own, is often obtained via a website intended specifically for the purpose. Distros have been designed for a wide variety of systems ranging from personal computers to servers and from embedded devices to supercomputers.
Red Hat Linux was a widely used commercial open-source Linux distribution created by Red Hat until its discontinuation in 2004.
Linux From Scratch (LFS) is a type of a Linux installation and the name of a book written by Gerard Beekmans, and as of May 2021, mainly maintained by Bruce Dubbs. The book gives readers instructions on how to build a Linux system from source. The book is available freely from the Linux From Scratch site.
The C standard library, sometimes referred to as libc, is the standard library for the C programming language, as specified in the ISO C standard. Starting from the original ANSI C standard, it was developed at the same time as the C library POSIX specification, which is a superset of it. Since ANSI C was adopted by the International Organization for Standardization, the C standard library is also called the ISO C library.
The GNU/Linux naming controversy is a controversy regarding whether computer operating systems that use GNU software and the Linux kernel should be referred to as "GNU/Linux" or "Linux" systems.
Arch Linux is an independently developed Linux distribution designed with a rolling-release model. The default Arch Linux installation is intentionally minimal, and is configured by the user during installation so they may add only what they require. Arch is the basis for a multitude of other distributions, such as Manjaro, EndeavourOS, and Parabola.
This is a list of operating systems specifically focused on security. Similar concepts include security-evaluated operating systems that have achieved certification from an auditing organization, and trusted operating systems that provide sufficient support for multilevel security and evidence of correctness to meet a particular set of requirements.
In computing, uClibc is a small C standard library intended for Linux kernel-based operating systems for embedded systems and mobile devices. uClibc was written to support μClinux, a version of Linux not requiring a memory management unit and thus suited for microcontrollers.
Newlib is a C standard library implementation intended for use on embedded systems. It is a conglomeration of several library parts, all under free software licenses that make them easily usable on embedded products.
rm
is a basic command on Unix and Unix-like operating systems used to remove objects such as computer files, directories and symbolic links from file systems and also special files such as device nodes, pipes and sockets, similar to the del
command in MS-DOS, OS/2, and Microsoft Windows. The command is also available in the EFI shell.
NetworkManager is a daemon that sits on top of libudev and other Linux kernel interfaces and provides a high-level interface for the configuration of the network interfaces.
Package format is a type of archive containing computer programs and additional metadata needed by package managers; an instance of this type of archive is called a package. While the archive file format itself may be unchanged, package formats carry additional metadata, such as a manifest file or certain directory layouts. Packages may contain either source code or executable files.
Linux is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution (distro), which includes the kernel and supporting system software and libraries—most of which are provided by third parties—to create a complete operating system, designed as a clone of Unix and released under the copyleft GPL license.
In computing, klibc is a minimalistic subset of the standard C library developed by H. Peter Anvin. It was developed mainly to be used during the Linux startup process, and it is part of the early user space, i.e. components used during kernel startup, but which do not run in kernel mode. These components do not have access to the standard library used by normal userspace programs.
systemd is a software suite that provides an array of system components for Linux operating systems. The main aim is to unify service configuration and behavior across Linux distributions. Its primary component is a "system and service manager" — an init system used to bootstrap user space and manage user processes. It also provides replacements for various daemons and utilities, including device management, login management, network connection management, and event logging. The name systemd adheres to the Unix convention of naming daemons by appending the letter d. It also plays on the term "System D", which refers to a person's ability to adapt quickly and improvise to solve problems.
OpenWrt is an open-source project for embedded operating systems based on Linux, primarily used on embedded devices to route network traffic. The main components are Linux, util-linux, musl, and BusyBox. All components have been optimized to be small enough to fit into the limited storage and memory available in home routers.
Dracut is a set of tools that provide enhanced functionality for automating the Linux boot process. The tool named dracut is used to create a Linux boot image (initramfs) by copying tools and files from an installed system and combining it with the Dracut framework, which is usually found in /usr/lib/dracut/modules.d.
musl is a C standard library intended for operating systems based on the Linux kernel, released under the MIT License. It was developed by Rich Felker to write a clean, efficient, and standards-conformant libc implementation.
Buildroot is a set of Makefiles and patches that simplifies and automates the process of building a complete and bootable Linux environment for an embedded system, while using cross-compilation to allow building for multiple target platforms on a single Linux-based development system. Buildroot can automatically build the required cross-compilation toolchain, create a root file system, compile a Linux kernel image, and generate a boot loader for the targeted embedded system, or it can perform any independent combination of these steps. For example, an already installed cross-compilation toolchain can be used independently, while Buildroot only creates the root file system.
postmarketOS is an operating system primarily for smartphones, based on the Alpine Linux distribution.