# Berkeley Software Distribution

In informatica la Berkeley Software Distribution (in sigla BSD) è la variante originaria del sistema operativo Unix, sviluppata presso l'Università di Berkeley in California, alla base di una delle due famiglie principali di sistemi operativi liberi attualmente più diffusi, tra cui gli esponenti più noti sono FreeBSD, PC-BSD, OpenBSD, NetBSD, GhostBSD, MidnightBSD, DesktopBSD, FreeNAS, FreeSBIE, DarwinOS (il cuore Unix di macOS) e DragonFly BSD (con le sue distribuzioni FireflyBSD).

## Storia

La prima versione del sistema operativo BSD (1BSD) venne pubblicata dall'Università di Berkeley nel 1977. Si trattava di una serie di patch di uno studente del campus, Bill Joy, alla sesta edizione dello Unix dell'AT&T, che girava su PDP-11. Il sistema fu distribuito, come si usava a quei tempi, su di un nastro sotto forma di codice sorgente ed includeva, tra le altre cose, anche un editor scritto dallo stesso Joy (ex) ed un compilatore Pascal.
L'anno successivo, il 1978, vide l'uscita della seconda versione del sistema BSD (2BSD), sempre sotto la supervisione di Joy, che correggeva alcuni bug della prima edizione ed introduceva la C shell e una versione visuale di ex, vi. Questa versione fu la prima ad essere portata sul VAX, sebbene non riuscisse a sfruttare ampiamente le capacità di memoria virtuale della macchina. Per ottenere migliori risultati sul VAX gli studenti dell'Università riscrissero gran parte del kernel di Unix/32V ed introdussero un'implementazione della memoria virtuale. Il nuovo sistema, il 3BSD, corredato dalle utility di 2BSD e dal port per il VAX venne pubblicato nel 1979. Il successo di 3BSD indusse la DARPA a fondare il CSRG, che avrebbe avuto il compito di supervisionare lo sviluppo di una piattaforma Unix standard destinata alla ricerca. Il CSRG pubblicò, nel 1980, 4BSD che includeva interessanti miglioramenti a 3BSD. Seguì la versione 4.1BSD (1981), che grazie ai miglioramenti apportati da Joy al kernel, riuscì ad eguagliare nei benchmark le prestazioni del sistema operativo nativo del VAX, OpenVMS.
Ci vollero altri due anni affinché venisse pubblicata la versione successiva definitiva, 4.2BSD; nel frattempo vennero sviluppate tre release intermedie: la 4.1a, che conteneva una primitiva implementazione del protocollo TCP/IP, la 4.1b, che introduceva il nuovo file system del sistema operativo, FFS, implementato da Marshall Kirk McKusick, e la 4.1c che comprendeva vari bugfix. 4.2BSD venne pubblicata nell'agosto del 1983, quando Bill Joy aveva ormai lasciato la leadership del progetto a McKusick e Mike Karels per fondare la Sun Microsystems. Fu per questa versione che apparve la mascotte di BSD, un demone disegnato dallo stesso McKusick, sulla copertina dei manuali distribuiti da USENIX.
Nel 1986 uscì 4.3BSD, che includeva miglioramenti in termini di performance rispetto all'edizione precedente e, cosa ben più importante, introdusse la prima implementazione del protocollo TCP/IP scelta come standard dalla DARPA per la superiorità dimostrata nel confronto dei concorrenti. Siccome fino a quel punto tutte le versioni erano basate sempre sull'implementazione di Unix dell'AT&T, si decise, nel 1989, di pubblicare sotto i termini della licenza BSD, soltanto la parte relativa al networking, che prendeva nome Net/1 (Networking release 1). Sotto la guida di Keith Bostik si fece in modo di riscrivere totalmente tutte le utility del sistema operativo per pubblicarle sotto licenza BSD. In diciotto mesi il lavoro fu realizzato ed un nuovo sistema completo, totalmente soggetto alla licenza BSD, nacque sotto il nome Net/2 (Networking release 2) nel 1991.
Da Net/2 presero il via altri due progetti: 386BSD di William Jolitz - dalla vita breve ma dal quale nacquero NetBSD prima e FreeBSD poi - e una versione commerciale del sistema operativo, BSDi. In questi anni si concretizzò per i progetti BSD una disputa legale con AT&T, che rivendicava la paternità del marchio Unix e il copyright su alcune porzioni del codice sorgente del sistema operativo. Ciò rallentò notevolmente lo sviluppo dei sistemi e favorì lo sviluppo di Linux, che non accusava problemi di questo genere.
Nel gennaio del 1994 la causa legale cessò ampiamente in favore di Berkeley. Su oltre 18000 file soltanto 3 dovevano essere rimossi dal sistema e 70 modificati in termini di licenza. Così, nel giugno dello stesso anno, venne pubblicata la definitiva versione di 4.4BSD, epurata dal codice e dal marchio AT&T: 4.4BSD-lite. La versione finale del sistema operativo fu la 4.4BSD-lite Release 2 (1995). I progetti discendenti sono attualmente in fase di sviluppo e vengono distribuiti in diverse distribuzioni, ognuna delle quali persegue uno scopo. Grazie alla permissiva licenza BSD, Windows, il sistema operativo della Microsoft, include, soprattutto per quanto riguarda la parte di networking (protocolli e utility relative), codice dei progetti BSD vivi.

## Descrizione
### Tecnologia

Gli obiettivi principali nello sviluppo di BSD sono sempre stati la standardizzazione, la qualità del prodotto, l'affidabilità e l'innovazione. Nello Unix di Berkeley sono stati implementati protocolli, librerie e strumenti che hanno dato un grande contributo allo sviluppo dell'informatica moderna. Tra le più importanti novità introdotte vanno ricordati i protocolli di rete, come il TCP/IP, le relative librerie che realizzavano il rivoluzionario concetto di socket (il quale semplificava le implementazioni dei programmi di comunicazione attraverso la rete stessa), la memoria virtuale, il Berkeley Fast File System, la C shell, gli editor ex e vi.
I sistemi BSD sono tutt'oggi ampiamente utilizzati in ambiti di ricerca, di produzione, in prodotti commerciali ed in apparecchi embedded. In particolare, la qualità del codice e della documentazione (le cui "manpage" sono molto complete), nonché l'elevata aderenza agli standard IEEE, ANSI, ISO, e POSIX, li rendono un vero e proprio paradiso per i programmatori. Un fatto interessante è che questi sistemi possono eseguire programmi nativi per altri sistemi operativi grazie ad un "layer" di emulazione, più propriamente chiamato "di compatibilità binaria". Ciò si rivela un enorme vantaggio, da un lato perché fornisce prestazioni migliori di un'emulazione vera e propria e dall'altro perché consente, indirettamente, agli utenti di BSD di disporre di più programmi di quanto non sia possibile con altri sistemi: gli amministratori possono migrare le loro applicazioni commerciali da sistemi operativi proprietari verso soluzioni libere ma allo stesso tempo affidabili e moderne.

### Distribuzioni open source

Le diverse distribuzioni open source di BSD sono ampiamente utilizzate in vari ambiti ma ognuna si differenzia dalle altre per l'obiettivo particolare sul quale si concentra:
* Darwin, un sistema open Source con kernel XNU (unione, a sua volta, di FreeBSD e Mach), sviluppato da Apple e usato come base di Mac OS X, insieme all'interfaccia grafica proprietaria Aqua.
* DragonFly BSD, l'ultima arrivata, è un progetto nato dal ramo 4 di FreeBSD che attualmente si sta concentrando su di uno sviluppo alternativo dell'SMP e del calcolo distribuito.
* FreeBSD, derivata direttamente da 386BSD, è conosciuta principalmente per la semplicità d'utilizzo e per le ottime prestazioni che offre, data la concentrazione dei suoi sviluppatori sulle architetture più diffuse, come quelle Intel.
* NetBSD, la prima discendente di 386BSD è rinomata per la portabilità estrema (funziona su decine di piattaforme e include un sistema per lo sviluppo di driver molto portabile) e per la qualità del codice. Viene attualmente utilizzata sulla Stazione spaziale internazionale.
* OpenBSD possiede un'ottima reputazione in fatto di sicurezza informatica. Tecnicamente deriva da NetBSD ma nel corso degli anni il suo team ha sviluppato programmi molto apprezzati anche al di fuori del sistema operativo, come OpenSSH e OpenBGPD.

### Licenza

L'acronimo viene usato anche per indicare la licenza BSD, una licenza libera non copyleft molto semplice sotto la quale è pubblicata la maggior parte delle componenti dei sistemi citati. In breve, la licenza consente la redistribuzione del software anche in forma proprietaria, purché venga riconosciuto il merito all'autore.

### Mascotte

Beastie è l'entità mascotte del mondo BSD. Rappresenta un demone rosso e per questo noto anche come BSD Daemon. È stato disegnato, tra gli altri, da John Lasseter per la copertina di alcuni libri ed è stato adottato da BSD a partire dal 1988. È armato di forcone e porta scarpe da ginnastica azzurre. Oggigiorno viene adottato unicamente dal sistema FreeBSD e suoi derivati.