Disclaimer :
La versione originale di questo articolo è stata pubblicata da IBM
developerWorks ed è di proprietà di Westtech Information Services. Questo
documento è una versione aggiornata dell'articolo originale, e contiene
numerosi miglioramenti apportati dal Gentoo Linux Documentation team.
Questo documento non è mantenuto attivamente.
|
Costruire una distribuzione, Parte 3
1.
L'autore si allontana da Linux e poi ritorna
Alla fine del precedente articolo, ho
descritto come lo sviluppo di Gentoo Linux è stato effettivamente bloccato da
un bug di idle-lockup che ho incominciato a notare non appena sono passato ad
una nuova scheda madre dual-Celeron (una Abit BP6). Poiché non ero in grado
di risolvere il problema e al tempo non avevo fondi per sostituire la mia
scheda madre, ho deciso di fermare lo sviluppo di Gentoo Linux e di passare
ad una FreeBSD. Avevo bisogno di un sistema funzionante e, poiché Linux si
bloccava ogni volta, era il momento ideale per diventare familiare con un
sistema operativo BSD. Così installai FreeBSD, incominciai ad imparare, e non
toccai più in nessun modo Linux per molti mesi.
Impressioni su FreeBSD
Dopo tutto, FreeBSD mi piaceva veramente. Sentivo che il sistema operativo
era stato progettato veramente bene e che quasi ogni parte del sistema aveva
un livello sostanzialmente alto di definizione che non avevo praticamente mai
trovato nel mondo Linux. Gradì molto il fatto che FreeBSD contenesse un
insieme completo di man page, diversamente da Linux dove molti programmi
hanno solamente la documentazione GNU info, che non gradisco molto
utilizzare.
Più di tutti, ero impressionato dal sistema di port di FreeBSD, la tecnologia
utilizzata per aggiornare il sistema. Diversamente dall'approcio Linux, i
port non utilizzavano pacchetti binari ma al loro posto compilavano
automaticamente ogni cosa in locale dai sorgenti originali. Sia che stessi
installando Samba sia che stessi aggiornando il sistema base, ogni cosa
veniva compilata direttamente sulla macchina locale. Questo approcio mi
attirò, ed era molto simile a quello che avevo creato sotto Gentoo Linux.
Sotto questo e molti altri aspetti, il design di FreeBSD andava d'accordo con
la mia sensibilità di sviluppatore e amministratore di sistema. Per questo
motivo, FreeBSD mi offrì un ambiente di lavoro confortabile per molti mesi e
sono felice di aver speso del tempo per diventare familiare con questo
sistema operativo eccellente.
I pro di FreeBSD
Molte delle differenze tra Linux e FreeBSD provengono dalle diverse strutture
di sviluppo che li caratterizzano. Lo sviluppo di Linux è molto
decentralizzato, e ci affidiamo alle distribuzioni per mettere insieme ed
unire i vari pezzi di Linux sparsi per Internet. Confrontate ciò con FreeBSD
e gli altri BSD (OpenBSD e NetBSD), dove c'è un team di sviluppo unificato
che lavora su di un unico insieme di sorgenti. Bene, ogni BSD ha il suo unico
insieme di sorgenti unificati. Questa può essere una cosa positiva ed ha come
conseguenza che FreeBSD non ha quel feeling di "messo insieme con le patch"
come molte delle distribuzioni Linux.
Successivamente, possiamo confrontare la tecnologia che sta sotto il cofano.
Molti dei fan di FreeBSD sosterranno che FreeBSD è predisposto meglio di
Linux per essere un server. Vi diranno che FreeBSD è meglio se sottoposto a
carichi pesanti e che ha uno stack TCP/IP migliore. Se confrontate Linux 2.2
o precedente con FreeBSD, devo ritenermi d'accordo. FreeBSD è un grande
sistema operativo per server, questo è certo. Ma, non limitiamoci a Linux 2.2
e precedenti. Mi è capitato di essere un grande fan dei kernel di test della
serie 2.4 che ho utilizzato. Sono veramente fantastici e contengono un buon
stack TCP/IP ed un sistema "netfilter" totalmente riprogettato che è
veramente esplosivo. In conclusione, penso che Linux sarà il sistema
operativo che definirà nuovi standard di performance e che renderà i server
Unix liberi persino più competitivi contro le loro controparti commerciali.
I contro di FreeBSD
Per quanto riguarda i sistemi desktop, piuttosto che nel mondo dei server,
non c'è veramente confronto -- l'azione è dove c'è Linux. Tutti gli ultimi
sviluppi dei sistemi desktop appaiono per primi su Linux, e Linux è avanti
per quanto riguarda il suo supporto delle schede grafiche con accelerazione
3D e delle schede audio. Con l'avvicinarsi di Linux 2.4, Linux continuerà il
suo predominio in quest'area.
Una delle cose che non gradivo per quanto riguarda FreeBSD è il suo utilizzo
del filesystem UFS. Mentre UFS è più affidabile e robusto di ext2, è anche
assolutamente lento. E' possibile utilizzare una estensione speciale di UFS
chiamata soft updates, che è in grado di velocizzare il filesystem aggregando
le operazioni di IO in blocchi più grandi. Mentre i soft updates migliorano
le performance di UFS enormemente, non mi sento di dire che UFS superi in
performance ext2 in nessun modo. Naturalmente, è più affidabile, così FreeBSD
finisce per battere Linux nella guerra dei filesystem. Ancora una volta,
questo è sicuramente vero per lo meno quando si confrontano le vecchie
distribuzioni linux 2.2 con FreeBSD.
Comunque, le cose cambiano quando iniziamo a confrontare i moderni Linux 2.2
e i Linux 2.4 con FreeBSD. ReiserFS (un nuovo filesystem con journalling
disponibile per Linux) è semplicemente fantastico. Linux ha inoltre ext3,
l'IBM JFS e XFS da tenere d'occhio, dai quali ci aspettiamo performance
eccellenti e pure affidabilità. Al momento, ReiserFS da un grande vantaggio
di velocità rispetto a FreeBSD ed è una delle ragioni per cui credo che Linux
2.4 volga a suo favore molte delle argomentazioni sulla superiorità di
FreeBSD su Linux.
Ritorno allo sviluppo di Gentoo Linux
Dopo alcuni mesi, decisi di riunirmi al mondo Linux e di rendere Gentoo Linux
funzionante su un nuovo sistema di sviluppo. Sulle prime, la decisione di
ricominciare lo sviluppo di Gentoo Linux era più una decisione d'affari --
avevo investito molto del mio tempo nel diventare un esperto di Linux, e
sarebbe stata una perdita buttare via tutta questa conoscenza rimanendo
attaccato a BSD. Comunque, poco dopo aver incominciato ad aggiornare Gentoo
Linux, trovai molte nuove ragioni per le quali era valsa la pena di ritornare
a Linux, vale a dire tutti i miglioramenti del filesystem e del kernel
menzionati precedentemente. FreeBSD era una casa pacifica, ma un po' troppo
noiosa, troppo calma. Linux è dove c'era l'azione, dove la maggior parte dei
progressi veniva fatta. Non c'è dubbio che se state cercando fervore e
innovazione, Linux è il posto dove stare.
Per me, l'era di Linux 2.2 fu una spiacevole delusione rispetto all'era 2.0,
ma l'era 2.4 prometteva che sarebbe valsa la pena di attenderla. Così nacque
Gentoo Linux, ed ero emozionato.
Ci fu un altro punto chiave nella rinascita di Gentoo linux -- Achim
Gottinger, la guida del mio team di sviluppo. Voglio dedicare un po' di
spazio per ringraziare Achim per avermi aiutato a ricominciare lo sviluppo di
Gentoo Linux. Incominciai a ricevere email da Achim poco prima del mio
ritorno nel mondo Linux. In quasi tutte le email, allegò qualche nuovo script
.ebuild (autobuild) per Gentoo Linux, o qualche bugfix di cui si sentiva
disperatamente il bisogno. Non appena ricominciai lo sviluppo di Gentoo
Linux, Achim continuò ad offrire il suo tempo e le sue risorse per aiutarmi a
far ritornare la distribuzione di nuovo sul suo percorso. Fino a tempi
recenti, Achim ed io eravamo le uniche due persone a lavorare su Gentoo
Linux, e questo per scelta. Poiché abbiamo entrambi una visione simile della
distribuzione e grazie alle abilità di Achim, riuscimmo a portare a termine
una quantità di lavoro tremenda e non ritenni mai che aggiungere un terzo
sviluppatore avrebbe aiutato in maniera significativa il nostro progresso.
Ora, Achim opera come guida dello sviluppo di Gentoo Linux e continua a
contribuire con grandi miglioramenti a Gentoo Linux su base quasi
giornaliera. Avevamo raggiunto il punto dove eravamo pronti affinché altri
incominciassero a lavorare sul nostro albero CVS e incominciammo ad espandere
gradualmente e con attenzione il team di sviluppo Gentoo Linux.
La nuova visione
Non ritengo che il tempo che spesi nel mondo BSD fosse in nessun modo sprecato.
Infatti, mi ha dato una grandissima opportunità per riflettere su ciò che
accadeva nell'intera comunità Linux e su come Gentoo Linux poteva aiutare a
migliorare le cose.
Nella nuova versione di Gentoo Linux, presi la decisione di non utilizzare
più pgcc, nè di utilizzare ottimizzazioni molto spinte per compilare tutti i
binari. Poiché la stabilità era la cosa più importante, avremmo utilizzato
ragionevolmente le ottimizzazioni ("-O2 -mpentium") ma avremmo provveduto ad
un modo facile per gli utenti di personalizzare queste ottimizzazioni a loro
piacere utilizzando il nostro sistema autobuild.
FreeBSD mi diede un'idea veramente buona di come un sistema di autobuild
dovesse funzionare. Decisi di aggiungere molte caratteristiche di FreeBSD per
rendere il nostro sistema di autobuild (ora chiamato Portage) un vero sistema
di port di nuova generazione.
Portage è il cuore di Gentoo Linux, ed è più di un semplice sistema di
manutenzione e gestione di pacchetti. Composto da una serie di build tool e
script, Portage vi consente di ricostruire l'intera distribuzione dai
sorgenti originali. Ma più importante per me, Portage dà all'utente un
accesso completo alla comprensione di come Gentoo Linux è stato creato. Per
quanto ci riguarda, ciò è veramente importante poiché significa che stiamo
documentando come creare una distribuzione mentre allo stesso tempo stiamo
portando avanti lo sviluppo di Gentoo Linux. E poiché Portage è facile da
utilizzare e da comprendere, speriamo che consenta di mostrare gli interni di
Linux ad ancora più gente, così che altri possano incominciare a contribuire
ai nostri sorgenti e script.
Portage è il nostro modo di aprire la tecnologia di Linux agli altri.
Studiando gli script di autobuild, potete vedere come tutti i vari pacchetti
si mettano assieme in un'unica entità. Se necessario, potete recuperare il
nostro intero albero CVS e lavorare ad esso, producendo la vostra
distribuzione personalizzata o la vostra tecnologia basata su Linux. Crediamo
che questa sia una cosa buona -- vogliamo dare alle persone la conoscenza di
cui necessitano per portare Linux in nuovi reami.
Interessi Commerciali
Sin dagli inizi, ci sono state molte persone con differenti background
coinvolti nello sviluppo di Gentoo Linux. E io non mi sorpresi di notare che
i nostri sviluppatori avevano delle opinioni selvaggiamente differenti su
come avremmo dovuto approciare i fini commerciali di Gentoo Linux.
Sostanzialmente, c'erano due gruppi di sviluppatori: un gruppo era
generalmente opposto ad attività a scopo di lucro, mentre l'altro gruppo era
eccitato dall'idea di aiutare Gentoo Linux a diventare un prodotto
commerciale di successo. Questa era una divisione che ci si aspettava; il
primo gruppo vedeva un coinvolgimento commerciale come un'influenza
guastante, mentre il secondo non vedeva una tale associazione negativa.
Nei giorni di Enoch, ero solito esitare per quanto riguardava questo problema e
non sapevo veramente quale fosse l'approcio corretto. Riconobbi il fatto che le
distribuzioni come Debian fossero impegnate nella distribuzione libera del loro
software. Mi piacque. Alla pari delle altre distribuzioni commerciali,
facilitavano la vita degli utenti offrendo istruzioni dettagliate sul loro sito
Web. Questa era una cosa positiva e qualcosa che intendavamo emulare.
Allo stesso tempo, desideravo realmente che Gentoo Linux divenisse
commercialmente un successo. Mi sono sforzato di trovare un bilancio, ma non ne
ho mai trovato uno fino a tempi recenti.
Che fare?
Quindi, come stiamo programmando di bilanciare gli interessi commerciali e
non-commerciali? La chiave è ricordarsi delle nostre fondamenta -- le
fondamenta di Gentoo Linux sono il sofware Open Source. Quindi le basi di
tutti i nostri sforzi devono focalizzarsi sull'Open Source. Non è sufficiente
ringraziare semplicemente il software Open Source, o semplicemente
utilizzarlo. Dobbiamo anche incoraggiare il suo sviluppo e diffusione e non
opporre mai gli atteggiamenti volti ad un ritorno economico. Ciò che conta di
più è che non dobbiamo mai strutturare il nostro modello di affari in modo da
far sì che ci sia la tentazione di restringere la distribuzione libera dei
sorgenti. Il nostro team di sviluppo necessita di essere aperto e accessibile
al pubblico e la libera distribuzione di Gentoo Linux non deve solo essere
consentita, ma anche incoraggiata. Dobbiamo essere avvocati dell'Open Source,
non solo a parole, ma anche con i fatti.
Se una compagnia desidera utilizzare Gentoo Linux per una tecnologia
commerciale basata su Linux, può semplicemente prelevare il contenuto del
nostro albero CVS ed incominciare ad utilizzarlo, poiché il nostro lavoro è
distribuito sotto GPL. Non vogliamo limitare l'utilizzo del nostro lavoro in
nessun modo, tranne che per assicurarci che tutti i prodotti derivati siano
conformi alla GNU General Public License.
Vorremmo che il maggior numero di persone possibile benefici del nostro
lavoro. ma gradiremmo anche beneficiare quanto più possibile dei vostri
miglioramenti a Gentoo Linux. Se siete parte di una compagnia che utilizza
Gentoo Linux come base per il vostro prodotto, speriamo che voi mandiate ogni
miglioramento liberamente distribuibile a noi così da poterlo aggiungere al
nostro albero CVS. In questo modo, tutti ne beneficiano. Possiamo continuare
a mantenere e migliorare le vostre aggiunte e voi di conseguenza potete
beneficiare di questi miglioramenti. Vogliamo incoraggiare la collaborazione
tra entità commerciali e non-commerciali. In questo modo, sia gli
amministratori di sistema che utilizzano Gentoo Linux presso il loro ISP che
le corporazioni che realizzano prodotti server commerciali possono
beneficiare ognuno dei miglioramenti e dei fix dell'altro a Gentoo Linux. E'
giunto il momento di promuovere lo scambio libero di codice tra tutti. Solo
l'Open Source lo rende possibile.
Cosa ci riserva il futuro?
Al momento, siamo sul punto di rilasciare Gentoo Linux 1.0 (potrebbe essere
disponibile al momento in cui leggerete questo articolo su developerWorks). Ma
cosa ci riserva il futuro?
Muovendoci verso la 2.0, spero di continuare a migliorare Portage, la
tecnologia cuore di Gentoo Linux. Ogni miglioramento consistente a Gentoo
Linux incomincia generalmente con un miglioramento a Portage. Vorrei
continuare il processo di conversione della maggior parte del codice da bash
a python, che ci consentirà di aggiungere nuove funzionalità come il design
orientato agli oggetti al nostro sistema di autobuild.
In aggiunta ai cambiamenti a Portage, speriamo di continuare a far crescere
lentamente e con attenzione il nostro team di sviluppo, trovando sviluppatori
esperti che condividano la nostra visione. Quando il nostro team di sviluppo
crescerà, saremo in grado di espandere ampiamente il numero di script di
autobuild disponibili per Gentoo Linux. Ma persino più importante di questo,
un team di sviluppo leggermente più largo ci fornirà le risorse di cui
abbiamo bisogno per continuare a mantenere Gentoo Linux in testa alla
tecnologia Linux. Qui è dove c'è il divertimento :)
Speriamo inoltre che le compagnie di tecnologie Linux commerciali sceglieranno
Gentoo Linux come basi per i loro prodotti. Noi abbiamo attualmente una tale
relazione e speriamo di averne altre in futuro. Questi tipi di collaborazioni
promettono di essere un grande divertimento e di essere un grande beneficio per
tutti gli utenti Gentoo Linux.
Alla fine, il nostro obiettivo principale è di contribuire con qualcosa di
significativo alla comunità Linux. Sebbene ci siano molte distribuzioni Linux
tra cui scegliere, sappiamo che Gentoo Linux offre qualcosa che in realtà non
è disponibile da nessun'altra parte. Siamo eccitati per quanto riguarda il
futuro dello sviluppo di Gentoo Linux e speriamo che lo siate pure voi.
Risorse
Riguardo all'autore
Daniel Robbins vive in Albuquerque, Nuovo Messico. Era il presidente/CEO di
Gentoo Technologies Inc., il Chief Architect del Progetto Gentoo ed è autore
di molti libri pubblicati da MacMillan: Caldera OpenLinux Unleashed, SuSE
Linux Unleashed e Samba Unleashed. Daniel è entrato in contatto con i
computer in un certo senso sin dalle scuole medie inferiori, quando si
confrontò con il linguaggio di programmazione Logo e con una potenziale dose
letale di Pac Man. Questo probabilmente spiega perché ha operato come Lead
Graphic Artist presso SONY Electronic Publishing/Psygnosis. Daniel gradisce
spendere tempo con sua moglie Mary e con la sua nuova figlia, Hadassah.
Potete contattare Daniel tramite l'email drobbins@gentoo.org.
|