Alpine Linux es una distribución 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 hace que Alpine sea una de las pocas distribuciones Linux que no se basa en GNU Core Utilities. [9]
Por razones de seguridad, Alpine compila todos los binarios del espacio de usuario como ejecutables independientes de la posición con protección contra ruptura de pila . [10]
Debido a su pequeño tamaño y rápido inicio, se utiliza comúnmente en contenedores que proporcionan tiempos de arranque rápidos, [11] [12] en máquinas virtuales así como en hardware real en dispositivos integrados , como enrutadores , servidores y NAS . [ cita requerida ]
Originalmente, Alpine Linux comenzó como una distribución integrada para dispositivos como enrutadores inalámbricos , basada en Gentoo Linux , [13] inspirada por 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 "A Linux-Powered Network Engine" o alguna frase similar, pero que la frase exacta ha sido olvidada desde entonces. [14]
El sistema de gestión de paquetes de Alpine , Alpine Package Keeper, [15] fue 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 hace 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 su biblioteca estándar de C. [ 18]
Se incluyó un núcleo PaX reforzado en la distribución predeterminada para ayudar a reducir el impacto de exploits y vulnerabilidades, [19] pero los mantenedores de Alpine decidieron discontinuar este soporte debido a que el parche PaX ya no está disponible públicamente. [20] Alpine todavía usa una cadena de herramientas reforzada y ejecutables independientes de la posición para minimizar el potencial de ataques basados en pila , [14] pero ahora se basa en la distribución estable a largo plazo estándar del núcleo 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 embebidos .
Alpine Linux se puede instalar opcionalmente como un sistema operativo que se ejecuta desde RAM . Esto permite que Alpine funcione de manera confiable en entornos integrados exigentes o que sobreviva (temporalmente) a fallas parciales de disco como las que a veces se experimentan en entornos de nube pública. De manera predeterminada, Alpine que se ejecuta en este modo solo cargará algunos paquetes clave, pero se encuentra 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 archivo de superposición APK (generalmente abreviado como apkovl ), un archivo tar.gz que, de manera predeterminada, almacena una copia de todos los archivos en /etc que se han cambiado de 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 completamente como scripts de shell de 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 , se basa en Alpine Linux. [24]
Gracias a su robustez y compacidad, Alpine Linux está estrechamente integrado con entornos y conjuntos de herramientas de desarrolladores y administradores de sistemas más populares.