Recensione distro non propriamente Linux: FreeBSD 12.1-RELEASE

64

Ingrandisci / Avremmo potuto usare una di queste sfere antistress di FreeBSD mentre cercavamo di far funzionare un desktop.

La recensione della distribuzione Linux di questo mese non riguarda affatto una distribuzione Linux, invece, diamo un’occhiata a FreeBSD, il gangster originale dei sistemi operativi gratuiti simili a Unix.

La prima versione di FreeBSD risale al 1993, ma le radici del sistema operativo risalgono a molto più indietro, considerevolmente più indietro. FreeBSD iniziò nel 1992 come patch-release di 386BSD di Bill e Lynne Jolitz, ma lo stesso 386BSD proveniva dall’originale Berkeley Software Distribution (BSD). La stessa BSD risale al 1977 – per riferimento, Linus Torvalds aveva solo sette anni allora.

Prima di iniziare, vorrei riconoscere qualcosa in anticipo: le nostre recensioni sulla distribuzione includono l’esperienza desktop e questo non è assolutamente il punto di forza di FreeBSD. FreeBSD è di gran lunga più adatto a funzionare come server headless che come desktop! Avremo comunque un desktop completo in esecuzione su di esso, perché secondo Lee Hutchinson, mi odio e anche perché non possiamo immaginare che ai lettori non importerebbe.

FreeBSD non fornisce una buona esperienza desktop, per non dire altro. Ma se desideri un desktop basato su BSD, non preoccuparti: stiamo già pianificando una revisione di follow-up di GhostBSD, una distribuzione BSD incentrata sul desktop.

BSD non è Linux

Linux è, di per sé, solo un kernel: è necessaria una distribuzione software avvolta attorno ad esso per creare un sistema operativo completo. Al contrario, FreeBSD è ed è sempre stato un sistema operativo completo: sia il kernel che l’ecosistema software sono gestiti e mantenuti dallo stesso gruppo di persone.

In passato, questo consentiva a FreeBSD di avere un layout significativamente più coerente rispetto alla tipica distribuzione Linux. Con un comitato centrale che supervisionava la progettazione e la manutenzione dell’intero sistema operativo nel suo insieme, le distinzioni come ciò che va in /bin, /usr/bin e /usr/local/bin sono state applicate in modo più coerente e facile.

Detto questo, l’importanza di questa differenza è stata erosa in modo significativo negli ultimi 20 anni. Le moderne distribuzioni Linux tendono ad avere alle spalle organizzazioni grandi e molto professionali: è difficile vedere come la supervisione del comitato FreeBSD su FreeBSD come intero sistema operativo differisca in modo significativo dalla supervisione di Canonical su Ubuntu o Red Hat su CentOS e Fedora.

Una cosa che rimane diversa tra i due campi è la licenza del kernel. Il kernel Linux è concesso in licenza GPLv2 e gli sviluppatori del kernel Linux di base possono essere notoriamente irritabili per potenziali violazioni di tale licenza. Il kernel di FreeBSD, insieme alla maggior parte del codice creato dal progetto FreeBSD, è concesso in licenza sotto la licenza BSD a due clausole.

Se non sei completamente al passo con le licenze open source, possiamo riassumere la differenza in poche parole: la GPL richiede che anche il codice derivato sia concesso in licenza GPL e la licenza BSD no. La GPL ha anche una curiosa definizione di cosa significhi essere “derivato”: secondo i termini della GPL, qualsiasi codice che si collega al codice GPL è “derivato” e soggetto a requisiti di licenza compatibili.

Annuncio

Il filesystem ZFS è un famoso esempio della definizione di “derivato” della GPL capovolta. ZFS è stato originariamente sviluppato per Solaris ed è stato portato su FreeBSD prima di essere trasferito su Linux. È chiaro che ZFS non è “derivato” di Linux in nessun normale uso della parola.

Poiché un modulo del kernel deve collegarsi al kernel, qualsiasi modulo del kernel, indipendentemente dalla sua effettiva storia di sviluppo, è quindi un lavoro “derivato” secondo la GPL. Questo è controverso e, in pratica, ci sono molti moduli del kernel completamente proprietari, come il modulo driver binario proprietario di Nvidia. Indipendentemente da ciò, è un punto critico per molti sviluppatori di kernel.

Al contrario, la licenza BSD 2-Clause richiede semplicemente che qualsiasi ridistribuzione del codice con licenza BSD deve includere il copyright originale del codice. Ciò consente il riutilizzo del codice BSD all’interno di progetti senza licenza BSD e viceversa. Se volessi creare ProprietaryBSD e venderlo come un prodotto senza accesso da parte dell’utente o diritti sul codice sorgente, la licenza BSD te lo consentirebbe: dovresti semplicemente riconoscere il copyright BSD quando lo fai.

Installazione di FreeBSD

  • I BSD sono orgogliosi della loro grafica ASCII e di non nascondere inutilmente i menu di avvio all’utente.

    Jim Salter

  • Ooh, un ambiente LiveCD! Proviamolo prima di installare!

    Jim Salter

  • Benvenuto nel tuo ambiente LiveCD! Spero che non ti aspettassi un desktop. OK, torniamo all’installazione…

    Jim Salter

  • Ai tempi in cui i miei server erano alimentati da dinosauri in esecuzione su tapis roulant, l’albero delle porte era un must. Probabilmente non è rilevante per la maggior parte delle persone ora.

    Jim Salter

L’installazione di FreeBSD ha un aspetto decisamente vecchia scuola. L’intero processo è in modalità testo, come un’installazione Debian o Ubuntu Server. Non è necessariamente una cosa negativa; significa che hai sempre scorciatoie da tastiera, rendering rapido dei menu e puoi rinviare potenziali problemi di driver hardware a più tardi, dopo l’installazione del sistema operativo stesso.

Per circa un decennio – 1997-2007, dare o avere – sono stato un fedele utente di FreeBSD e lo preferivo fortemente a Linux. Da allora è cambiato molto poco nel processo di installazione, anche se non ricordo un ambiente LiveCD.

Tieni presente, tuttavia, che l’ambiente LiveCD è davvero utile solo per i salvataggi del sistema operativo: non c’è desktop e pochissimo software preinstallato. Sei semplicemente caduto a un prompt di accesso “Amnesiac”. Da lì, puoi accedere come root (senza password, anche se nulla ti dà un suggerimento al riguardo) e ottenere una semplice shell.

Una volta iniziata l’installazione effettiva, sceglierai una mappa della tastiera, un nome host e quindi tutti i componenti opzionali da installare.

Sarà ZFS? Hai ragione, lo farà

  • Non è necessario utilizzare il partizionatore manuale, ma se lo fai, faresti meglio a capirlo.

    Jim Salter

  • Quando si partiziona un disco, è meglio scegliere una tabella delle partizioni MBR o GUID: se scegli le etichette BSD, otterrai “slice” anziché partizioni e nessun altro sistema operativo avrà la più pallida idea di come accedere al tuo disco!

    Jim Salter

  • In realtà non è necessario partizionare manualmente i dischi per utilizzare ZFS. Il che è positivo, perché il partizionatore è difettoso.

    Jim Salter

  • Nonostante abbia digitato “freebsd-zfs” nel campo Tipo e “freebsd-zfs” sia stato fornito come tipo di esempio in basso… otteniamo un argomento non valido se lo proviamo.

    Jim Salter

FreeBSD supporta il filesystem ZFS più a lungo di qualsiasi altro sistema operativo tranne il suo Solaris nativo. Quindi, ovviamente, eseguirò un’installazione ZFS su root qui e una corretta, su più dischi, per giunta.

Annuncio

Ciò non mi ha richiesto di scavare nel partizionatore manuale, ma l’ho provato comunque. Devi sapere cosa stai facendo nel partizionatore di FreeBSD più di quanto tu sappia nella maggior parte dei casi—per esempio, se crei una tabella delle partizioni con lo schema “Etichette BSD”, ti sarai accidentalmente consegnato a “slice” BSD piuttosto che partizioni corrette e nessun altro sistema operativo sarà in grado di leggere i tuoi dischi.

Ho anche trovato un bug nel partizionatore quasi immediatamente, nonostante mi abbia fornito “freebsd-zfs” come esempio di campo valido da digitare liberamente nella sua casella di testo Tipo:, si è lamentato di un argomento non valido quando l’ho provato. Inoltre, non puoi semplicemente annullare questa finestra di dialogo: l’unico modo per uscire era invece di digitare “freebsd” gratuito, dopodiché potevo scegliere di annullare l’intera tabella delle partizioni e tornare al programma di installazione guidato.

  • OK, tornando dal nostro esperimento di configurazione manuale del disco, questa volta sceglieremo Auto (ZFS) per un’installazione guidata Root-on-ZFS.

    Jim Salter

  • Il nostro primo passo qui sarà la seconda opzione, T—Tipo di pool/Dischi.

    Jim Salter

  • Abbiamo quattro dischi che vorremmo impostare come pool di mirror, quindi ignoreremo l’errore concettuale qui e sceglieremo “raid10”.

    Jim Salter

  • Questa parte è semplice: abbiamo quattro dischi disponibili, li stiamo aggiungendo tutti al vdev.

    Jim Salter

  • C’è un po’ di “gotcha” quando torniamo al menu di configurazione principale di ZFS: il pulsante in basso è “Seleziona”, non OK: dobbiamo tornare indietro fino a “>>> Installa” prima di premere Seleziona si sposterà noi insieme.

    Jim Salter

  • Ti piace la perdita di dati? Mi piace la perdita di dati. Dovremmo uscire. MODALITÀ FORMATO YOLO ATTIVA.

    Jim Salter

Il programma di installazione ZFS guidato ha ancora alcune verruche ma nessun vero problema. Organizzare un pool ZFS completo e potenzialmente complesso in un semplice programma di installazione a menu non è un compito banale. FreeBSD, sfortunatamente, non riesce a portare a termine il processo senza rinforzare alcuni errori concettuali.

Innanzitutto, un pool non è composto da dischi: un pool è composto da vdev e i singoli vdev sono a loro volta costituiti da dischi. Diciamo che hai 12 dischi a tua disposizione: potresti organizzarli tutti in un singolo vdev RAIDz2, con circa 10 dischi di capacità di archiviazione utilizzabile e due dischi di parità. O forse sceglieresti invece un RAIDz3 vdev, con circa nove dischi di capacità e tre dischi di parità.

Ciò che sfugge a molti utenti è che un pool non deve essere costituito da un singolo vdev. Si potrebbe invece scegliere di avere due vdev RAIDz2 a sei dischi nel pool o quattro vdev RAIDz1 a tre dischi. Più comunemente, vediamo un pool di mirror: nel nostro esempio di 12 dischi, in genere ciò significherebbe sei vdev mirror a larghezza di due dischi.

Gli sviluppatori di FreeBSD volevano abilitare il provisioning automatico di questo scenario comune di pool di mirror, ma ha infranto il loro paradigma di selezione di un tipo di dispositivo virtuale. Quindi hanno scrollato le spalle, ignorato l’errore concettuale e offerto “raid10” come “tipo di dispositivo virtuale”.

Selezionando “raid10” qui ho ottenuto una serie di specchi. Mi ha anche fatto piangere un po’ dentro.

Una volta terminata la configurazione della configurazione del disco, c’è un’altra verruca minore da affrontare in uscita. Il pulsante in basso del menu principale di configurazione del disco non è un OK, è un Seleziona. Ho impiegato un secondo o tre confusi per rendermi conto che dovevo tornare indietro con la freccia fino alla parte superiore del menu, evidenziare >>> Installa, quindi tornare indietro e premere Seleziona per procedere.