Passare al contenuto

Un programma di installazione che sa quello che fa.

Arch Linux · Configurazione come dati · 0.9.4 Beta

Un programma di installazione che sa quello che fa.

Sotto, Arch senza modifiche. Sopra, una base di conoscenza della configurazione – ogni impostazione, ogni interazione tra le impostazioni, codificata in modo trasparente.

# installer pipeline — NVIDIA detection
$ detect          Quadro K3100M (PCI 11b6)
$ cross-reference github.com/NVIDIA/open-gpu-kernel-modules
$ cross-reference nvidia.com/…/legacy-gpu
$ decide          recommend proprietary legacy driver 470
$ verify          nvidia-470xx-dkms present in the repository
✓ four conflicting options resolved into one consistent default
Che cosa lo distingue

Tre principi, applicati ovunque.

01 – TRASPARENTE

Ogni scelta è un dato

Impostazioni, dipendenze e script del ciclo di vita risiedono in una base di conoscenza KDL – verificabile, riutilizzabile con un fork, scaricata al momento dell’installazione, così i miglioramenti vengono distribuiti senza ricreare l’ISO.

02 – RAFFORZATO

Sicurezza per impostazione predefinita

Mitigazione delle vulnerabilità mirata alla singola CPU, sysctl di hardening del sistema, user namespace (spazi dei nomi utente) limitati, hardened_malloc facoltativo. Attivo per impostazione predefinita, non da attivare esplicitamente – e ogni compromesso è spiegato là dove lo decidete.

03 – QUATTRO DESKTOP

XFCE · Wayfire · Niri · COSMIC

Sceglietene uno, oppure installateli tutti e quattro uno accanto all’altro e passate dall’uno all’altro dalla schermata di accesso. Wayfire e Niri sono forniti con waybar, nwg-launchers e nwgbar già configurati; XFCE e COSMIC portano i propri pannelli. Nessuno di essi è una versione ridotta all’osso.

Scegliere, combinare, cambiare

Quattro desktop alla pari, non uno predefinito e tre di contorno.

Wayfire e Niri sono comunemente considerati ambienti incompleti. Ditana distribuisce tutto ciò di cui hanno bisogno – una waybar curata, nwg-launcher, nwgbar e una disposizione coerente dei pannelli – e tratta tutti e quattro i desktop come ambienti a pieno titolo.

XFCE su Ditana con il tema Blue Flat, Firefox, Thunar
XFCE – Xorg, maturo, veloce
Wayfire su Ditana con il tema Blue Vibrant, Brave, Thunar
Wayfire – Wayland, ispirato a Compiz
Niri su Ditana con il tema Blue Vibrant, Brave, COSMIC Files
Niri – Wayland, tiling a scorrimento
COSMIC su Ditana con il tema Amber Rounded, LibreWolf, Thunar
COSMIC – Wayland, il desktop in Rust di System76
Rolling release, senza rischi

Ogni aggiornamento è reversibile.

Il modello rolling release di Arch è una funzionalità, non un bug – ma può rompere qualcosa un martedì mattina. Ditana rende tutto questo indolore creando automaticamente uno snapshot del sistema prima di ogni aggiornamento.

Snapshot atomici, creati da un hook di pacman.

Finestra di dialogo di manutenzione del sistema che mostra l’opzione degli snapshot automatici del sistema attivata per impostazione predefinita

Su ZFS e BTRFS gli snapshot sono atomici e non costano nulla – pochi millisecondi prima di ogni aggiornamento dei pacchetti. Su XFS ed EXT4 Timeshift svolge lo stesso compito tramite rsync e completa i tipici snapshot incrementali in pochi secondi.

Il primo snapshot viene creato dal programma di installazione stesso, subito prima del primo riavvio. Ciò significa che fin dal primo giorno potete tornare a un sistema appena installato – senza configurazione, senza il dilemma dell’uovo e della gallina al primo aggiornamento.

Snapshot del sistema, non dei dati: /home e gli altri volumi di dati non vengono mai toccati. Riportate il sistema a uno stato precedente; conservate il vostro lavoro.

Per ZFS, Ditana distribuisce un proprio fork di zfs-autosnap che – a differenza del progetto upstream – rimuove dallo snapshot il file di blocco di pacman, per cui dopo un ripristino avete subito un pacman funzionante.

Anche headless (senza interfaccia grafica). L’hardening del sistema unito agli snapshot automatici fa di Ditana una scelta valida per un server basato su Arch – cosa insolita per una rolling release. Il profilo Server del programma di installazione salta completamente l’installazione del desktop e punta sulle impostazioni di sicurezza predefinite.

Attento all’hardware

Verifica le fonti upstream al momento dell’installazione.

Finestra di dialogo per la scelta del driver NVIDIA con l’ID PCI rilevato e la motivazione della raccomandazione

Rilevamento NVIDIA, scelta tra quattro opzioni.

Al momento dell’installazione Ditana consulta gli elenchi aggiornati degli ID PCI in github.com/NVIDIA/open-gpu-kernel-modules e la pagina ufficiale delle GPU legacy. In base al risultato raccomanda una delle quattro opzioni di driver – nvidia-open-dkms, il driver proprietario legacy nvidia-580xx-dkms, il più vecchio nvidia-470xx-dkms o nouveau – e verifica che il pacchetto che sta per raccomandare sia presente nel repository, ripiegando su nouveau se non lo è.

Poi spiega che cosa ha scelto e perché.

Vulnerabilità della CPU, rilevate e mitigate.

Spectre v2, Meltdown, MDS, TAA, MMIO Stale Data, RETBleed, SRSO, GDS, RFDS – al momento dell’installazione Ditana legge /sys/devices/system/cpu/vulnerabilities/, attiva solo le mitigazioni di cui la vostra CPU ha effettivamente bisogno e vi permette di esaminarle una per una con la relativa documentazione.

Per ogni mitigazione il costo è indicato chiaramente, così potete decidere con cognizione di causa invece di scegliere alla cieca tra «impostazione predefinita sicura» e «impostazione predefinita veloce».

Finestra di dialogo delle mitigazioni delle vulnerabilità della CPU con le vulnerabilità rilevate e le mitigazioni selezionabili
Finestra di dialogo delle opzioni di hardening del sistema

Hardening del sistema, attivo per impostazione predefinita.

User namespace non privilegiati limitati ai programmi che ne hanno bisogno. ptrace limitato. Puntatori del kernel nascosti. Protezione rafforzata dei FIFO e dei file regolari nelle directory sticky. SYN cookie, nessun reindirizzamento ICMP, nessun instradamento dalla sorgente, filtraggio del percorso inverso. Ogni opzione è attivata per impostazione predefinita, ognuna è spiegata – e gli sviluppatori dispongono di un profilo che allenta le cose giuste per il debug.

Il programma di installazione in sé

Dieci categorie. Impostazioni predefinite sensate. Nessun mistero.

Dite al programma di installazione chi siete – se provenite da un’altra distribuzione, se migrate da KDE Plasma, Cinnamon, Xfce o MATE, se lavorate come sviluppatori, se il sistema funge da server o se non rientrate in nessuno di questi casi – e il programma preimposta di conseguenza le caselle di controllo. Potete esaminarle e modificarle una per una prima dell’inizio dell’installazione.

Finestra di dialogo con la panoramica delle categorie di configurazione

Una schermata, l’intero sistema.

Le categorie di configurazione vi permettono di entrare nel dettaglio di desktop, browser, gestori di file, suite per ufficio, strumenti di IA, terminali, kernel, file system, hardening, mitigazioni e allocatore di sistema – tutto da un unico menu, tutto reversibile, tutto spiegato.

Ogni modifica mostra il proprio impatto.

Attivate o disattivate un’opzione e vedetene la conseguenza: quali pacchetti vengono aggiunti, quali script verranno eseguiti, quali altre impostazioni cambiano di conseguenza. Il grafo delle impostazioni è fatto di dati – Ditana vi mostra il percorso al suo interno.

Panoramica dell’impatto delle impostazioni con le modifiche dipendenti
Configurazione come dati

Il programma di installazione è piccolo. La base di conoscenza è grande.

Un programma di installazione Linux dovrebbe fare più che partizionare, installare pacchetti e passare la mano. I PKGBUILD conoscono solo il proprio pacchetto – non possono sapere che cos’altro c’è nel sistema. Ditana conserva le decisioni trasversali in una base di conoscenza separata e verificabile.

Le impostazioni dichiarano le proprie dipendenze in semplice KDL.

Questo estratto dice: installare kitty solo se il terminale scelto funziona unicamente su Wayland e se anche XFCE è installato. Nessuno penserebbe di chiederlo, e nessuno ha bisogno di farlo: la regola si trova accanto all’elenco dei pacchetti, dove chi esegue la revisione può vedere sia la condizione sia il suo motivo, anziché essere nascosta nel codice del programma di installazione.

Esplorare ditana-config →

// XFCE fallback for Wayland-only primary terminals
// (foot, cosmic-term). Fires when the user picks a
// Wayland-native terminal AND also installs XFCE.
- name="fallback-kitty-for-xfce" \
  default-value="`(install-foot OR install-cosmic-term)
                  AND install-xfce`" {
    arch-packages "kitty" "imagemagick" ...
    chroot-script "echo kitty.desktop
                   >/etc/xdg/xfce-xdg-terminals.list"
}

Volete provarlo?

Ditana 0.9.4 Beta è un’ISO di 1.9 GB con una firma GPG separata. Scarica i propri pacchetti e la propria configurazione durante l’installazione, per cui una connessione di rete funzionante fa parte dei requisiti. L’installazione completa richiede 15–45 minuti, a seconda di ciò che scegliete.

Questa traduzione è stata realizzata automaticamente. I lettori la migliorano su Weblate.