[Flug] Alla ricerca dello spirito di Unix

Matteo Bini matteobin@tiepi.it
Mar 11 Nov 2025 21:25:54 CET


Che piacere leggerti Flavio!

Beninteso che neanche a me piace systemd, però non sono d'accordo che la
sua adozione nella maggior parte delle distribuzioni equivalga a perdere
l'eredità di Unix, soprattutto per i computer da scrivania o i
portatili.

Prima di tutto le chiamate di sistema sono ancora compatibili con quelle
di Unix. In questo periodo sto leggendo il celeberrimo The Unix
Programming Environment (o semplicemente Unix nella versione italiana)
di Kernighan e Pike e posso confermare che l'accesso alle informazioni
di una cartella non è variato granché dal 1984.

A parte questo, il nocciolo della filosofia di Unix consiste nel
riutilizzare più comandi insieme, che pressi singolarmente svolgono un
compito solo e piuttosto limitato, ma che permettono enorme flessibilità
quando lavorano insieme come filtri, grazie alle pipe. systemd non può
rimuovere questo aspetto. A dimostrazione di ciò segue un programmino
che ho scritto per semplificarmi un compito di classificazione, che
senza questi accorgimenti mi avrebbe richiesto parecchio più tempo per
essere espletato.

> #!/bin/sh
> 
> set -e
> 
> acquisizioni="$(programma 2>&1 | tac |\
> sed '/thumbnailWidgetManager::on_closeExam_signal: deleted child/,$d' |\
> grep thumb.jpg | tac |\
> sed 's/^Add data mode thumb path =  "//;s/\/thumb.jpg"$//')"
>
> read -p 'Acquisizione numero: ' num
>
> acqdir="$(echo "$acquisizioni" | sed -n "${num}p")"
> echo "$acqdir"
> printf '%s' "$acqdir" | xsel -i
>
> sudo chown matteo: *.bin
> rm -f abgr32-uconvex-bm-[1-9][0-9][0-9][0-9].bin
> rm -f abgr32-uconvex-bm-0[1-9][0-9][0-9].bin
> rm -f abgr32-uconvex-bm-00[4-9][0-9].bin
> rm -f abgr32-uconvex-bm-003[3-9].bin
> rm -f abgr32-uconvex-bm-frames/*
> for i in *.bin; do
> 	mv $i abgr32-uconvex-bm-frames/${i#abgr32-uconvex-bm-}
> done
>
> read -p 'Cartella CV: ' cvdir
>
> cvdir="${acqdir}/${cvdir}"
> sudo mkdir "${cvdir}"
> sudo chown matteo: "${cvdir}"
> cp "${acqdir}/thumb.jpg" "${cvdir}"
> mv -f abgr32-uconvex-bm-frames/* "${cvdir}"

Questo programmino gira su una volgarissima Ubuntu con systemd. In cosa
differisce dagli esempi che Kernighan e Pike presentano nel loro libro?
Addirittura dovrebbe funzionare con la settimana versione di Unix della
AT&T, che è il punto di riferimento del libro in questione, senza
bisogno di troppe aggiustatine.

Per quanto riguarda i server la questione è più sfumata. Sono d'accordo
che systemd non sia un programma che segue la filosofia di Unix, però le
sue interfaccie sono compatibili con essa. Si tratta di un programma
accentratore e gigantesco, ma che espone delle interfacce da linea di
comando che possono essere utilizzate come altri programmi con le pipe.

Sul server del FLUG c'è systemd, perché ci abbiamo installato Debian.
Tuttavia la gestione dei servizi e dei loro backup è sempre stata svolta
in linea con lo spirito di Unix, tranne quando abbiamo dovuto scrivere
il file di unità per il server Gemini. Le unità di systemd non c'entrano
niente con lo spirito di Unix. Ma nonostante la presenza di systemd, i
programmi scritti per il server del FLUG, quali aiuto e appuntamenti,
incarnano proprio la quintessenza della spirito di Unix.

In conclusione sono d'accordo sul fatto che non ti piaccia systemd
perché non segue la filosofia di Unix e sono d'accordo che sarebbe
meglio liberarsene, però non è vero che basta la sua presenza nel
sistema operativo per impedirci di mantenere vivo lo spirito minimalista
di Unix.

Grazie per lo stimolo.


P.S.
Sono il gestore del canale italiano ufficiale di Devuan. Vieni a
trovarci sull'IRC di Libera.Chat!

-- 
Matteo Bini


Maggiori informazioni sulla lista flug