# Arch Linux

Arch Linux (o Arch, /ɑː(ɹ)tʃ/) è una distribuzione Linux con architettura x86-64, creata da Judd Vinet secondo la filosofia KISS (Keep It Simple, Stupid). Inizialmente ispirata a CRUX Linux, è conosciuta per essere leggera, veloce, estremamente scalabile e adattabile alle proprie esigenze.

## Storia

Judd Vinet, un programmatore canadese, nei primi mesi del 2001 decise di creare una nuova distribuzione, chiamata Arch Linux, ispirandosi a Slackware, Polish Linux Distribution e soprattutto CRUX Linux. A questo progetto aggiunse un sistema di gestione dei pacchetti, che mancava alle distro precedentemente nominate, di modo che si potesse aggiungere, togliere ed eliminare i programmi sul PC con facilità. Tale programma venne chiamato Pacman, tuttora utilizzato nella distribuzione.
Verso la fine del 2007, Judd Vinet si dimise da leader del team di sviluppo di Arch Linux e passò il testimone al programmatore statunitense Aaron Griffin, soprannominato Phrakture.
A novembre del 2017 è cessato il supporto ufficiale di Arch Linux per i sistemi a 32-bit (i686). Agli utenti che non possono passare ad un sistema x64 è stata proposta la migrazione ad Arch Linux 32, distribuzione mantenuta dalla comunità. Le istruzioni per il passaggio sono disponibili sul sito ufficiale della nuova distro.
A febbraio 2020 le redini di leader del team di sviluppo passano a Levente Polyak soprannominato Anthraxx.
Nel 2021 tramite il comando archinstall è stato introdotto un installer intuitivo per aiutare l'installazione.

## Caratteristiche
### Tratti distintivi

Per la sua filosofia minimalista, l'installazione base non incorpora nessuno strumento di configurazione automatica, nessun ambiente desktop e nessun altro programma o tool che non sia strettamente necessario all'avvio del sistema; per questo non è indicata per i nuovi utenti di Linux o coloro che non vogliono avere a che fare con la shell di comando.
Alcuni tratti salienti della distribuzione sono:
* la leggerezza: per questo motivo sono state eliminate alcune porzioni di sistema come /usr/doc e le pagine info, considerate inutili, dato che le stesse informazioni possono essere ottenute sulla Rete.
* la semplicità: il sistema di init usato da Arch è fortemente ispirato a quello di BSD, e tutte le configurazioni sono demandate a piccoli file testuali
* la modernità: Arch Linux è una distribuzione rolling release. Tutti i pacchetti disponibili per l'installazione sono sempre aggiornati all'ultima versione distribuita dagli autori (previa fase di testing). Questo la rende inadatta all'utilizzo in ambito server di produzione
* la velocità: ArchLinux è ottimizzato per architettura x86-64. Altre architetture (come i586 e i686) sono mantenute (non ufficialmente) dalla comunità.

### Sistema di gestione dei pacchetti

Arch Linux offre un sistema di gestione dei pacchetti molto semplice ed estremamente comodo. I pacchetti binari sono gestiti grazie a Pacman che si occupa sia della sincronizzazione tra il repository locale e quelli ufficiali sia dell'installazione, rimozione e dell'aggiornamento. Pacman è il corrispettivo di dpkg e apt-get per Debian e derivate, come Ubuntu, oppure dnf per Red Hat Linux, Fedora o CentOS, ed offre la possibilità di aggiornare tutto il sistema con un solo comando.
Arch Linux è dotata di un sistema di port in pieno stile BSD, chiamato ABS (Arch Linux Build System). Creare un pacchetto con ABS è piuttosto semplice: è sufficiente creare un file (il PKGBUILD) contenente le istruzioni necessarie per scaricare i sorgenti e compilarli con un solo comando, makepkg.
Questo permette a chiunque di pacchettizzare software non ancora disponibile ufficialmente, demandando al gestore dei pacchetti (in inglese "package manager") il compito della gestione di installazione e rimozione.
I file PKGBUILD hanno una struttura pulita e lineare, in linea con la filosofia della distribuzione, permettendo ad un qualsiasi utente di compilare sul proprio sistema tutto il software che desidera: difatti, le uniche conoscenze richieste sono i rudimenti dello shell scripting. Per l'installazione sono tuttavia necessari i privilegi di scrittura nell'intero sistema (di norma si usa sudo o l'utente root)
I pacchetti sono distribuiti in diversi repository:
* core: contiene i pacchetti essenziali del sistema operativo;
* extra: contiene del software aggiuntivo che non rientra in core;
* multilib: contiene i pacchetti necessari per utilizzare applicazioni a 32 bit su un sistema a 64 bit.
Sono inoltre disponibili i repository di testing, che includono i pacchetti candidati per l'inclusione negli altri repository stabili:
* core-testing: contiene i pacchetti canditati per l'inclusione in core;
* extra-testing: contiene i pacchetti canditati per l'inclusione in extra;
* multilib-testing: contiene i pacchetti canditati per l'inclusione in multilib.
Esistono pure altri repository ufficiali (gnome-unstable e kde-unstable) ma anche non ufficiali, facilmente utilizzabili previa configurazione di Pacman (sempre tramite file di testo).

### Arch Build System (ABS)

ABS è il sistema di Arch Linux per la compilazione e pacchettizzazione del software a partire dal codice sorgente. Tramite ABS, l'utente è in grado di:
* creare pacchetti personalizzati a partire dal codice sorgente;
* ricompilare i pacchetti di Arch con le proprie personalizzazioni.
Il tutto si limita a digitare il comando abs, che si occuperà di ricreare (all'interno della cartella /var/abs) una immagine locale dell'albero ABS del server principale, contenente i .PKGBUILD. La sincronizzazione avviene tramite il download diretto dei file in formato tarball oppure tramite rsync.

### Arch User Repository (AUR)

AUR è una peculiarità che distingue Arch Linux dalle altre distribuzioni. Si tratta di repository di pacchetti a cui tutti possono contribuire, anche chi non si occupa di sviluppo.
Se un determinato pacchetto non è presente nei repository ufficiali, chiunque ne avesse bisogno può scrivere il PKGBUILD di tale pacchetto e renderlo disponibile a tutti, caricandolo su AUR.
L'installazione tramite AUR avviene, infatti, scaricando il PKGBUILD piuttosto che il pacchetto, per poi compilarlo e installarlo secondo le linee guida di ABS. Per questioni di sicurezza, ovviamente, non è possibile includere direttamente pacchetti binari, che tutt'al più possono essere scaricati prima dell'installazione.
Esistono diversi sistemi automatici di creazione dei pacchetti a partire dall'AUR, chiamati AUR Helpers, tra i quali si possono citare Paru e Yay. Questi, in particolare, si occupano di scaricare gli archivi contenenti i PKGBUILD e gli altri file necessari, per poi compilare i sorgenti, ottenere un pacchetto regolare e installarlo nel sistema. Inoltre, gestiscono un database locale dei pacchetti installati dall'AUR in modo da poter verificare la presenza di eventuali aggiornamenti e gestirli quasi con la stessa semplicità di Pacman.
Quando un Trusted User adotta un pacchetto presente in AUR, il pacchetto diventa disponibile nel repository ufficiale community. La gestione e la sorveglianza di AUR, poi, sono uno dei compiti dei Trusted User.
AUR contiene attualmente tutti i pacchetti compilabili creati dagli utenti. Ad aprile 2023, sono presenti in AUR più di 84 000 pacchetti.

## Distribuzioni derivate

Da Arch Linux sono nate diverse distribuzioni. Le più note sono riportate di seguito in ordine alfabetico:
* Antergos (inizialmente nota come Cinnarch), utilizzava di default il desktop environment GNOME 3. Il suo sviluppo attivo è cessato nel 2019;
* Apricity OS – utilizza i repository di Arch, il package manager Pamac, PushBullet, BTSync, ICE SSB manager, ed un DE Gnome modificato;
* Arch Linux 32, fork nato a seguito della decisione dei curatori della distribuzione originale, di cessare il supporto ai sistemi a 32-bit;
* Arch Linux ARM, variante di Arch Linux per architetture ARM (v5, v6, v7, v8) diffuse sulle board di sviluppo;
* ArchBang, distribuzione con Openbox di default;
* Arch Hurd, distribuzione basata su GNU Hurd;
* ArkOS, distribuzione pensata principalmente per l'hosting di siti web e servizi (email, cloud, ecc...) tramite Raspberry Pi, con l'obiettivo di ridurre la dipendenza dai servizi cloud e rendere più difficile la raccolta dei dati;
* BlackArch, distribuzione orientata al Penetration Testing.
* Bridge Linux, distribuzione con installer grafico di Arch Linux. Presenta anche uno script post-installazione per aiutare gli utenti con le operazioni di prima configurazione. Disponibile con Xfce, GNOME, KDE e LXDE;
* Condres OS Gnu/Linux – Fork ufficiale di Apricity OS - utilizza i repository di Arch, il package manager Pamac, PushBullet, BTSync, ICE SSB manager, ed un DE Gnome modificato;
* Chakra, distribuzione con KDE come desktop environment;
* ConnochaetOS, distribuzione basata su Arch rivisitata per la piattaforma i586;
* EndeavourOS, distribuzione minimalista creata da membri della community di Antergos successivamente alla sua dismissione. Utilizza di default KDE Plasma, ma sono disponibili numerosi ambienti desktop e window managers grazie all'online installer;
* Frugalware Linux, distribuzione con influenze di Slackware e con una versione rivisitata del gestore di pacchetti Pacman-G2
* Garuda Linux, distribuzione rolling release;
* LinHES, distribuzione specializzata per la configurazione semplice del software PVR della MythTV;
* Mabox Linux, distribuzione con Openbox come desktop environment;
* Manjaro Linux, distribuzione user friendly che utilizza di default XFCE con diverse personalizzazioni e patch. Usa dei repository propri, mantenendo la compatibilità con gli Arch User Repository (AUR);
* PacBSD, basata su kernel FreeBSD;
* Parabola GNU/Linux-libre, distribuzione contenente una versione totalmente libera del kernel Linux, chiamata Linux-libre, e supportata dalla Free Software Foundation.
* SDesk, distribuzione che punta alla semplicità e applicazioni esclusive come Swirl Web Browser

## Logo

L'attuale logo di Arch Linux è stato disegnato da Thayer Williams nel 2007 durante il concorso per rimpiazzare il logo precedente.