Gentoo Logo

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.



Stampa

Aggiornato il 9 ottobre 2005

Oggetto: Questo articolo conclude la sua storia -- riguardo a come ha ultimato la creazione della sua distribuzione, chiamata Gentoo Linux. Conclude la serie di articoli spiegando come abbandonò il mondo Linux per muoversi verso FreeBSD per poi tornare nel mondo Linux, ricominciando lo sviluppo di Gentoo Linux sotto una nuova prospettiva. Oltre che comparare Linux e FreeBSD sotto un certo numero di aspetti, descrive anche il progresso dell'attuale sviluppo di Gentoo Linux e condivide una visione futura per la distribuzione.

Daniel Robbins
Autore

Gianni Costanzi
Traduttore

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.