FreeBSD è un sistema operativo Unix-like e un’iterazione delle vecchie distribuzioni Unix meglio note come Research Unix. È open-source e pubblicamente disponibile gratuitamente, e in realtà è solo una delle molte distribuzioni Berkeley Software (abbreviato BSD, da cui il nome FreeBSD), le altre iterazioni degne di nota sono OpenBSD, NetBSD, e DragonFly BSD.
Linux, come derivazione di Unix, ha naturalmente molto in comune con BSD. Come BSD, anche le distribuzioni Linux sono libere e open-source. Nonostante le somiglianze fondamentali, Linux ha ampiamente oscurato BSD in popolarità, con oltre il 74% dei moderni smartphone che sono basati su Linux.
Quindi questo porta alla domanda: Se BSD e Linux sono solo iterazioni della ricerca Unix, cosa li rende esattamente diversi?
Beh, le differenze tra i due stanno nei fondamenti, e le differenze sono molte. Ma leggerle tutte in un singolo post sarebbe abbastanza noioso per i lettori. Quindi, questo post si concentrerà solo sui fondamenti e lascerà fuori i dettagli intricati per amore della brevità e per non intimidire i nuovi lettori.
Ma cos’è Linux, veramente?
La prima cosa che molte persone sbagliano è che Linux è un kernel, non un sistema operativo. Questo lo rende solo una parte del sistema operativo, non il sistema operativo stesso.
Discutiamo dei kernel per un secondo. I kernel sono il perno di qualsiasi sistema operativo, in quanto mantengono tutto il codice sottostante su cui si basa quel sistema operativo. Abilita e accelera l’interazione tra i componenti hardware e software di un sistema, gestisce le richieste di input/output da e verso le applicazioni software, ed è responsabile anche della gestione dei dispositivi hardware.
In breve, un kernel è la caratteristica più integrale di qualsiasi sistema operativo su cui si basa, ed è quindi ritratto in una parte altamente protettiva nella memoria del sistema dove ogni e qualsiasi richiesta di accesso dalle applicazioni è negata, tranne alcune che sono integrali al funzionamento del sistema.
Ora che abbiamo capito cos’è un kernel, possiamo andare avanti e vedere cosa fa Linux, come kernel, nel sistema operativo.
Kernel Linux in un sistema operativo
Tra i più popolari sistemi operativi basati su Linux ci sono Debian, Ubuntu, Fedora e Deepin. Quindi, ogni volta che sentite qualcuno dire che usa Linux, sappiate che in realtà si tratta di una di queste distribuzioni. Queste distribuzioni sono “basate su Linux” perché sono costruite sul kernel Linux. Le modifiche al kernel insieme alle nuove applicazioni caricate in esso rendono ogni distribuzione diversa dall’altra.
Cos’è BSD, e come è diverso da Linux?
Come detto prima, le diverse distribuzioni di BSD sono tutti sistemi operativi. E questo rende BSD, come Linux, un kernel.
Ma per complicare le cose, BSD è anche un sistema operativo autonomo, cosa che Linux non è. Spieghiamo come esattamente.
Per le distribuzioni BSD, diversi programmi vengono aggiunti al kernel BSD. Questa combinazione viene poi rilasciata come un pacchetto autonomo e completo che deve essere installato, e la cosa è pronta a partire. Quindi, la differenza fondamentale tra le distribuzioni BSD come FreeBSD, OpenBSD, ecc, è dovuta ai programmi aggiunti al kernel del sistema operativo. Per scaricare pacchetti software aggiuntivi, gli utenti BSD usano il sistema dei port, che mantiene questi pacchetti in forma di sorgente. Il codice sorgente viene compilato dal sistema ogni volta che il software viene lanciato. Mentre questo può rivelarsi ingombrante, specialmente quando si eseguono codici più lunghi e intricati, i sistemi BSD possono saltare completamente il passaggio di compilazione ad ogni lancio se il programma è installato in uno stato binario, alleviando così il processo in larga misura.
Linux è diverso da BSD per il fatto che ogni sua distribuzione usa programmi completamente diversi, e le distribuzioni non hanno un repository centralizzato per i pacchetti software, poiché ogni distribuzione ha il proprio repository.
Differenze nelle licenze
Una delle differenze fondamentali tra BSD e Linux è quella del sistema di licenze sotto il quale le loro distribuzioni sono rilasciate.
Quando scarichi software dal repository dei porti in BSD o installi una distribuzione nel suo complesso, il software o la distribuzione ti viene assegnato sotto la licenza BSD, che è un sistema di licenza personalizzato impiegato dagli sviluppatori BSD. Mentre BSD è completamente open-source e libero per ora, il sistema di licenze BSD permette agli sviluppatori di dichiarare BSD closed-source in un attimo. Come utente di FreeBSD, non hai legalmente diritto a ulteriori rilasci da parte degli sviluppatori BSD. Tuttavia, gli sviluppatori di BSD hanno reso pubblico che hanno tutte le intenzioni di mantenerlo open-source in futuro.
Le distribuzioni Linux sono rilasciate sotto la GNU General Public License (GPL). Sotto questo sistema di licenze, gli sviluppatori di Linux sono legalmente obbligati a rilasciare ogni singola istanza dei cambiamenti fatti al kernel di Linux. Il sistema di licenze, in sostanza, fa in modo che Linux rimanga open-source, non importa quali cambiamenti vengano fatti al kernel stesso.
Perché Linux è più popolare? (Spoiler: Disponibilità del software)
Se vi siete chiesti per tutto questo tempo perché non avete sentito parlare delle BSD tanto quanto delle distribuzioni Linux, ecco il perché: quando si tratta di compatibilità del software, Linux lo batte alla grande. Per ogni software in circolazione c’è una versione compatibile con Linux. Questo non è il caso di FreeBSD, che rimane ampiamente trascurato per questo motivo.
Il kernel Linux rende la scrittura e la distribuzione di programmi software più semplice rispetto ad altri kernel, quindi gli sviluppatori sono naturalmente inclini a lavorare verso le release di Linux. La distribuzione, in particolare, è resa ancora più facile dal sistema di pacchetti binari preinstallati che facilita. Linux permette di scaricare e installare pacchetti software tramite gestori di pacchetti come apt, yum, Pacman, ecc.
In confronto alla distribuzione di software in Linux, gli utenti BSD hanno molta più difficoltà. I pacchetti software sono prima scaricati come codici sorgente in BSD attraverso il sistema delle porte. Questi codici sorgente vengono poi compilati ogni volta che vengono lanciati, un processo che è sia dispendioso in termini di tempo che frustrante nell’era moderna in cui il software viene installato con un clic di un pulsante. Questo è altrettanto frustrante per gli sviluppatori, dato che devono fare un sacco di sforzi per rendere la compilazione il più veloce possibile.
Anche se l’introduzione dei pacchetti binari precompilati ha ampiamente mitigato il processo di ottenere software in FreeBSD, la disponibilità del software rimane ancora un enorme problema per BSD.
Scegliere tra Linux e BSD
A parte i più tradizionali Windows e IOS, le distribuzioni Linux sono di gran lunga superiori a qualsiasi altro sistema operativo là fuori. È libero, open-source, e ha tutto da offrire come FreeBSD, senza i caveat.
BSD e Linux sono molto più comuni che diversi, con le licenze e la distribuzione del software come uniche differenze fondamentali. Tuttavia, nonostante le somiglianze, usare uno è un compromesso con un altro.
Da un lato, FreeBSD mantiene una libreria di strumenti e dipendenze in tutte le distribuzioni, rendendo più facile per gli sviluppatori iterare sui contenuti e creare applicazioni proprie. Questo è il punto in cui FreeBSD ha un notevole vantaggio rispetto a Linux, poiché la suite GNU inclusa in Linux non lo permette.
Ma d’altra parte, la mancanza di compatibilità e disponibilità di software ostacola gravemente l’esperienza con FreeBSD. Questo problema può essere risolto usando il pacchetto di compatibilità Linux, che permette al software Linux di funzionare su distribuzioni BSD, ma questo è un passo in più che ostacola comunque l’esperienza.
Per quanto riguarda le licenze, la licenza GPL di Linux è molto più restrittiva di quella BSD. Gli sviluppatori o gli utenti non possono apportare variazioni al kernel o al codice sorgente di Linux senza renderlo pubblico. Gli utenti BSD non hanno tali obblighi; quindi gli sviluppatori dovrebbero almeno provare BSD. Essere in grado di mantenere privato il codice sorgente è un vantaggio considerevole che Linux non riesce a fornire.
Le licenze per le distribuzioni Linux sono orientate a favore degli utenti, poiché confermano che qualsiasi sviluppo fatto per migliorare le applicazioni per il sistema sarà reso disponibile agli utenti. Le licenze BSD, d’altra parte, sono più simili alle licenze standard, permettendo agli utenti di installare gratuitamente le BSD ma non obbligando gli sviluppatori a rendere pubblico il loro contenuto.
La nostra raccomandazione
Si consiglia una distribuzione Linux se si ha intenzione di usarla per scopi generali. La sua compatibilità software è una ragione sufficiente per raccomandarla. Tuttavia, se sei un produttore, BSD è l’opzione giusta per te. Ha un repository centralizzato per il software ed è ben noto per la sua affidabilità. E per quanto riguarda le licenze BSD, non dovrete preoccuparvi di rendere il vostro lavoro open-source.
Se avete optato per il kernel Linux, vi consigliamo di usare Ubuntu. Viene aggiornato regolarmente ogni sei mesi, una coerenza che, a mio parere, trova un ottimo equilibrio tra tenere il passo con i problemi di sicurezza e non frustrare gli utenti.
E se si sceglie di andare con il kernel BSD, si consiglia FreeBSD, che è di gran lunga la distribuzione più comunemente usata di BSD là fuori.
Se si sceglie il kernel BSD, si consiglia FreeBSD.