Alpine Linux: Difference between revisions

Content deleted Content added
m clean up
Added detail on main features.
Line 37:
 
==History==
Originally, Alpine Linux began as an embedded-first distribution for devices such as [[Wireless router|wireless routers]], based on [[Gentoo Linux]],<ref>{{cite web|url=https://sourceforge.net/p/leaf/mailman/message/12731262/|title=Re: [leaf-devel] 2.6.x kernel support?|website=SourceForge}}</ref> inspired by {{Tooltip|GNAP|Gentoo Network Appliance Project}} and the Bering-uClibc branch of the [[LEAF Project]].<ref name="sf-history">{{cite web|url=https://sourceforge.net/p/leaf/mailman/message/12731159/|title=Re: [leaf-devel] 2.6.x kernel support?|website=SourceForge}}</ref> 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.<ref name=":0">{{Citation |title=Small, Simple, and Secure: Alpine Linux under the Microscope |url=https://www.youtube.com/watch?v=sIG2P9k6EjA |access-date=2023-06-30 |language=en}}</ref>
 
Alpine's [[package management]] system, apk-toolsthe Alpine Package Keeper,<ref>{{Cite web |title=Alpine Package Keeper - Alpine Linux |url=https://wiki.alpinelinux.org/wiki/Alpine_Package_Keeper |website=wiki.alpinelinux.org}}</ref> was originally a collection of shell scripts<ref>{{Cite web|url=https://sourceforge.net/projects/apk-tools/|title=apk-tools|website=SourceForge|date=18 April 2013 }}</ref> but was later rewritten in [[C (programming language)|C]].<ref>{{Cite web|url=https://git.alpinelinux.org/apk-tools/|title=apk-tools - Alpine package manager|website=git.alpinelinux.org}}</ref> 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 [[Cache (computing)|caching]] or [[Data compression|compression]].<ref>{{Citation |title=Small, Simple, and Secure: Alpine Linux under the Microscope |url=https://www.youtube.com/watch?v=sIG2P9k6EjA |access-date=2023-06-30 |language=en}}</ref>
 
As of 4 JuneIn 2014, Alpine Linux switched from [[uClibc]] to [[musl]] as its [[C standard library]].<ref>{{cite web |title=Release notes |url=https://alpinelinux.org/posts/Alpine-3.0.0-released.html |access-date=6 May 2018 |website=alpinelinux.org}}</ref>
 
A PaX [[Hardening (computing)|hardened]] kernel was included in the default distribution for up to and including Alpine 3.7, which aidedaid in reducing the impact of exploits and vulnerabilities.,<ref>{{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}}</ref> but ended this distribution due to the PaX patch no longer being made publicly available.<ref>{{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}}</ref> Alpine still uses a hardened toolchain and position-independent executables to minimize the potential for [[Buffer overflow|stack-based attacks]]<ref name=":0" />, 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 [[OS-level virtualization|containers]] or [[Embedded system|embedded devices]].
Alpine Linux can be installed as a [[RAM drive|run-from-RAM]] operating system. The ''LBU'' (Alpine Local Backup)<ref>{{Cite web|url=https://wiki.alpinelinux.org/wiki/Alpine_local_backup|title=Alpine local backup - Alpine Linux|website=wiki.alpinelinux.org}}</ref> 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.
 
Alpine Linux can optionally be installed as a [[RAM drive|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)<ref>{{Cite web |title=Alpine local backup - Alpine Linux |url=https://wiki.alpinelinux.org/wiki/Alpine_local_backup |website=wiki.alpinelinux.org}}</ref> 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 Configuration Framework (ACF): While optional, ACF is an application for configuring an Alpine Linux machine, with goals similar to [[Debian|Debian's]] [[Debconf (software package)|debconf]]. It is a standard framework based on simple Lua scripts.<ref>{{Cite web|url=https://wiki.alpinelinux.org/wiki/Alpine_Configuration_Framework_Design|title=Alpine Configuration Framework Design - Alpine Linux|website=wiki.alpinelinux.org}}</ref>
 
Alpine offers a number of preinstalled configuration scripts which guide the user through initial configuration of the system for common computing tasks.<ref>{{Citation |title=alpine-conf |date=2023-06-17 |url=https://github.com/alpinelinux/alpine-conf |access-date=2023-06-30 |publisher=Alpine Linux}}</ref> In addition, Alpine also offers a [[Web server|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|Debian's]] [[Debconf (software package)|debconf]] utility. Alpine's configuration scripts are written entirely as UNIX [[Shell script|shell scripts]], which call a small [[Optical disc image|ISO image]] parsing utility written in C and distributed in Alpine. The Alpine Configuration Framework is scripted in [[Lua (programming language)|Lua]].<ref>{{Cite web|url=https://wiki.alpinelinux.org/wiki/Alpine_Configuration_Framework_Design|title=Alpine Configuration Framework Design - Alpine Linux|website=wiki.alpinelinux.org}}</ref>
 
== Derivatives ==