Man mano che col passare del tempo sempre più distribuzioni si stanno arrendendo all’idea di migrare a systemd come gestore di avvio e dei processi – ultime nell’elenco sono Debian e Ubuntu – tra gli utenti scontenti di questa trasformazione, che di fatto rende Linux sempre meno somigliante a un’architettura Unix SystemV/BSD tradizionale, si fa strada l’idea che si può sintetizzare nella frase: “Basta! Abbandono Linux e passo a BSD!”
Questo perché systemd, per esplicita scelta del suo autore, non supporta sistemi diversi da Linux, e anzi guarda al mondo BSD con sufficienza considerandolo obsoleto e irrilevante. Di conseguenza non esiste il rischio che la febbre di systemd si estenda anche a questi sistemi, sebbene sia sempre teoricamente possibile che qualche sviluppatore BSD decida di avviare un progetto analogo per quegli ambienti.
L’idea ha accarezzato anche me, in quanto nonostante la mia Slackware sia tuttora saldamente ancorata al tradizionale sysvinit, diventa sempre più concreto il rischio che il passaggio diventi obbligatorio anche per lei in un prossimo futuro, visto che tra le grandi distribuzioni Linux non rimane più nessun altro che non sia passato, e non si può quindi sperare in baluardi di opposizione ai cambiamenti architetturali che systemd impone anche alle altre componenti di sistema che pure Slackware ha necessità di utilizzare.
Ho quindi iniziato ad analizzare alcuni dei sistemi BSD esistenti per capire se sia possibile per me migrare ad uno di essi senza dover subire troppi cambiamenti rispetto al mio abituale modo di usufruire dei miei desktop e del mio laptop.
Quello che rapidamente ho compreso è che, mentre per un utente di una generica distribuzione Linux moderna potrebbe essere relativamente indolore passare a uno dei sistemi operativi basati su FreeBSD, per un utente proveniente da Slackware ci sono diversi ulteriori aspetti da considerare. Questo perché Slackware ha compiuto negli anni diverse scelte “estreme“, e che si rivelano essere persino più estreme di quelle compiute da molti dei sistemi BSD, che sono ritenuti ambienti piuttosto ortodossi e tradizionalisti.
Andiamo a vedere alcune di queste scelte:
Slackware non usa PAM. Si tratta probabilmente dell’unica distribuzione Linux contemporanea che non utilizza PAM e che compila tutto i propri applicativi senza il supporto ai moduli di autenticazione ma solo ai tradizionali file di configurazione allocati in /etc. Unica eccezione è l’inserimento di un modulo pam “dummy” per consentire l’uso di Google Chrome, il quale è distribuito solo in formato binario e ricerca la presenza di questa libreria per avviarsi. L’avversione a PAM è uno dei portabandiera della comunità Slackware. Invece moltissimi dei sistemi BSD, tra cui FreeBSD, usano PAM già da molto tempo. Solo OpenBSD, tra i sistemi che ho visto, non usa PAM e sarebbe quindi accettabile da questo punto di vista.
Slackware non usa grub. Anche se recentemente è stato inserito come pacchetto opzionale, grub non è amato dalla comunità Slackware, che da sempre utilizza LILO come boot loader, e quindi non ha mai imparato la contorta e astrusa sintassi di configurazione di questo bootloader (specie per grub2). Invece molti sistemi di base BSD utilizzano grub come bootloader, ad esempio PC-BSD 10.
Slackware non usa PulseAudio. PulseAudio è il precedente “capolavoro” dello stesso autore di systemd, ed è diventato standard in tutte le maggiori distribuzioni Linux, interponendosi come strato di servizio audio tra le applicazioni e i driver hardware, nella gran parte dei casi senza alcuna utilità effettiva. In Slackware non esiste alcun audio server, ma gli applicativi vengono compilati per dialogare direttamente con i driver ALSA del kernel. Invece quasi tutti i sistemi BSD, sebbene non prevedano PulseAudio come componente di base, hanno compilato i vari software multimediali e ambienti grafici desktop con la dipendenza da PulseAudio.
E’ chiaro che tutte queste differenze potrebbero venir superate ricompilando opportunamente i vari componenti di sistema, ma bisogna tenere presente che la filosofia di base dei sistemi BSD è diversa rispetto a quella di una distribuzione Linux. Un BSD è distribuito in pacchetti preconfezionati che comprendono sia il kernel che l’ambiente e tutte le utility base, e l’ipotesi che l’utente finale si ricompili non solo il kernel ma anche, ad esempio, /bin/login affinchè non includa pam non è supportata in maniera ufficiale. Seguire questa strada comporta moltissimo lavoro autonomo di ricompilazione, senza aiuti da parte dei team BSD che invece spingono perché si usino i pacchetti precompilati da loro forniti, e da ripetersi ad ogni nuova uscita e per ogni singola componente che venga fornita in origine con il supporto a pam, pulseaudio, ecc.
Un ulteriore elemento da considerare è che in generale l’utente Linux è abituato a veder arrivare sul proprio sistema le nuove versioni dei pacchetti software pochissimo tempo dopo il loro rilascio, anzi nella maggior parte dei casi nello stesso istante in cui una versione software viene rilasciata ne vengono forniti i pacchetti binari per tutte le distribuzioni principali, e nonostante Slackware non sia quasi mai inclusa tra queste, noi suoi utenti abbiamo imparato già da tempo come compilarceli da soli o in quali repository dedicati andare a cercarli. Nel mondo BSD invece, un po’ per le questioni di licenza, un po’ per le patch alle volte considerevoli che devono essere create in autonomia dagli sviluppatori BSD per adattare i software, un po’ per il fatto che la struttura piramidale dello sviluppo costringe ad aspettare che un determinato software venga incluso tra i Ports ufficiali, ecc. si è costretti ad attendere diverso tempo. quantificabile anche in molti mesi, prima di poter aggiornare. In generale l’utenza BSD è più abituata ad usare la release del proprio sistema così come viene fornita, e ad attendere la successiva release che aggiornerà le componenti di base e le componenti applicative alle varie versioni decise dal team di sviluppo per quello specifico rilascio. L’utenza Slackware invece è più vicina al concetto di “rolling release“, e aggiorna per proprio conto diverse parti del sistema senza dover aspettare le uscite ufficiali della distribuzione. Questo vale soprattutto per l’ambiente KDE, che viene incluso ufficialmente in Slackware ad una certa versione, ma è prassi comune tenere aggiornato grazie a pacchetti software distribuiti separatamente.
Non ultimo aspetto da considerare è quello relativo al supporto da parte di software e driver proprietari. Se negli ultimi anni è diventato ormai abbastanza comune supportare Linux anche da parte di produttori di stampanti, scanner, telecamere, notebook, ecc. lo stesso non si può dire per i BSD, il che può significare dover essere molto oculati nella scelta degli acquisti hardware. Il portabandiera dei sistemi BSD nel mondo x86(_64) è senz’altro FreeBSD, ed è per questo sistema che si concentra la maggior parte dei rilasci software e dei supporti. OpenBSD, NetBSD e gli altri sono spesso costretti a importare le soluzioni FreeBSD o ad attendere tempi lunghi per sviluppare in autonomia delle alternative. Ma, come accennato in precedenza, FreeBSD non rappresenta la scelta ideale per un utente Slackware che non voglia ritrovarsi nella situazione in cui dopo essersi liberato dalla minaccia systemd debba invece aver a che fare con tutte le altre tecnologie che Slackware lo aveva aiutato ad evitare.
In conclusione, migrare da Linux a BSD non è così indolore come si potrebbe pensare, e va valutato seriamente se sia il caso di affrontare le problematiche che ho indicato, e sicuramente altre che ancora non ho scoperto, con lo spirito di adeguarsi alle differenze oppure di fare il possibile per riportare l’esperienza d’uso a quella a cui si è abituati in Linux. Oppure se sia tutto sommato più accettabile l’idea di adeguarsi a systemd e tutti i suoi cambiamenti, tenendo presente che in ogni caso se si ha a che fare per lavoro con ambienti Linux si dovrà comunque acquisire una certa dimestichezza con systemd pure se non lo si userà nel proprio sistema casalingo.
Mi piace:
Mi piace Caricamento...