FreeBSD


Introduzione

Fino a qualche anno fa la parola "Unix" faceva venire in mente grossi sistemi di calcolo, dedicati tipicamente all'elaborazione scientifica, inaccessibili all'utente medio per costo e prestazioni ma anche funzionalita' avanzate come multiprocessing, memoria virtuale, protezione dei task in esecuzione, supporto alla multiutenza.

Oggi le feature che rendevano Unix un sistema d' eccellenza sono disponibili in praticamente tutti i sistemi operativi presenti sul mercato, in quanto lo sviluppo tecnologico del'hardware ha reso quelle funzionalita' facilmente supportabili persino sui sistemi destinati al pubblico consumer; date questa premesse sembrerebbe che i sistemi Unix siano destinati ad essere abbandonati in favore di soluzioni piu' user friendly ed invece si sta andando incontro ad una netta inversione di tendenza: sono le conseguenze della rivoluzione open source.

Linus Torvalds, il creatore del kernel Linux, ha trasformato un piccolo hobby nella piu' grande minaccia che i produttori di sistemi operativi commerciali potessero immaginare, mentre i progetti KDE e Gnome sono sicuramente responsabili di aver chiuso il gap di usabilita' che separava un classico sistema Unix (a riga di comando) dai sistemi Mac e Windows.


Storia dei sistemi *BSD

Linux non e' pero' 'unica reale alternativa a Windows, infatti anche se meno noti al grande pubblico, tutta una serie di sistemi operativi, derivati dal lavoro svolto presso 'universita' di Berkley dalla fine degli anni '70 fino ai primi anni '90, sono disponibili liberamente, con i relativi sorgenti:


1) FreeBSD
2) NetBSD
3) OpenBSD

a cui si aggiungono un paio di nuovi arrivati:

4) DragonFlyBSD
5) EkkoBSD

La distribuzione di questo software e' regolata dalla cosiddetta licenza BSD (Berkley Software Distribution) che consente, a chiunque lo desideri, di modificare il codice come meglio ritiene, anche a scopo commerciale, purche' venga opportunamente riportata la notifica del copyright del codice originario, mentre non e' assolutamente richiesta la diffusione delle modifiche a livello sorgente.


La prima versione dello Unix BSD fu rilasciata nel 1979 (3BSD) e supportava la memoria vituale ed una forma evoluta di paging su Digital VAX; queste feature invogliarono il DARPA, il dipartimento della difesa americano, a finanziare la versione 4 (4BSD) che tra le principali novita' includeva la prima implementazione dello stack TCP/IP, una versione migliorata della memoria virtuale ed il porting su altre piattaforme.
La distribuzione del codice sorgente insieme al sistema operativo non fu pero' ben vista dalla AT&T, che fece causa al'universita' di Berkley e, di fatto, causo' un certo allontanamento da parte degli sviluppatori indipendenti.
Infine la causa si risolse anche perche' AT&T aveva incorporato nel proprio Unix molto codice BSD senza riportare il dovuto copyright ed, in ultima analisi, 'oggetto del contendere era limitato ad un paio di file non fondamentali per il sistema.
Nel giugno 1995 fu rilasciata l'ultima versione, la "4.4BSD lite release 2", opportunamente depurata di tutto il codice proprietario.
Nel frattempo 2 gruppi di sviluppatori che contribuivano patch al codice 4.4BSD si erano formati: uno diede origine a FreeBSD (motto: " FreeBSD: the power to serve") con lo scopo di creare un sistema operativo ad alte prestazioni, stabile e sicuro, destinato per lo piu' ad ambienti server, mentre l'altro diede origine a NetBSD (motto: " of course it runs NetBSD") orientato alla portabilita' sulle piattaforme piu' disparate.
Il progetto OpenBSD nasce da un gruppo di sviluppatori, guidati da Theo De Raadt, che si separarono da NetBSD perche' le loro patch non venivano accettate; OpenBSD e' orientato alla sicurezza (sul sito di OpenBSD si vantano di non avere problemi di sicurezza nel sistema di base da ben 7 anni) e non alle prestazioni pure, quindi risulta ideale per firewall e router.
Recentemente anche FreeBSD ha visto la creazione di un nuovo branch: DragonFlyBSD, guidato da Matt Dillon, interessato ad apportare modifiche sostanziali al sistema incompatibili con il branch 5.x. 'ultimo arrivato e' EkkoBSD, un branch di OpenBSD, il cui obiettivo sembrerebbe essere quello di fornire piu' applicativi di base nel sistema rispetto ad OpenBSD.
In generale possiamo dire che i *BSD, pur condividendo la comune base derivata dal codice di 4.4BSD, si differenziano per la filosofia che ne guida lo sviluppo pur mantenendo tra di loro un elevato interscambio di idee e codice.


FreeBSD 5

La versione 5 di FreeBSD introduce una serie di novita' significative rispetto alla 4.x, tuttavia non ha ancora raggiunto tutti gli obiettivi prefissati dal Core Team per cui non ha ancora ricevuto il tag - STABLE riservato per ora alla 4.x , ma il tag -CURRENT che in sostanza significa che il branch e' soggetto a pensanti modifiche e che il funzionamento del sistema stesso non e' garantito ; tuttavia, di tanto in tanto, quando un certo numero di novita' significative e' stato aggiunto, lo sviluppo si ferma e si presta attenzione a risolvere i bug dopodiche' si rilascia una versione con il tag -RELEASE, cioe' utilizzabile piu' che altro per testing anche se qualcuno si spinge oltre e la installa anche su macchine di produzione.

Per il download di FreeBSD - RELEASE (e - STABLE) potete andare su: ftp://ftp.FreeBSD.org/pub/FreeBSD/

mentre per FreeBSD - CURRENT potete andare su: http://snapshots.jp.freebsd.org:8021/pub/FreeBSD/snapshots/

prima di procedere con l'installazione vi consiglio di leggere 'Handbook contenente tutte le informazioni necessarie alla installazione e configurazione del sistema, disponibile in vari formati su: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

FreeBSD 5 e' disponibile per un certo numero di piattaforme, in particolare:

1) Alpha (ex Digital, ex Compaq ora HP),

2) i386 o IA - 32 cioe' i PC con processore Intel, AMD o compatibili,

3) IA- 64 cioe' Itanium di Intel,

4) AMD64 cioe' AMD Athlon64, Athlon64 FX e Opteron,

5) Sparc64 di Sun MicroSystem,

6) PC98 una variante giapponese dei PC

piattaforme con supporto incompleto:

7) PowerPC,

8) MIPS

Le novita' piu' interessanti del branch 5.x sono legate alla gestione dei task e dei thread:

1) SMPng : il supporto al multiprocessing, completamente riscritto rispetto alla 4.x, e' ora abilitato di default, senza la necessita' di ricompilare il kernel;

2) KSE: il nuovo meccanismo di threading, oltre al classico schema 1:1 (cioe' ad un thread di esecuzione di un programma utente corrisponde un thread eseguito nel kernel) comprende lo schema M:N supportato solo da sistemi operativi di fascia (molto) alta; lo sviluppatore di applicazioni puo' scegliere liberamente quale dei 2 schemi usare;

3) ULE: il nuovo scheduler e' O(1) cioe' e' in grado di eseguire le operazioni di scheduling in una quantita' di tempo costante, senza essere dipendente dal numero di task e thread in esecuzione, inoltre supporta load balancing e thread affinity .

vi sono poi tutta una serie di novita' legate al mass storage:

1) GEOM: il nuovo sottosistema che ottimizza l'accesso ai dispositivi di memorizzazione e fornisce la base per tutta una serie di servizi come l'encryption,

2) ATAng: il nuovo driver per PATA e SATA scritto per essere MP - SAFE
3) UFS2: il nuovo file system scritto per supportare file grandi oltre il terabyte e gli attributi estesi,

altre novita' riguardano la gestione del sistema

1) RCng: l'organizzazione degli script di avvio semplice e lineare importato da NetBSD;

2) devfs: crea in automatico, per ogni dispositivo del sistema, la corrispondente entry in /dev

infine sul fronte sicurezza

1) ipfw2: la nuova revisione del firewall supporta lo stateful filtering,

2) pf: il firewall di OpenBSD, piu' sofisticato di ipfw, e' stato portato ed e' disponibile come port.


Software applicativo

Nessun sistema operativo e' un granche' utile senza applicativi e FreeBSD non fa certamente eccezione, infatti il cd contenente il sistema operativo viene riempito di quelli che nel gergo FreeBSD sono i "packages": applicativi precompilati come KDE, Gnome, Mozilla, etc.
Naturalmente e' possibile installare i packages durante la fase di installazione oppure successivamente tramite il comando pkg_add, mentre per disinstallare un applicativo si usera' pkg_delete; se invece desiderate un maggior controllo, ad esempio ottimizzare l'applicazione per il Pentium 4 piuttosto che per l'Athlon, ci sono i "ports", un metodo automatizato per effettuare il download e compilare i sorgenti, comprensivo di risoluzione di eventuali dipendenze/conflitti da altri programmi; il port installato e' a tutti gli effetti un package.
Ad esempio questo e' il mio desktop Gnome 2.4.1 interamente generato dal port gnome2-lite:

N.B.: FreeBSD 5.2 - RELEASE conterra' i packages necessari ad installare Gnome 2.4.0.

Queste invece sono le applicazioni internet che utilizzo: Mozilla ed Evolution


Freshports.org e' il sito per chi vuole trovare le ultime novita' in fatto di port!

Per quanto riguarda gli applicativi office, oltre al mammouth OpenOffice 1.1, vi sono applicativi praticamente per tutto a partire dal word processing per finire al'imaging:


Conclusioni

FreeBSD, il piu' noto e diffuso dei sistemi operativi *BSD, raggiunge con la release 5.2 quasi tutti gli obiettivi prefissati dal Core Team, tuttavia bisognera' attendere la 5.3 per avere un sistema production- ready; nel frattempo se avete voglia di provare un sistema Unix stabile e sicuro non dovete far altro che aspettare la fine di gennaio...


Paky Brandonisio