martedì 21 gennaio 2014

Delirii e BSD - Sesto Episodio

Riepilogo delle puntate precedenti: dopo innumerevoli improperi e numerose ore il nostro ha completato il rimpiazzo e lo ha caricato in auto dirigendosi verso il luogo di lavoro...

Sesto episodio: Epilogo.

In quest'articolo vedrò di fare un po' il punto di questa serie rispondendo ad alcune delle domande che mi sono state poste in merito a questi articoli.

"Perché OpenBSD e non Debian?"

Questa è una bella domanda. Sono un utente Debian da un po' di tempo ormai (ho cominciato con l'amministrare server Debian nel 2004) ed è in assoluto la distribuzione di Linux con cui mi trovo meglio. Ultimamente, però, non è più la distribuzione snella e leggera che era una volta: è molto difficile avere un sistema base usabile con X.org e stare al di sotto dei 500 Mbyte con Debian 7 (si badi che ho scritto difficile, non impossibile).

A proposito di distribuzioni leggere: molti arcieri hanno provato a convertirmi con scarso successo: Arch è TROPPO vicina a Linux From Scratch per le mie esigenze e inoltre anche con Arch stare sotto il limite dei 500 Megabyte ed avere X.org significa spulciare molto attentamente quello che si installa con pacman. C'è differenza tra imparare le cose perché VUOI e imparare le cose perché DEVI e purtroppo ho già il mio bel da fare nella vita di tutti i giorni per potermi permettere il lusso di modificare ogni singolo aspetto della configurazione del mio sistema.

Come ho scritto negli altri articoli OpenBSD è attivamente sviluppato su TUTTE le architetture supportate: comprese vecchie Workstation Sun, ancor più vecchi VAX, relativamente nuovi Mac con processori G4 e perfino appliance di rete basate su processori ARMv5 a 200 MHz. Su ciascuna di queste macchine vengono scaricati i sorgenti e compilato il sistema base per ogni release di OpenBSD (una volta ogni 6 mesi). Questo significa che il Sistema Operativo deve essere abbastanza robusto ed abbastanza leggero da poter girare su queste macchine e da consentire loro di compilare una base di codice vasta quasi un GigaByte. Certamente è vero che alcune di queste macchine ci mettono GIORNI a compiere un tale lavoro, ma se ci fossero dei problemi seri nel codice di OpenBSD questi salterebbero fuori proprio in caso di grosso carico delle macchine stesse. Ed è effettivamente successo più di una volta stando a quanto afferma Theo De Raadt. Lavorando con architetture strane su macchine vecchie e limitate sia in potenza di calcolo che in memoria (sia di massa che RAM) e volendo avere un'esperienza utente il più coerente possibile tra tutte le architetture (in modo tale che uno che sa amministrare OpenBSD su i386 lo sappia fare anche su un Mac G4 o su una Sun Ultra 1 senza cambiare il suo metodo di lavoro) è ovvio che occorra scrivere codice estremamente pulito, portabile e il più snello possibile. tutto questo avendo ben presente che uno dei punti su cui si focalizzano gli sviluppatori di OpenBSD è la sicurezza.

C'è un altro fattore che mi ha spinto a provare OpenBSD nel 2006: sia il kernel che lo userland sono portati avanti assieme dagli sviluppatori di OpenBSD sotto la benevola guida (leggasi: dittatura dal pugno di ferro) di Theo De Raadt.

Lo sviluppo del kernel Linux è molto più anarchico (lo stesso Torvalds ha ammesso che ci sono stati momenti in cui la base di codice di Linux era diventata "bloated and huge", ovvero "stracarica ed enorme") e lo sviluppo dello userland GNU è molto frammentato del punto di vista organizzativo: abbiamo casi in cui ci sono sovrani assoluti (vedi Ulrich Drepper e le glibc) oppure casi in cui ci sono comitati direttivi come nello GNOME project.

La ragione principale però l'ho indicata nel quarto articolo: pf. Trovo che pf sia una soluzione molto funzionale ed elegante per chi deve mettere in piedi un gateway e consiglio l'acquisto (e la lettura) di "The Book of PF" (ISBN: 978-1-59327-274-6) a chiunque fosse interessato ad approfondire i concetti legati alla gestione di reti tramite pf (altro consiglio: se comprate il cartaceo direttamente dall'editore avrete l'ebook in formato PDF ed ePub gratis).

"Perché dovrei installare OpenBSD? Linux fa già tutto quello che mi serve!"

La stessa domanda può essere posta da chi usa Sistemi Operativi proprietarii a chi lo sta cercando di convincere a passare a un Sistema Operativo a codice aperto o ad un Sistema Operativo basato su Software Libero. Per tanto vedrò di rispondere in termini generali cercando di essere il più neutrale possibile (impresa ardua).

Essenzialmente vedo tre ragioni che spingono qualcuno a migrare da un Sistema Operativo ad un altro:

  1. Necessità.
  2. Convenienza.
  3. Scelta personale.
Nel primo caso si ha bisogno di una particolare caratteristica che non presente nel Sistema Operativo che si usa di solito ma che è disponibile per il nuovo Sistema Operativo e questa caratteristica da sola basta a giustificare la migrazione. Di solito chi migra per necessità è un tecnico esperto che sa valutare i pro e i contro e sa come convincere chi sgancia i soldi che la migrazione avrà un impatto positivo sui costi a medio e lungo termine. Costoro sanno (o dovrebbero sapere) benissimo cosa stanno facendo e quindi l'unica maniera per convincerli è mettere a disposizione del pubblico le feature e i benchmark, possibilmente effettuati da terze parti che siano il più possibile neutrali.

Nel secondo caso si tratta di un ragionamento simile ma non identico: il mio attuale Sistema Operativo fa tutto quello che mi serve ma costa mantenerlo/aggiornarlo e sto cercando un'alternativa altrettanto valida ma che mi costi meno. Questo caso era piuttosto comune anni fa in cui parecchi utenti di vari UNIX commerciali vennero a conoscenza delle alternative Open come GNU/Linux e *BSD ai vari HP/UX, AIX, Unixware ecc. ecc. Queste grandi migrazioni hanno fatto la fortuna di Red Hat e hanno definitivamente affossato gli UNIX proprietarii, con la notevole eccezione di Mac OS X.

Il terzo caso è quello che mi interessa maggiormente perché spesso si tratta di smanettoni che vengono a sapere dell'esistenza di un'alternativa e decidono di provarla per curiosità. Altre volte si tratta di persone che non condividono alcune delle scelte operate da chi gestisce il loro attuale Sistema Operativo. A costoro dico che OpenBSD NON è perfetto: richiede che l'utente si informi e si legga la documentazione prima di cominciare e non ha una vasta community di gente amichevole e ben disposta verso chi non ha la più pallida idea di cosa sta facendo. È un Sistema Operativo scritto ad uso e consumo degli sviluppatori dello stesso senza alcuna garanzia implicita od esplicita che funzioni e che faccia quello che voi pensiate che faccia.

Detto questo: a me OpenBSD va bene. Fa quello che gli chiedo di fare, ha dei default che ritengo ragionevoli (attivare solo il minimo indispensabile e lasciare all'amministatore il resto), ha un'ottima documentazione sotto forma di pagine man ricche di esempi, non mi chiede di decidere in fase di installazione ogni singolo software che voglio installare ma non mi riempie il disco rigido con Gigabyte di librerie, linguaggi di scripting, Desktop Environment e chi più ne ha più ne metta. Non mi obbliga a compilare ogni singolo pacchetto software ed ha un sistema d'installazione che non richiede la lettura di otto pagine della Wiki: basta leggere il file INSTALL.* relativo all'architettura del proprio computer (i386, amd64, sparc, ecc. ecc.).

Sono una persona molto conservativa, il mio motto personale è: "la PENULTIMA versione è la migliore perché almeno sai a cosa vai incontro". OpenBSD (e Debian GNU/Linux) rispettano questa mia filosofia cercando di evitare i cambiamenti fatti solo per il gusto di avere roba nuova, quelli fatti solo per ottenere un incremento delle prestazioni oppure quelli che vengono fatti solo perché "così è più bello!".

"Mi consigli di provarlo o mi stai consigliando di starne alla larga?"

Nè l'una, nè l'altra: se siete spinti da una naturale curiosità e volete avere sotto gli occhi un Sistema Operativo che sia abbastanza "semplice" da studiare ma abbastanza funzionale da poter essere usato come server allora potete provare OpenBSD. Se volete essere sempre aggiornati e volete comunque imparare alcuni dei meccanismi sottostanti esiste Arch. Se volete qualcosa che funzioni e che sia ragionevolmente mantenibile sul lungo periodo andate di Debian. Se vi occorre un file server con buone prestazioni e il supporto nativo a ZFS provate FreeBSD. In fin dei conti gli OS sono strumenti: non potete prendere a martellate una vite e pretendere che il risultato finale sia un buon lavoro. In quanto strumenti, i Sistemi Operativi, sono stati forgiati ed adattati per compiti ben precisi: secondo me conoscerli e saperli adoperare arricchisce chi spende tempo per imparare ad usarli, anche se magari non li userà che una o due volte nel corso della sua carriera.