Alpine Linux es una distribución de Linux diseñada para ser pequeña, simple y segura. [3] Utiliza musl , BusyBox y OpenRC en lugar de los más comúnmente utilizados glibc , GNU Core Utilities y systemd . [4] [5] [6] [7] [8] Esto convierte a Alpine en una de las pocas distribuciones de Linux que no se basa en GNU Core Utilities. [9]
Por seguridad, Alpine compila todos los binarios del espacio de usuario como ejecutables independientes de la posición con protección contra la destrucción de pilas . [10]
Debido a su pequeño tamaño y rápido inicio, se usa comúnmente en contenedores que brindan tiempos de inicio rápidos, [11] [12] en máquinas virtuales , así como en hardware real en dispositivos integrados , como enrutadores , servidores y NAS . [ cita necesaria ]
Originalmente, Alpine Linux comenzó como una distribución integrada para dispositivos como enrutadores inalámbricos , basada en Gentoo Linux , [13] inspirada en GNAP y la rama Bering-uClibc del Proyecto LEAF . [1] El fundador Natanael Copa ha dicho que el nombre fue elegido como un acrónimo de "Un motor de red impulsado por Linux" o alguna frase similar, pero que desde entonces la frase exacta ha sido olvidada. [14]
El sistema de gestión de paquetes de Alpine , Alpine Package Keeper, [15] era originalmente una colección de scripts de shell [16] pero luego fue reescrito en C. [17] El objetivo de este administrador de paquetes es lograr una alta velocidad de instalación y actualización, lo que logra escribiendo nuevos datos directamente en el sistema de archivos del sistema operativo , en lugar de emplear almacenamiento en caché o compresión . [14]
En 2014, Alpine Linux cambió de uClibc a musl como biblioteca estándar C. [18]
Se incluyó un kernel reforzado PaX en la distribución predeterminada para ayudar a reducir el impacto de los exploits y las vulnerabilidades, [19] pero los mantenedores de Alpine optaron por suspender este soporte debido a que el parche PaX ya no está disponible públicamente. [20] Alpine todavía utiliza una cadena de herramientas reforzada y ejecutables independientes de la posición para minimizar el potencial de ataques basados en pilas , [14] pero ahora se basa en la distribución estándar estable a largo plazo del kernel de Linux.
La característica principal de Alpine es su pequeño tamaño, lo que le permite iniciarse rápidamente y ejecutarse en entornos con muy poca memoria y almacenamiento, como contenedores o dispositivos integrados .
Alpine Linux se puede instalar opcionalmente como un sistema operativo ejecutado desde RAM . Esto permite a Alpine trabajar de manera confiable en entornos integrados exigentes o sobrevivir (temporalmente) fallas parciales del disco como a veces se experimentan en entornos de nube pública. De forma predeterminada, Alpine que se ejecuta en este modo solo cargará algunos paquetes clave, pero hay disponible una herramienta llamada LBU (Alpine Local Backup) [21] que permite que los cambios en esta configuración de arranque se escriban en un archivo especial llamado superposición APK. (normalmente abreviado como apkovl ), un archivo tar.gz que de forma predeterminada almacena una copia de todos los archivos en /etc que se han modificado con respecto a la configuración predeterminada, con la opción de rastrear más directorios según sea necesario.
Alpine ofrece una serie de scripts de configuración preinstalados que guían al usuario a través de la configuración inicial del sistema para tareas informáticas comunes. [22] Además, Alpine también ofrece una herramienta basada en servidor web conocida como Alpine Configuration Framework, que permite a los usuarios menos familiarizados con Alpine o la línea de comandos configurar el sistema operativo de una manera similar a la permitida por la utilidad debconf de Debian . Los scripts de configuración de Alpine están escritos enteramente como scripts de shell UNIX , que llaman a una pequeña utilidad de análisis de imágenes ISO escrita en C y distribuida en Alpine. Alpine Configuration Framework está escrito en Lua . [23]
postmarketOS , una distribución de Linux para dispositivos móviles , está basada en Alpine Linux. [24]
Debido a su robustez y compacidad, Alpine Linux se integró estrechamente con entornos y conjuntos de herramientas populares para desarrolladores y administradores de sistemas.