Panoramica generale dei sistemi *BSD

I sistemi operativi *BSD (Berkeley Software Distribution) fanno parte della famiglia di sistemi Unix-like e derivano direttamente dalla radice principale del progetto Unix originario.

Tutto iniziò alla fine degli anni sessanta, quando nei laboratori della AT&T si cominciò a sviluppare un sistema operativo innovativo che permettesse di eseguire task non sequenzialmente ma in time-sharing. Il progetto, denominato MULTICS, risultò essere più impegnativo del previsto, tanto da essere ben presto abbandonato.

Ken Thompson e Dennis Ritchie, due ingegneri che lavoravano all’interno di uno di quei laboratori, non si arresero e partendo dal core di MULTICS, iniziarono a sviluppare un sistema operativo più semplice e snello che chiamarono UNICS. Oltre a UNIX (come venne rinominato in seguito) i due ingegneri svilupparono anche il linguaggio C, che permise di sviluppare in maniera più rapida e pulita il nuovo sistema operativo.

Grazie alla buona portabilità che il linguaggio C permetteva, anche il sistema UNIX ne beneficiò, favorendo di fatto la sua diffusione. Successivamente il codice sorgente di UNIX fu dato ad alcune università per fare in modo che procedessero con lo sviluppo.

William Nelson Joy — conosciuto più comunemente con il nome di Bill Joy —, studente dell’università californiana di Berkeley, rilasciò la prima versione del sistema operativo BSD — 1BSD — nel 1977 dopo aver scritto una serie di patch per la sesta edizione dello UNIX sviluppato in AT&T.
A partire dalla versione 3 di BSD si affiancò allo sviluppo un gruppo di ricerca CSRG (Computer Systems Research Group) diretto dal DARPA.
Ciò contribuì in maniera decisiva allo sviluppo di soluzioni innovative che sono tutt’oggi alla base dell’informatica moderna.
Infatti qualche tempo dopo, con l’edizione 4, furono introdotte importanti modifiche al File System, implementata la gestione dello stack TCP/IP, introdotto il concetto di socket che semplificava la realizzazione di programmi che lavoravano in rete e sviluppate numerose librerie, editor di testo, etc..

Gran parte del sistema venne poi riscritto per essere totalmente soggetto alla licenza BSD (4.3BSD Net/2) dal quale discesero due progetti: uno commerciale chiamato BSDi e l’altro sviluppato da alcuni volontari sotto la supervisione di Lynne e William Jolitz chiamato 386BSD.
Nel 1993, 2 gruppi di sviluppatori insoddisfatti della strada intrapresa da William e Lynne con il sistema 386BSD, cominciarono a lavorare da soli sul codice.

Il primo di questi gruppi si dedicò a sviluppare un sistema operativo che fosse facilmente accessibile anche a persone non addette ai lavori, direzionando i propri sforzi sullo sviluppo del sistema basato su piattaforma Intel x86: nacque così il progetto FreeBSD.
Attualmente FreeBSD risulta essere il sistema operativo *BSD più diffuso, grazie alla semplicità di utilizzo e di installazione, unita a prestazioni di alto livello.
FreeBSD è un sistema operativo completo, supporta diverse architetture oltre ad Intel x86 (AMD 64bit, SUN UltraSPARC, DEC Alpha, AIM PowerPC e altre), offre funzionalità di networking avanzato e livelli di sicurezza elevati che solo pochi altri sistemi operativi possono vantare.
Rispetto ad altri sistemi operativi *BSD, FreeBSD offre un bagaglio software molto più ampio, contenente migliaia di ports; inoltre è supportato da una community vasta, attiva ed affiatata.

Il secondo gruppo che si staccò dal progetto 386BSD iniziò a sviluppare NetBSD, il cui obiettivo principale era quello di creare un sistema operativo facilmente portabile su qualsiasi piattaforma.
Questa caratteristica è ancora oggi alla base dello sviluppo costante di questo sistema da parte del core team.
Un altro punto fondamentale risulta essere l’attenzione posta dagli sviluppatori nello scrivere codice il più possibile pulito e corretto, rendendo il sistema più semplice da mantenere e meno esposto a bug.
Come FreeBSD, anche NetBSD risulta essere completo, veloce — anche nel caso di risorse limitate — e soprattutto stabile pur supportando più di 50 piattaforme differenti.

Poco dopo la divisione in due gruppi vi fu un’altra spaccatura all’interno di uno dei due: Theo de Raadt dopo aver litigato con alcuni sviluppatori di NetBSD, venne allontanato dal progetto.
Quest’ultimo iniziò allora a sviluppare da solo un proprio sistema operativo partendo da NetBSD, concentrando tutti gli sforzi per renderlo il più possibile sicuro di default e diede alla luce OpenBSD.
Ancora oggi OpenBSD è considerato uno dei sistemi — se non il sistema — più sicuro in circolazione. Il suo motto dice tutto su i livelli di sicurezza adottati: “Solamente due buchi di sicurezza remoti con l’installazione di default in oltre 10 anni”.

Theo de Raadt e gli altri sviluppatori che si sono aggregati successivamente al progetto si sono concentrati molto sulla pulizia e la correttezza del codice come primo metodo per evitare problemi di sicurezza oltre a sviluppare nuove tecniche, come criptare la zona di memoria dove risiede la swap, e a realizzare applicativi rivolti prevalentemente alla sicurezza come OpenSSH, OpenBGPD, OpenNTPD, etc..
Questo però non vuol dire che non sia possibile rendere FreeBSD o NetBSD sicuri quanto OpenBSD; quest’ultimo ha il vantaggio di essere di base (ovvero appena installato) meno esposto ad attacchi informatici rispetto agli altri.
Sicuramente OpenBSD risulta essere meno user-friendly degli altri due, oltre ad avere un bagaglio di applicazioni più piccolo rispetto, ad esempio, a FreeBSD.
Inoltre la stretta politica riguardante l’integrazione di driver proprietari nella distribuzione (che devono essere rilasciati sotto una licenza aperta come BSD, GPL, etc.) fa sì che questo OS supporti meno dispositivi hardware rispetto ai “cugini”.

Quarto in scala di diffusione risulta essere il sistema operativo DragonFlyBSD, progetto molto interessante nato da FreeBSD 4.8 che si concentra prevalentemente su uno sviluppo alternativo dell’SMP (Symmetric multiprocessing) per aumentare la scalabilità e le prestazioni di calcolo soprattutto in sistemi multiprocessore.

I sistemi operativi BSD-like non sono da prendere in considerazione solamente se si sta cercando un ambiente di sviluppo adeguato per le proprie applicazioni, o se si vuole implementare un server (un webserver, un server di posta o quant’altro), ma anche se l’utilizzo che se ne vuol fare è limitato all’ambito domestico.

Negli ultimi anni stanno prendendo sempre più piede sistemi basati su BSD rivolti ad applicazioni desktop, affiancando nel panorama Open Source le distribuzioni desktop GNU\Linux.
Ne è un esempio PC-BSD, sviluppato partendo da FreeBSD 5.4, che punta ad essere un sistema dedicato alle applicazioni desktop completo, sicuro e di semplice utilizzo.
Anche DesktopBSD cerca di semplificare l’utilizzo del sistema, l’installazione degli applicativi, la configurazione di dispositivi esterni e tutto ciò che concerne l’utilizzo da parte di un utente comune.

Infine, può considerasi — in parte — della famiglia anche il sistema operativo della Apple: Mac OS X.
Esso combina un kernel XNU (basato su microkernel Mach) con interfaccia Aqua (sviluppata direttamente da Apple) e un ambiente Open Source derivato da FreeBSD, Darwin, utilizzato per gestire i permessi, gli utenti, lo stack di rete, etc..
Anche se il codice di Darwin è rilasciato liberamente (sotto licenza Apple), non risulta essere molto diffuso al di fuori della comunità Macintosh.

Ci sono parecchi motivi per scegliere di avvicinarsi ad un sistema operativo BSD: prima di tutto, questi sistemi sono conosciuti per la loro stabilità, sicurezza e affidabilità.
In secondo luogo perché questi sono gratuiti, il codice è Open Source e molti sono adottati dalle più grandi compagnie software di tutto il mondo.

Come visto, questi OS sono adatti ad essere impiegati per qualunque utilizzo: dagli ambienti di sviluppo e ricerca agli ambienti commerciali, da soluzioni embedded a comuni personal computer utilizzati per applicazioni desktop, garantendo sempre prestazioni di alto livello e standard di sicurezza elevati.

Comments

  1. bell’articolo, io citerei anche la lentezza di OpenBSD come contraltare alla sua sicurezza

  2. @dat In parte è vero quello che dici.Trovo però che nel 2007 (quasi 2008) parlare di lentezza di un sistema operativo sia un po’ anacronistico. Più che altro per il fatto che abbiamo piattaforme hardware dalle prestazioni talmente elevate che è diventata prassi comune addirittura virtualizzare più server sulla stessa macchina (per inciso, quello che sta accandendo a livello mondiale è che i link fisici sono tornati nuovamente ad essere i bottleneck delle reti di calcolatori). Poi ovviamente esistono i casi particolari che confermano o smentiscono la regola, a seconda dei punti di vista. Cosa ne pensi?

  3. Personalmente utilizzo OpenBSD per i server personali, i quali sinceramente non hanno mai alcun carico, e mi son sempre trovato bene.
    Che OpenBSD sia più lento rispetto (ne cito giusto uno) a FreeBSD è vero, però è anche vero (come dice Marco qui sopra) che al giorno d’oggi con l’hardware a disposizione è veramente difficile notare la differenza (in ambito normale). Per quanto riguarda carichi di lavoro molto gravosi la differenza c’è … ma non so quanto possa essere significativa.
    Probabilmente il mio ragionamento è dovuto al fatto che se un server è molto carico tendo a preferire l’aggiunta di un secondo server o l’update dello stesso piuttosto che a cercare un sistema operativo un pò più performante, ma questo è soggettivo 🙂

  4. @Marco Ceresa
    ovviamente concordo e mi fido (la mia esperienza è limitatissima) e comunque io guardo al mondo BSD con l’occhio casalingo e sul mio server da camera (PIII a 500Mhz e 128MB di ram) OpenBSD era un chiodo in confronto a NetBSD e slackware.
    saluti
    dat

  5. @dat: Concordo pienamente con Marco e Simone. Il punto è proprio che i calcolatori di oggi hanno prestazioni tali da mettere in secondo piano le prestazioni intrinseche del sistema operativo adottato.
    Se parlassimo, per esempio, di sistemi embedded allora bisognerebbe fare un ragionamento diverso.
    Comunque grazie per aver apprezzato l’articolo 🙂

Policy per i commenti: Apprezzo moltissimo i vostri commenti, critiche incluse. Per evitare spam e troll, e far rimanere il discorso civile, i commenti sono moderati e prontamente approvati poco dopo il loro invio.


Trackbacks

  1. dat ha detto:

    E’ facile facile ma me lo segno per usi futuri (occhio che io lo uso per sviluppare le mie applicazioni a casa, se sei un amministratore di sistema e ti serve per installare un server di produzione dovresti sapere da te come fare).
    Installare da …