Menu

Storia di BSD (BSD History)

bsd_logo
BSD Daemon, chiamato anche "Beastie"

Le origini di BSD (Berkeley Software Distribution), sistema Unix-like particolarmente attento alle questioni relative alla sicurezza, vanno ricercate presso l’università di Berkeley, dove Bill Joy e Chuck Haley, allora dottorandi, effettuano importanti modifiche sul codice originale di UNIX (acquistato dall’Università su un supporto a nastro per 400$) arrivando a rilasciare nel 1978 una propria versione custom, denominata appunto BSD.

Il tutto rientrava nell’approccio scelto da AT&T, produttore di Unix, per il proprio sistema, ovvero quello di considerare le Università clienti “privilegiati”, a cui Unix veniva ceduto a costi simbolici con l’accordo che ogni miglioria o bug-fix al sistema fosse consegnata alla casa madre.

Così nel 1977, lavorando su un PDP-11, Joy assembla la prima release di BSD (1BSD), distribuendola su nastro magnetico. Più che un sistema vero e proprio, si trattava di una sorta di add-on per la versione corrente di UNIX (Sixth Edition Unix, la prima ad essere rilaciata al di fuori  dei Bell/AT&T Labs) il cui tool principale era un compilatore Pascal e un editor denominato ex-line. Il sistema ha un discreto riscontro, tant’è che a breve distanza (1978), viene rilasciato 2BSD che include l’editor di testo VI (versione visuale di ex-line) e una C shell.

L’evoluzione della serie 2BSD continua a rilento, visto gli impegni di Joy su altri fronti, e si completa con 2.11BSD, che ben presto viene utilizzata su decine di PDP-11 sparsi nelle più importanti università mondiali e nei più rinomati centri di ricerca.

Sempre nel 1978 l’università di Berkeley acquista un sistema VAX, ma il porting di Unix su tale architettura (Unix/32V) non porta i benefici sperati, soprattutto non riesce a sfruttare adeguatamente  la capacità di gestire la memoria virtuale. Joy si mette allora al lavoro e, con un gruppo di studenti, riscrive gran parte del Kernel 32V, includendo uno specifico gestore di memoria virtuale e rilasciando, nel 1979, 3BSD. Questa nuova versione è un vero e proprio sistema operativo che include: un nuovo kernel e il porting delle utility di 2BSD su sistema VAX.

La versione 3BSD è un vero successo e spinge la Defense Advanced Research Projects Agency's (DARPA)  a istituire il Berkeley's Computer Systems Research Group (CSRG), con lo scopo di sviluppare una piattaforma Unix standard per i futuri progetti relativi a nuovi. Ad ottobre del 1980, nasce così 4BSD, rilasciato dal CSRG con: compilatore Pascal, Franz Lisp system ed un avanzato sistema di gestione della mail.

A pochi mesi di distanza, giugno del 1981, viene effettuata una completa revisione del sistema per porre rimedio alle scarse performance del sistema, in particolare rispetto all’OS VAX. Viene così rilasciato 4.1BSD, seguito da tre minor release: 4.1a, con una prima implementazione dello stack TPC/IP, 4.1b, che include il nuovo file system BFFS (Berkeley Fast File System) implementato da Marshall Kirk McKusick e la 4.1c, una release di manutenzione in previsione del rilascio della 4.2.

Siamo nel 1983 e la storia di BSD e del suo creatore si dividono, in quanto Bill Joy lascia Berkeley per (co)fondare SUM Microsystem. BSD viene allora preso in consegna Mike Karels e Marshall McKusick, rilasciando la versione 4.2BSD ed introducendo il “diavoletto” come mascotte ufficiale di BSD.

Bisogna attendere quasi 3 anni (giugno 1986) per 4.3BSD, che va a migliorare notevolmente le performance dell’intero sistema ed in particolare dei componenti aggiunti nella precedente release, seguita, a sua volta, da una versione intermedia nel 1990 chiamata 4.3BSD RENO. Inoltre con 4.3BSD si cerca di adattare il sistema anche a sistemi diversi da quelli VAX, in particolare guardando alla piattaforma Power 6/32 (codename “Tahoe”). Il porting non viene mai completato ma permette al team di cominciare a lavorare su codice che sia machine-indipendend, aprendo la strada alla futura portabilità.

Nel frattempo il peso dei costi di licenza di AT&T diventa sempre più rilevanti nonostante BSD sia ormai composto non solo da codice derivante da UNIX, ma anche da molti componenti terzi. Di questi, quelli relativi al Networking,  vengono racchiusi nel package NET/1 (Networking Tape 1) e rilasciati sotto licenza open BSD. Partendo da queste considerazioni, Keith Bostic (nuovo team lead del progetto) avvia la riscrittura delle utility e della parti del sistema ancora legate a codice AT&T. Così, dopo 18 mesi di lavoro, tutte le utility sono epurate dal codice del colosso delle telecomunicazioni (ad esempio, l’editor VI diventa N(new)VI), mentre a giugno del 1991 nasce NET/2, un completo sistema operativo distribuibile gratuitamente sotto licenza BSD.

NET/2 diventa la base per due diversi porting su piattaforma i386: da una parte BSD/386 (anche noto come BSD/OS), realizzato dalla Berkeley Software Design (BSDi) e a pagamento, dall’altra 386BSD, gratuito (realizzato da William Jolitz) e futura base di NetBSD e FreeBSD.

bsd_timeline

AT&T non resta a guardare e attraverso gli USL (Unix Lab) intentata una causa contro BSDi, riuscendo ad inibire la vendita di BSD/OS finché non fossero stati chiari gli eventuali crediti vantati dal proprietario di UNIX. La questione si risolve nel 1994 quasi completamente a favore di BSDi, che deve modificare il proprio sistema solo in piccola parte, assicurandosi comunque che, dopo tali modifiche, AT&T non avrebbe più potuto vantare alcun diritto su BSD.

Così nel 1994 viene rilasciato 4.4BSD in due versioni differenti: 4.4BSD-LITE senza codice AT&T e 4.4BSD-Encumbered, vendibile solo con il pagamento di royalty ad AT&T. L’ultimo atto del CSRG è il rilascio di 4.4BSD-LITE 2 (1995), dopodiché lo sviluppo di BSD viene esclusivamente portato avanti da distributori non legati all’università di Berkeley, nelle varie distribuzioni FreeBSD, NetBSD e del suo derivato OpenBSD.

freebsd netbsd openbsd

Va sottolineato come la natura fortemente permissiva della licenza di BSD abbia portato altri sistema operativi, anche proprietari, ad utilizzare parte del sistema di Berkeley. Si pensi a Windows che ha utilizzato il codice relativo allo stack TCP/IP e ha ricompilato diversi tool per l’amministrazione delle reti, o anche a Darwin (il core di Mac OS X disponibile anche in versione open), derivato in parte da FreeBSD 5. Ovviamente Solaris di SUN contiene parte del codice nativo di BSD in virtù del fatto che SUN è stata co-fondata dal suo creatore.