1.3 Informazioni sul FreeBSD Project

La sezione seguente fornisce alcune informazioni relative al progetto, includendo una breve storia, gli obiettivi, e il modello di sviluppo.

1.3.1 Breve storia di FreeBSD

Contributo di Jordan Hubbard.

Il FreeBSD Project ebbe la sua genesi nella prima parte del 1993, come una sorta di crescita oltremisura del “Patchkit Non Ufficiale di 386BSD” dagli ultimi tre coordinatori del patchkit: Nate Williams, Rod Grimes e me stesso.

Il nostro obiettivo originario era di produrre uno snapshot intermedio di 386BSD allo scopo di risolvere una serie di problemi che il meccanismo del patchkit non era semplicemente in grado di risolvere. Alcuni di voi potranno ricordare che il primo titolo funzionante per il progetto fu “386BSD 0.5” o “386BSD Interim” in riferimento a quel fatto.

386BSD era il sistema operativo di Bill Jolitz, che era arrivato a questo punto soffrendo piuttosto pesantemente di quasi un anno di disinteresse. Visto che il patchkit si gonfiava sempre più scomodamente con il passare dei giorni, fummo d'accordo all'unanimità che doveva essere fatto qualcosa e decidemmo di provare ad assistere Bill fornendo questo snapshot ad interim “ripulito”. Questi piani ebbero un brusco arresto quando Bill Jolitz improvvisamente decise di ritirare la sua approvazione al progetto senza nessuna chiara indicazione di cosa invece doveva essere fatto.

Non ci volle molto per decidere che l'obiettivo rimaneva utile, persino senza il supporto di Bill, e così adottammo il nome “FreeBSD”, coniato da David Greenman. I nostri obiettivi iniziali furono decisi dopo esserci consultati con gli utenti dell'epoca del sistema e, una volta che divenne chiaro che il progetto era sulla strada giusta e forse stava persino diventando una realtà, contattai la Walnut Creek CDROM con un occhio verso il miglioramento dei canali distributivi di FreeBSD per quei molti sfortunati che non avevano facile accesso a Internet. La Walnut Creek CDROM non solo supportò l'idea di distribuire FreeBSD su CD ma andò anche più lontano fornendo al progetto una macchina per lavorarci su e una connessione ad Internet veloce. Senza il grado di fiducia quasi senza precedenti della Walnut Creek CDROM in quello che era, a quel tempo, un progetto completamente sconosciuto, è abbastanza improbabile che FreeBSD sarebbe andato così lontano, così velocemente, come è oggi.

La prima distribuzione su CDROM (e largamente disponibile sulla rete) fu FreeBSD 1.0, rilasciata nel dicembre del 1993. Questa era basata su un nastro della 4.3BSD-Lite (“Net/2”) della U.C. Berkeley, con molti componenti forniti anche da 386BSD e dalla Free Software Foundation. Fu un successo abbastanza ragionevole per una prima offerta, e lo seguimmo dal grande successo di FreeBSD release 1.1 nel maggio del 1994.

Circa in questo periodo si formarono all'orizzonte alcune nuvole temporalesche piuttosto inaspettate allorché Novell e U.C. Berkeley risolsero la loro lunga causa civile sullo stato legale del nastro di Berkeley Net/2. Una condizione di quell'accordo era la concessione di U.C. Berkeley che vaste parti di Net/2 erano codice “ingombrante” e di proprietà di Novell, che lo aveva infine acquistato da AT&T qualche tempo addietro. Quello che Berkeley ottenne in cambio fu la “benedizione” di Novell che la release 4.4BSD-Lite, quando fu finalmente rilasciata, fosse dichiarata non ingombrante e che tutti gli utenti Net/2 esistenti fossero fortemente incoraggiati a cambiare. Questo incluse FreeBSD, e al progetto fu dato tempo fino alla fine di luglio 1994 per fermare la spedizione del proprio prodotto basato su Net/2. Sotto i termini di quell'accordo, fu permesso al progetto un ultimo rilascio prima della scadenza, e quella release fu FreeBSD 1.1.5.1

FreeBSD allora si accinse nell'arduo compito di letteralmente reinventare se stesso da un insieme di bit di 4.4BSD-Lite completamente nuovo e piuttosto incompleto. Le release “Lite” erano light (leggere) in parte perché il CSRG di Berkeley aveva rimosso grandi sezioni di codice richiesto per costruire effettivamente un sistema funzionante in grado di partire (dovuto a varie richieste legali) e in parte al fatto che il port per Intel della 4.4 era altamente incompleto. Al progetto ci volle fino al novembre del 1994 per fare questa transizione; a quel punto rilasciò FreeBSD 2.0 sulla rete e su CDROM (nel tardo dicembre). A dispetto del fatto di essere ancora più che un po' ruvida ai bordi, la release fu un successo significativo e fu seguita dalla release FreeBSD 2.0.5 più robusta e semplice da installare nel giugno del 1995.

Rilasciammo FreeBSD 2.1.5 nell'agosto del 1996, e parve essere abbastanza popolare tra gli ISP e le comunità commerciali tanto che si meritò un'altra release nel corso del ramo 2.1-STABLE. Questa era FreeBSD 2.1.7.1, rilasciata nel febbraio 1997 e apoteosi dello sviluppo principale sulla 2.1-STABLE. Attualmente in modalità di manutenzione, su questo ramo (RELENG_2_1_0) verranno sviluppati solo miglioramenti della sicurezza e correzioni degli errori.

FreeBSD 2.2 fu derivato dallo sviluppo della linea principale (“-CURRENT”) nel novembre 1996 come ramo RELENG_2_2, e la prima release completa (2.2.1) fu rilasciata nell'aprile 1997. Furono rilasciate ulteriori release del ramo 2.2 nell'estate e nell'autunno del '97, l'ultima delle quali (2.2.8) apparve nel novembre 1998. La prima release 3.0 ufficiale apparve nell'ottobre 1998 e segnò l'inizio della fine per il ramo 2.2.

L'albero si ramificò ancora il 20 gennaio 1999, dividendosi nei rami 4.0-CURRENT e 3.X-STABLE. Dalla 3.X-STABLE, la 3.1 fu rilasciata il 15 febbraio 1999, la 3.2 il 15 maggio 1999, la 3.3 il 16 settembre 1999, la 3.4 il 20 dicembre 1999 e la 3.5 il 24 giugno 2000, seguita pochi giorni dopo da un aggiornamento di punto inferiore alla release 3.5.1 per incorporare alcune correzioni dell'ultimo minuto a Kerberos sulla sicurezza. Questa sarà l'ultima release del ramo 3.X.

Ci fu un'altra ramificazione il 13 marzo 2000, che vide l'apparizione del ramo 4.X-STABLE, ora considerato essere il “ramo -STABLE corrente”. Ci sono state numerose release da allora: la 4.0-RELEASE fu introdotta nel marzo 2000, e la più recente 4.11-RELEASE venne fuori nel Jan 2005. Ci saranno release aggiuntive lungo il ramo 4.X-STABLE (RELENG_4) per tutto il 2003.

La tanto attesa 5.0-RELEASE è stata annunciata il 19 gennaio 2003. Il culmine di quasi tre anni di lavoro, questa release ha iniziato FreeBSD nel percorso del supporto avanzato al multiprocessore e ai thread nelle applicazioni e ha introdotto il supporto per le piattaforme UltraSPARC® e ia64. Questa release è stata seguita dalla 5.1 nel giugno del 2003. A parte un certo numero di nuove funzionalità, le release 5.X contengono anche parecchi sviluppi maggiori sull'architettura di sistema sottostante. Insieme a questi vantaggi, tuttavia, arriva un sistema che incorpora una quantità impressionante di codice nuovo e non completamente testato. Per questa ragione, le release 5.X sono considerate release con “Nuove Tecnologie”, mentre quelle della serie 4.X come release di “Produzione”. Col tempo, la 5.X sarà dichiarata stabile e comincerà il lavoro sul prossimo ramo di sviluppo, 6.0-CURRENT.

Per ora, lo sviluppo dei progetti a lungo termine continua ad aver luogo nell'albero 5.X-CURRENT, e release SNAPshot della 5.X su CDROM (e, naturalmente, sulla rete) sono continuamente rese disponibili sul server snapshot mentre il lavoro procede.

1.3.2 Obiettivi del FreeBSD Project

Contributo di Jordan Hubbard.

Gli obiettivi del FreeBSD Project sono di fornire software che può essere usato per qualunque scopo senza vincoli. Molti di noi hanno fatto un investimento significativo nel codice (e nel progetto) e certamente non dovrebbero essere interessati ad un piccolo compenso finanziario qua e là, ma non siamo sicuramente preparati ad insistere su questo. Noi crediamo che la nostra prima e prioritaria “missione” sia di fornire codice a tutti i partecipanti, presenti e futuri, e per qualunque scopo, così che il codice abbia un uso il più possibile ampio e fornisca i più ampi benefici. Questo è, io credo, uno degli obiettivi fondamentali del Software Libero (Free Software) e che noi supportiamo entusiasticamente.

Quel codice nel nostro albero dei sorgenti che cade sotto la GNU General Public Licence (GPL) o la GNU Lesser General Public License (LGPL) ha un po' più di vincoli, sebbene almeno dal lato di rafforzare l'accesso piuttosto che l'opposto. Date le complessità aggiuntive che possono risultare dall'uso commerciale di software GPL noi preferiamo, tuttavia, software rilasciato sotto il più rilassato copyright BSD quando è una scelta ragionevole farlo.

1.3.3 Il Modello di Sviluppo di FreeBSD

Contributo di Satoshi Asami.

Lo sviluppo di FreeBSD è un processo molto aperto e flessibile, essendo costruito dal contributo di centinaia di persone di tutto il mondo, come puoi vedere dalla nostra lista dei collaboratori. L'infrastruttura di sviluppo di FreeBSD permette a queste centinaia di sviluppatori di collaborare su Internet. Siamo costantemente alla ricerca di nuovi sviluppatori e idee, e quelli interessati a essere coinvolti maggiormente nel progetto devono semplicemente contattarci sulla mailing list di discussioni tecniche su FreeBSD. La mailing list di annunci su FreeBSD è anche disponibile a quelli che vogliono informare altri utenti FreeBSD delle principali aree di lavoro.

Cose utili da sapere sul FreeBSD Project e il suo processo di sviluppo, sia lavorando in modo indipendente che in stretta cooperazione:

Il repository CVS

L'albero centrale dei sorgenti FreeBSD è mantenuto tramite CVS (Concurrent Versions System, ovvero Sistema di Versioni Concorrenti), uno strumento di controllo dei codici sorgenti liberamente disponibile che viene distribuito con FreeBSD. Il principale repository CVS risiede su una macchina a Santa Clara CA, USA da dove è replicato su numerose macchine speculari in tutto il mondo. L'albero CVS, che contiene gli alberi -CURRENT e -STABLE, possono essere facilmente replicati anche sulla tua macchina. Fai riferimento alla sezione Sincronizzazione dei Tuoi Sorgenti per maggiori informazioni su come fare.

La lista dei committer

I committer sono persone che hanno permesso di scrivere nell'albero CVS, e sono autorizzate ad apportare modifiche ai sorgenti di FreeBSD (il termine “committer” viene dal comando commit di cvs(1), che è usato per portare i nuovi cambiamenti al repository CVS). Il modo migliore di sottoporre modifiche alla revisione da parte della lista dei committer è usare il comando send-pr(1). Se qualcosa appare inceppato nel sistema, allora puoi anche raggiungerli mandando un messaggio alla mailing list dei committer di FreeBSD.

Il core team di FreeBSD

Il core team di FreeBSD dovrebbe essere equivalente al consiglio dirigente se il FreeBSD Project fosse una azienda. Il compito principale del core team è assicurarsi che il progetto, nella sua interezza, sia in buona salute e sia diretto nella giusta direzione. Una delle funzioni del core team è invitare sviluppatori responsabili e dedicati a unirsi al nostro gruppo di committer come altri ne escono. L'attuale core team è stato eletto da un insieme di candidati committer nel giugno 2004. Le elezioni vengono tenute ogni 2 anni.

Alcuni membri del core team hanno anche aree specifiche di responsabilità, significando che sono impegnati ad assicurare che grandi porzioni del sistema funzionino come annunciato. Per una lista completa degli sviluppatori di FreeBSD e le loro aree di responsabilità, guarda la Contributors List

Nota: Molti membri del core team sono volontari per quanto riguarda lo sviluppo di FreeBSD e non beneficiano finanziariamente dal progetto, così pure l'“impegno” non dovrebbe essere frainteso come “supporto garantito”. Allo stesso modo; l'analogia con il “consiglio direttivo” non è molto calzante, e può essere più corretto dire che queste sono persone che hanno rinunciato alle loro vite in favore di FreeBSD, contro il loro senso del giudizio!

Collaboratori esterni

Non da ultimo, il più grande gruppo di sviluppatori sono gli stessi utenti che ci forniscono feedback e correzioni di bug quasi costantemente. Il modo principale di tenersi in contatto con lo sviluppo non centralizzato di FreeBSD è iscriversi alla mailing list di discussioni tecniche su FreeBSD dove queste cose vengono discusse. Guarda il Appendice C per maggiori informazioni sulle varie mailing list di FreeBSD.

La Lista dei Collaboratori di FreeBSD è lunga e cresce continuamente, quindi perché non entri a far parte di essa contribuendo e dando tu qualcosa a FreeBSD?

Fornire codice non è il solo modo di contribuire al progetto, per una lista completa di cose che serve fare, fai riferimento al sito web del FreeBSD Project.

In conclusione, il nostro modello di sviluppo è organizzato come un insieme sciolto di cerchi concentrici. Il modello centralizzato è progettato per agevolare gli utenti di FreeBSD, ai quali viene fornito un modo semplice per tenere traccia di una base di codice centrale, non per tenere fuori potenziali collaboratori! È nostro desiderio presentare un sistema operativo stabile con un ampio insieme di programmi applicativi coerenti che gli utenti possono facilmente installare ed usare -- questo modello funziona molto bene per realizzare ciò.

Tutto quello che chiediamo a quelli che vogliono unirsi a noi come sviluppatori di FreeBSD è un po' della stessa dedizione che hanno le attuali persone al suo continuo successo!

1.3.4 La Release Corrente di FreeBSD

FreeBSD è liberamente disponibile, è basato tutto su sorgenti 4.4BSD-Lite, è rilasciato per computer Intel i386™, i486™, Pentium®, Pentium Pro, Celeron®, Pentium II, Pentium III, Pentium 4 (o compatibili), Xeon™, DEC Alpha™ e Sun UltraSPARC. È basato principalmente su software del gruppo CSRG della U.C. Berkeley, con alcuni miglioramenti presi da NetBSD, OpenBSD, 386BSD, e dalla Free Software Foundation.

Dalla nostra release di FreeBSD 2.0 nel lontano '94, le prestazioni, l'insieme di caratteristiche, e la stabilità di FreeBSD sono migliorate notevolmente. Il più grande cambiamento è stato la riscrittura del sistema di memoria virtuale con una VM/file buffer cache integrata che non solo incrementa le prestazioni, ma anche riduce la richiesta di memoria di FreeBSD, rendendo una configurazione con 5 MB un minimo accettabile. Altri miglioramenti includono il completo supporto a client e server NIS, il supporto delle transazioni TCP, la chiamata-su-richiesta di PPP, il supporto integrato del DHCP, un sottosistema SCSI migliorato, il supporto ISDN, il supporto per ATM, FDDI, per gli adattatori Fast e Gigabit Ethernet (1000 Mbit), un supporto migliorato degli ultimi controller Adaptec, e molte migliaia di correzioni di bug.

In aggiunta alla distribuzione di base, FreeBSD offre una collezione di software portato con migliaia di programmi comunemente cercati. Alla data di stampa, ci sono oltre 12,300 port! La lista dei port comprende server http (WWW), giochi, linguaggi, editor e quasi tutto quello che sta in mezzo. L'intera collezione dei port richiede approssimativamente 400 MB di spazio, essendo tutti i port espressi come “delta” dei loro sorgenti originari. Questo rende più facile per noi aggiornare i port, e riduce di molto la domanda di spazio su disco dalla vecchia collezione 1.0 dei port. Per compilare un port, vai semplicemente nella directory che vuoi installare, digita make install e lascia che il sistema faccia il resto. La distribuzione originale completa per ogni port che compili viene presa dinamicamente dal CDROM o da un sito FTP locale, così hai bisogno solo lo spazio su disco sufficiente per compilare il port che vuoi. Quasi ogni port viene fornito di un “package” precompilato che può essere installato con un semplice comando (pkg_add) da coloro che non vogliono compilare i propri port dai sorgenti. Maggiori informazioni sui package e sui port possono essere trovate nel Capitolo 4.

Un numero di documenti aggiuntivi che puoi trovare molto utili nel processo di installazione e di utilizzo di FreeBSD ora può essere trovato anche nella directory /usr/share/doc su ogni recente macchina FreeBSD. Puoi vedere i manuali installati localmente con qualsiasi browser HTML usando i seguenti URL:

Il Manuale di FreeBSD

/usr/share/doc/handbook/index.html

Domande Comuni su FreeBSD

/usr/share/doc/faq/index.html

Puoi vedere anche le copie originali (e aggiornate più frequentemente) su http://www.FreeBSD.org/.

Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Per domande su FreeBSD, leggi la documentazione prima di contattare <questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a <doc@FreeBSD.org>.