Alpine Linux
# Alpine Linux

Alpine Linux è una distribuzione Linux che basa le sue fondamenta su musl come libreria C, BusyBox per i comandi base e OpenRC come sistema di init. Essa è stata progettata principalmente per utenti che apprezzano la sicurezza e l'efficienza delle risorse. Utilizza un kernel con ulteriori patch di sicurezza e compila tutti i binari dello spazio utente come file eseguibili indipendenti dalla posizione con protezione dello stack-smashing.

Per via delle sue dimensioni ridotte, è fortemente impiegato in sistemi che forniscono rapidi tempi di avvio.

Un fork della distribuzione, postmarketOS, è progettato per essere eseguito su dispositivi mobili.

## Descrizione e funzionamento

Originariamente, Alpine Linux venne avviata come una fork del progetto LEAF. I membri di LEAF hanno voluto continuare a fare una distribuzione Linux che potesse essere inserita su un singolo disco floppy, mentre il Linux Alpine avrebbe voluto includere alcuni pacchetti più pesanti come Squid e Samba, oltre a ulteriori funzionalità di sicurezza e un nuovo kernel. Uno degli obiettivi originali era quello di creare un quadro per i sistemi più grandi; Sebbene utilizzabile per questo scopo, questo non è più un obiettivo primario.

Alpine utilizza un proprio sistema di gestione dei pacchetti, apk-tools che originariamente era una raccolta di script di shell, ma è stato più volte riscritto in C. Alpine contiene attualmente i pacchetti più comuni come GNOME, Xfce, Firefox e altri.

Alpine Linux può essere installato come distribuzione run-of-RAM. Lo strumento LBU (Alpine Local Backup) facoltativamente consente di eseguire il backup di tutti i file di configurazione su un file di sovrapposizione APK (di solito abbreviato a apkovl), un file tar.gz che memorizza per impostazione predefinita una copia di tutti i file modificati in / etc (Con l'opzione di aggiungere altre directory).

Un kernel hardenizzato è incluso nel kernel Alpine Linux predefinito, che aiuta a ridurre l'impatto di exploit simile al exploit locale root vmsplice. Tutti i pacchetti sono anche compilati con protezione dello stack-smashing per contribuire a mitigare gli effetti di buffer overflow lato utente. Dimensione: il sistema di base in Linux Alpine è progettato per essere di soli 4-5 MB in dimensioni (escluso il kernel). Ciò consente di includere Linux molto piccoli, di circa 8 MB in dimensioni, mentre un'installazione minima su disco potrebbe essere Circa 130 MB. Il kernel Linux è molto più grande; Il kernel 3.18.16 include 121 MB di moduli di kernel caricabili (in primo luogo i driver) oltre ai 3,3 MB per l'immagine del kernel di base x86-64.

Alpine Configuration Framework (ACF): sebbene facoltativo, ACF è un'applicazione per la configurazione di una macchina Alpine Linux, con obiettivi simili a Debconf di Debian.

Per le C standard library, Alpine Linux precedentemente utilizzava uClibc invece della tradizionale libreria GNU C (glibc) più comunemente utilizzati. Anche se è più leggera, ha il significativo inconveniente di essere binario incompatibile con glibc. Quindi, tutto il software deve essere compilato per essere utilizzato con uClibc per funzionare correttamente. A partire dal 9 aprile 2014, Alpine Linux è passato a musl, che è parzialmente binario compatibile con glibc.

Sistema Init: l'OpenRC semplice e leggero è il sistema init attualmente utilizzato da Alpine Linux. A differenza di Debian, Ubuntu, RHEL, Arch Linux e distribuzioni CentOS di Linux, Alpine non utilizza systemd.

