BSD

BSD (Berkeley Software Distribution), chiamato a volte anche Berkeley Unix, è la derivazione di Unix distribuita dall’Università di Berkeley, California, a partire dagli anni ’70.

Storicamente BSD è stato sempre considerato un ramo di Unix, perchè ha condiviso il design ed il codice iniziale con l’UNIX originale di AT&T ed ha collaborato con lo sviluppo nell’era pionieristica di UNIX. Era largamente identificato con le versioni di Unix disponibili per i sistemi di classe workstation, e questo è attribuibile alla facilità con cui poteva essere licenziato ed alla familiarità che trovò tra i fondatori di molte compagnie del ramo tecnologico durante gli anni ’80. La familiarità spesso veniva dall’aver usato sistemi simili – principalmente l’ULTRIX di DEC e il SunOS di Sun Microsystems – durante i loro studi.

Sebbene BSD stesso fosse stato largamente superato da System V Release 4 ed OSF/1 negli anni ’90 (entrambi incorporavano codice BSD), il suo codice base modificato come open source, principalmente derivato dalla versione 4.4BSD-Lite, ha visto recentemente aumentare il suo uso e il suo sviluppo.

Ai giorni nostri il termine “BSD” è spesso usato per fare riferimento in maniera non specifica ai vari discendenti di BSD, es: FreeBSD, NetBSD o OpenBSD, che formano un ramo di sistemi operativi Unix-like.

Storia

Gli inizi su PDP-11

Le prime distribuzioni di Unix dei Bell Labs negli anni ’70 includevano il codice sorgente del sistema operativo, consentendo ai ricercatori universitari di modificare ed estendere Unix. Il primo sistema Unix a Berkeley fu un PDP-11 installato nel 1974, e il dipartimento di computer science lo usò per ricerche estensive.

Altre università si interessarono al software installato a Berkeley, così nel 1977 Bill Joy, uno studente laureato, assemblò e inviò i nastri della prima Berkeley Software Distribution (1BSD). 1BSD era un add-on a Unix Version 6 piuttosto che un sistema operativo completo e autonomo; i suoi componenti principali erano un compilatore Pascal e l’editor di linea ex, creato da Joy.

La Seconda Berkley Software Distribution (2BSD), rilasciata nel 1978, includeva versioni aggiornate del software 1BSD ed anche due nuovi programmi creati da Joy che persistono ancora adesso nei sistemi Unix: l’editor di testo vi (una estensione visuale di ex) e la C-shell.

Le versioni successive di 2BSD contenevano i porting su PDP-11 dei cambiamenti presenti sulle release di BSD per sistemi VAX. 2.9BSD, del 1983, includeva codice da 4.1cBSD, e fu la prima release ad essere un sistema operativo completo (una versione modificata di Unix Version 7) piuttosto che un set di patch ed applicazioni. La release più recente, 2.11BSD, fu rilasciata nel 1992, con aggiornamenti di mantenimento dai volontari fino al 2006 (la patch 445 è stata rilasciata il 26 dicembre 2006).

Versioni VAX

Un sistema VAX fu installato a Berkeley nel 1978, ma il port di Unix per l’architettura VAX, UNIX/32V, non si avvaleva delle capacità di memoria virtuale del VAX. Il kernel 32V fu largamente riscritto dagli studenti di Berkeley per includere una implementazione di virtual memory, e alla fine del 1979 un sistema operativo completo, che includeva il nuovo kernel, i port delle utility 2BSD al VAX, e le utility 32V, fu rilasciato con il nome di 3BSD. Esso fu anche chiamato alternativamente VAX/UNIX o VM/UNIX (per Virtual Memory Unix), e le immagini del kernel BSD furono chiamate /vmunix fino alla release 4.4BSD.

Il successo di 3BSD fu un fattore determinante nella decisione della Defense Advanced Research Projects Agency (DARPA) di finanziare il Computer Systems Research Group (CSRG) di Berkeley, il quale avrebbe sviluppato una piattaforma Unix standard per la ricerca futura del DARPA nel progetto VLSI, contenente numerosi miglioramenti al sistema 3BSD, nell’ottobre 1980.

4BSD (novembre 1980) offrì numerosi miglioramenti su 3BSD, tra cui il controllo dei job all’interno della csh rilasciata precedentemente, delivermail (il predecessore di sendmail), signals “affidabili”, e la libreria di programmazione Curses.

4.1BSD (giugno 1981) fu una risposta alle critiche sulle prestazioni di BSD paragonato al sistema operativo VAX predominante, VMS. Il kernel 4.1BSD fu regolato in maniera sistematica da Bill Joy finchè riuscì ad ottenere prestazioni simili a VMS su diversi benchmark. La release sarebbe stata chiamata 5BSD, ma il nome fu cambiato per evitare confusione con Unix System V di AT&T. Una versione di test mai rilasciata fu infatti chiamata 4.5BSD.

4.2 BSD richiese oltre due anni per essere implementata e comprendeva numerosi aggiustamenti importanti. Prima del suo rilascio ufficiale ci furono tre versioni intermedie: la 4.1a incorporava una versione modificata dell’implementazione preliminare TCP/IP del BBN; la 4.1b includeva il nuovo Berkeley Fast File System, creato da Marshall Kirk McKusick; la 4.1c fu una release interim durante gli ultimi mesi dello sviluppo della 4.2BSD.

La versione ufficiale 4.2BSD venne nell’agosto 1983. Fu la prima versione rilasciata dopo la partenza di Bill Joy nel 1982 come co-fondatore di Sun Microsystems; Mike Karell e Marshall McKusick presero i ruoli guida nel progetto da quel punto in avanti. Fu anche il momento dell’esordio del diavoletto come mascot di BSD, in un disegno di McKusick che appariva sulla copertina dei manuali stampati distribuiti da USENIX.

4.3BSD

4.3BSD fu rilasciato nel giugno 1986, ed i suoi cambiamenti principali furono per aumentare le performance di molte delle nuove contribuzioni di 4.2BSD che non erano state fortemente ottimizzate come il kernel 4.1BSD. Prima della release, l’implementazione TCP/IP di BSD divergeva notevolmente da quella ufficiale del BBN. Dopo numerosi mesi di testing, il DARPA determinò che la versione di 4.2BSD era superiore e sarebbe rimasta nella 4.3BSD.

Dopo il 4.3BSD fu deciso che BSD si sarebbe allontanato dalla ormai vecchia piattaforma VAX. La piattaforma Power 6/32 (nome in codice “Tahoe”) sviluppata da Computer Consoles Inc. sembrava promettente a quel tempo, ma fu abbandonata dai suoi sviluppatori di lì a breve. Ciononostante, il port 4.3BSD-Tahoe (giugno 1988) si mostrò valido poichè portò alla separazione del codice machine-dependent da quello machine-independent, cosa che avrebbe migliorato la portabilità futura.

Fino a questo punto, tutte le versioni di BSD incorporavano codice Unix proprietario di AT&T e quindi richiedevano licenze da AT&T per il suo uso. Le licenze dei codici sorgente erano diventate molto costose a quel punto, e molte parti esterne avevano espresso interesse in una release separata del codice networking, che era stato sviluppato totalmente all’esterno di AT&T e non sarebbe stato soggetto alle necessità di licenza. Questo portò alla Networking Release/1 (Net/1) che fu resa disponibile ai non-licenziatari AT&T e fu ridistribuibile liberamente sotto i termini della licenza BSD. Fu rilasciata nel giugno 1989.

4.3BSD-Reno venne agli inizi del 1990. Fu una release interim durante gli sviluppi iniziali di 4.4BSD, e il suo uso fu considerato un “azzardo”, da cui il nome riferito alla centrale del gioco d’azzardo di Reno, Nevada. Questa release si muoveva chiaramente verso la compatibilità con gli standard POSIX e, secondo alcuni, si allontanava dalla filosofia BSD (dato che POSIX è largamente basato su System V, e Reno era molto gonfia rispetto alle precedenti release).

Nell’agosto 2006 la rivista Information Week ha classificato 4.3BSD come “il più grande software mai scritto”, commentando che “4.3BSD rappresenta il più grosso singolo rafforzamento teoretico alla base di Internet.”

Net/2 e guai legali

Dopo Net/1, lo sviluppatore BSD Keith Bostic propose che ulteriori sezioni non-AT&T del sistema BSD venissero rilasciate sotto la stessa licenza di Net/1. A questo scopo, egli iniziò un progetto per reimplementare la maggior parte delle utility Unix standard senza usare il codice AT&T. Per esempio, vi, che era stato basato sulla versione originale Unix di ed, fu riscritto come nvi (new vi). Entro diciotto mesi, tutte le utility AT&T erano state sostituite, e fu determinato che solo pochi file AT&T rimanevano nel kernel. Questi files furono rimossi e il risultato fu la release nel giugno 1991 di Networking Release/2 (Net/2), un sistema operativo quasi completo che era liberamente ridistribuibile.

Net/2 fu la base per due port separati di BSD all’architettura Intel 80386. 386BSD di William Joliz, un sistema libero, e BSD/386 della Berkeley Software Designs (BSDi), che invece era proprietario. 386BSD di per se stesso visse per poco, ma divenne la base del codice iniziale dei progetti di NetBSD e FreeBSD che iniziarono di lì a poco.

BSDi si trovò presto in guai legali con la sussidiaria AT&T Unix System Laboratories, allora proprietaria del copyright System V e del marchio Unix. La causa USL v. BSDi fu istruita nel 1992 e portò a una ingiunzione sulla distribuzione di Net/2 fino a che la validità delle rivendicazioni di USL sul copyright del codice sorgente venisse determinata.

La causa rallentò lo sviluppo dei discendenti free-software di BSD per quasi due anni mentre il loro status legale era in dubbio, e come risultato i sistemi basati sul kernel Linux, che non aveva tale ambiguità legale, guadagnarono maggiore supporto. Linux e 386BSD cominciarono lo sviluppo circa nello stesso momento, e Linus Torvalds ha dichiarato che se 386BSD fosse stato disponibile a quel tempo egli probabilmente non avrebbe creato Linux.

4.4BSD e discendenti

La causa fu decisa nel gennaio 1994, largamente a favore di Berkeley. Dei 18.000 files nella Berkeley Distribution, solo 3 dovettero essere rimossi e 70 modificati per mostrare gli avvisi di copyright di USL. Una ulteriore condizione dell’accordo fu che USL non avrebbe intentato ulteriori cause contro gli utenti e i distributori del codice di proprietà di Berkeley nella imminente release 4.4BSD.

Nel giugno 1994, 4.4BSD fu rilasciato in due forme: la 4.4BSD-Lite distribuibile liberamente e non contenente codice AT&T, mentre la 4.4BSD-Encumbered era disponibile, come erano state le release precedenti, solo ai licenziatari AT&T.

L’ultima release da Berkeley fu la 4.4BSD-Lite Release 2 del 1995, dopo la quale il CSRG fu sciolto e lo sviluppo di BSD a Berkeley cessò. Da allora, numerose varianti basate direttamente o indirettamente su 4.4BSD-Lite (come NetBSD, FreeBSD, DragonflyBSD e OpenBSD) sono state create e mantenute.

In aggiunta, la natura permissiva della licenza BSD ha consentito che molti altri sistemi operativi, sia liberi che proprietari, incorporassero codice BSD. Per esempio, Microsoft Windows ha usato codice derivato da BSD nella sua implementazione TCP/IP e offre versioni ricompilate dei tool di networking a linea di comando di BSD nelle sue release attuali. Anche Darwin, il sistema su cui il Mac OS X di Apple è costruito, è in parte derivato da FreeBSD 5. Svariati Unix commerciali, come Solaris, contengono varie quantità di codice BSD.

Tecnologia

BSD aprì la strada a molte avanguardie dell’informatica moderna. Fu il primo Unix a includere librerie che supportavano gli stack dell’Internet Protocol: i Berkeley sockets. Integrando i socket con i file descriptors del sistema operativo Unix, scrivere e leggere dati attraverso un network diventò facile quanto accedere a un disco. Gli AT&T Laboratories rilasciarono la loro libreria STREAMS, che incorporava molte delle stesse funzionalità in un software stack con una architettura migliore, ma la vasta distribuzione della socket library esistente, insieme con la sfortunata omissione di una chiamata di funzione per interrogare un set di socket aperti equivalente alla chiamata select dei Berkeley sockets, ridussero l’impatto della nuova API.

Oggi, BSD continua ad essere usato come base di test per tecnologie di organizzazioni accademiche, così come trova uso in molti prodotti free e commerciali e, sempre di più, in dispositivi embedded. La qualità generale del suo codice sorgente, così come la sua documentazione (specialmente le pagine di manuale di riferimento, generalmente note come man pages), lo rendono adatto a molti scopi.

La natura permissiva della licenza BSD consente alle compagnie di distribuire prodotti derivati come software proprietario senza esporre il codice sorgente e a volte le proprietà intellettuali ai competitors. La ricerca di stringhe contenenti “University of Berkeley, California” nella documentazione di prodotti, nelle sezioni dati statiche di binari e ROM, o come parte di altre informazioni su un programma software, mostrerà spesso che del codice BSD è stato usato. Questa permissività rende il codice BSD adatto anche all’uso in prodotti Open Source, e la licenza è compatibile con molte altre licenze Open Source.

I sistemi operativi BSD possono eseguire molto software nativo di altri sistemi operativi sulla stessa architettura, usando uno strato di compatibilità binaria. Molto più semplice e veloce dell’emulazione, ciò consente per esempio di eseguire applicazioni intese per Linux alla piena ed effettiva velocità. Ciò rende i BSD non soltanto adatti agli ambienti server, ma anche alle workstation, data la crescente disponibilità di applicativi commerciali o closed-source esclusivamente per Linux. Questo consente agli amministratori di migrare vecchie applicazioni commerciali, che supportano solo varianti commerciali di Unix, ad un sistema operativo più moderno, mantenendo le funzionalità di questi applicativi finchè non possono essere sostituiti con soluzioni migliori.

Le varianti attuali dei sistemi operativi BSD supportano molti degli standard POSIX, IEEE, ANSI e ISO, pur mantenendo la maggior parte del comportamento BSD tradizionale. Come lo Unix AT&T, BSD è monolitico, nel senso che i driver di periferica nel kernel girano in modalità privileged, come parte del core del sistema operativo. Le prime versioni di BSD furono usate per formare il SunOS di Sun Microsystems, costituendo la prima ondata di workstation Unix popolari.

Fonte: Wikipedia

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.