Distribuzioni-Linux-BSD-Unix

Distribuzioni

Cos’è una Distribuzione?

leave a comment »

linuxlogo

Distribuzioni Linux

Una distribuzione Linux, detta anche distro, è una distribuzione software che include un kernel Linux e un insieme variabile di altri strumenti e applicazioni software, siano esse freeware, open source o commerciali. Queste distribuzioni includono anche strumenti software che guidano l’utente nel processo di installazione del sistema. Recentemente hanno cominciato a diffondersi anche distribuzioni cosiddette live, che non richiedono installazione, e il cui bootstrap può avvenire direttamente da un supporto come CD o DVD.

Società come Red Hat, Novell (per SUSE), Mandriva e Canonical Ltd (per Ubuntu), e progetti di comunità come Debian, Slackware e Gentoo, assemblano e testano le varie componenti software rilasciando distribuzioni personalizzate e variegate, per la maggior parte gratuite. Ci sono in questo momento più di 300 progetti di distribuzioni Linux in attivo sviluppo, revisione e miglioramento che si differenziano per scelte progettuali, come i vari software di mantenimento del sistema per l’installazione, la rimozione e la configurazione del software.

Storia

Prima della comparsa delle distribuzioni, chiunque volesse far uso di Linux doveva necessariamente essere un esperto di Unix, con la consapevolezza non solo di quali librerie ed eseguibili fossero necessari per far partire e funzionare il sistema, ma anche di alcuni importanti dettagli riguardanti la configurazione ed il posizionamento dei file nel sistema stesso.

Le distribuzioni Linux apparvero poco tempo dopo che il kernel Linux iniziò ad essere utilizzato da persone al di fuori del team originale di sviluppatori Linux. Questi ultimi infatti erano più interessati a sviluppare il sistema operativo piuttosto che programmi applicativi, interfacce utente, e comode pacchettizzazioni.

Le prime distribuzioni furono:

  • MCC Interim Linux, che fu reso disponibile per il download pubblico dal server ftp dell’Università di Manchester nel febbraio 1992;
  • TAMU, creata da alcuni sviluppatori indipendenti della Texas A&M University più o meno nello stesso periodo, e
  • SLS (Softlanding Linux System).

Nessuna di queste distribuzioni era ben mantenuta, così Patrick Volkerding rilasciò una distribuzione basata su SLS, che chiamò Slackware; questa è la distribuzione più vecchia ancora attiva.

Le distribuzioni Linux si proposero come una alternativa ai sistemi operativi DOS e Microsoft Windows per i PC IBM, al sistema Mac OS per i computer Apple Macintosh, ed a altre versioni proprietarie di Unix. Molti dei primi utenti erano già abituati a Unix per motivi di lavoro o studio. Questi passarono a Linux per la stabilità, il basso (o spesso nullo) costo, e grazie all’inclusione del codice sorgente di tutto o quasi il software incluso.

Le distribuzioni erano originariamente solo una questione di convenienza, ma oggi sono diventate il riferimento principale anche per i guru di Unix e Linux. Al momento, Linux è più popolare nel mercato dei server, soprattutto per i server Web e database (vedi anche LAMP), piuttosto che nel mercato dei computer da scrivania.

Composizione

Una tipica distribuzione Linux comprende un kernel Linux, librerie e strumenti GNU, software addizionale, documentazione, un server grafico, un window manager, ed un desktop environment. La quasi totalità del software incluso è FOSS (Free and Open Source Software – Software libero Open Source) che è distribuito dagli sviluppatori sia in forma precompilata che come codice sorgente, cosa che permette agli utenti di modificare e ricompilare il codice originale a proprio piacimento. Una parte del software incluso in alcune distribuzioni può essere proprietario e non disponibile sotto forma di sorgenti.

Molte distro forniscono un sistema di installazione simile a quello di altri moderni sistemi operativi. Distribuzioni self-hosting come Gentoo Linux forniscono il codice sorgente di tutto il software ed includono le versioni eseguibili solo di un kernel base, compilatore e programma di installazione; questo programma compila tutto il software per la specifica architettura del computer dell’utente.

Gestioni dei pacchetti

Le distribuzioni sono normalmente composte da pacchetti (packages), ed ognuno di essi contiene una specifica applicazione o componente: ad esempio, ci possono essere pacchetti contenenti una libreria per la gestione del formato di immagini PNG, oppure una serie di font, o un browser web. Un pacchetto è normalmente fornito come codice compilato, e la sua installazione o rimozione è gestita in maniera più sofisticata rispetto ad un semplice programma di archiviazione come tar. Il programma preposto a queste funzioni è detto il sistema di gestione dei pacchetti (package management system o PMS) della distribuzione. Ogni pacchetto dedicato ad un PMS contiene delle meta-informazioni come descrizione, versione, dipendenze, ecc.. Il sistema di gestione dei pacchetti tiene in considerazione queste meta-informazioni per permettere ricerche, aggiornamenti automatici a versioni più aggiornate, per controllare che tutte le dipendenze di un pacchetto siano soddisfatte e/o soddisfarle automaticamente. I sistemi di gestione dei pacchetti includono:

  • RPM — adesso RPM Package Manager, ma in origine Red Hat Package Manager, originariamente introdotto da Red Hat ma adesso usato in molte distribuzioni.
  • deb — Debian package, originariamente introdotto da Debian ma anche usato da altri come Knoppix e Ubuntu.
  • .tgz o tar.gz — standard tar + gzip, a volte con ulteriori file di controllo — usato da Slackware ed altri, o a volte per la distribuzione di pacchetti molto semplici “fatti in casa”.
  • ebuild — file contente informazioni su come ottenere, compilare ed installare un pacchetto nel sistema Portage di Gentoo Linux attraverso il comando emerge. Tipicamente queste sono installazioni basate sulla compilazione di sorgenti, nonostante anche alcuni pacchetti binari possano essere installati in questo modo.
  • recipe — file contente informazioni su come ottenere, decomprimere, compilare ed installare un pacchetto nella distribuzione Gobo Linux. Questo sistema è simile a quello di Gentoo ma più povero di funzionalità.
  • ABS — acronimo di “Arch Build System”, permette di creare pacchetti .pkg.tar.gz installabili per Arch partendo dal codice sorgente.
  • PacMan — acronimo di package manager, permette la gestione di pacchetti binari per Arch.

È presente inoltre la possibilità di compilare in proprio le applicazioni direttamente dal sorgente disponibili, qualora non siano disponibili i binari precompilati. Sebbene la compilazione spesso comporti alcune difficoltà è possibile che l’applicazione mostri un incremento delle prestazioni. Seguendo questa logica alcune distribuzioni (es. Gentoo) offrono la possibilità di compilare l’intero sistema operativo

Anche se le distribuzioni Linux tipicamente contengono molto più software dei sistemi operativi proprietari, è pratica comune per gli amministratori installare del software non incluso nella distribuzione. Un esempio potrebbe essere una versione di una applicazione più nuova rispetto a quella fornita con la distribuzione, oppure una applicazione alternativa rispetto a quella predefinita (ad es. KDE invece di Gnome o viceversa). Se il software da installare è fornito sotto forma di sorgenti, è necessaria una compilazione locale. Tuttavia, se viene installato del software aggiuntivo, lo “stato” del sistema locale può perdere la sincronia con lo stato del database del sistema di gestione dei pacchetti. Se questo avviene, l’amministratore locale deve prendere dei provvedimenti per assicurare che tutto il sistema si mantenga correttamtente aggiornato, in quanto il package manager non sarà più in grado di farlo automaticamente.

Molte distribuzioni installano i pacchetti, inclusi il kernel ed altre componenti del sistema operativo, in una configurazione predeterminata. Poche ormai richiedono o addirittura permettono modifiche alla configurazione al momento della prima installazione. Questo rende l’installazione stessa meno complessa, specialmente per gli utenti più inesperti, ma non è sempre accettabile. Per alcuni scopi specifici, parte del software deve essere configurato con accuratezza per essere utilizzato, per lavorare correttamente insieme ad altri programmi, o per essere sicuro. Per questo motivo gli amministratori locali sono spesso obbligati a spendere del tempo per controllare e riconfigurare il software.

Alcune distribuzioni offrono grandi possibilità di configurare e personalizzare praticamente tutto il software incluso, ma non tutte. Alcune distribuzioni includono strumenti di configurazione per coadiuvare questo processo, ma è importante ricordare che tali personalizzazioni sono tipicamente così specifiche che non è possibile per nessuno, inclusi i progettisti delle distribuzioni, preconfigurare il software fornito per le specifiche esigenze di ognuno. Come tutti i sistemi operativi, Linux e le sue distribuzioni richiedono delle operazioni di amministrazione e configurazione ai propri utenti/operatori/proprietari. Quello in cui i distributori di Linux differiscono dai venditori degli altri sistemi operativi consiste nel fatto di non dire che “nessuna operazione di amministrazione è richiesta.” Questa onestà può preoccupare utenti potenziali che vengono convinti dalle dichiarazioni pubblicitarie degli altri sistemi.

Sostituendo tutto ciò che è contenuto in una distribuzione, un amministratore può raggiungere uno stato “distribution-less”, cioè privo di distribuzione: tutto viene ottenuto sotto forma di sorgenti, compilato, configurato ed installato localmente. È possibile costruire un sistema di questo tipo da zero, senza bisogno di alcuna distribuzione di partenza. C’è solo bisogno di un modo di generare i primi binari finché il sistema non diventa self-hosting (capace di generare se stesso). Questo può essere fatto tramite la compilazione su un altro sistema capace di produrre codice eseguibile per la macchina di destinazione (anche attraverso la cross-compilazione). Una guida per costruire un sistema simile è ad esempio Linux From Scratch.

Scegliere una distribuzione Linux

Le differenze nelle distribuzioni Linux sono di carattere tecnico, organizzativo e filosofico. Quelle di carattere tecnico consistono in un diverso supporto dei dispositivi hardware e nella configurazione del sistema e dei pacchetti software. Quelle di carattere organizzativo sono spesso motivate da scelte tecniche ma anche da ragioni storiche o filosofiche.

Installazione

Il più comune metodo di installazione avviene tramite bootstrap da un CD contenente il programma di installazione ed altro software. Questi CD possono essere masterizzati a partire da un file di immagine ISO, comprati a piccolo costo, o ottenuti come parte di un pacchetto che include anche manuali e software commerciale addizionale. Alcune distibuzioni come Debian possono essere installate a partire da un ristretto numero di floppy disk. In seguito, una volta installato il sistema di base, è possibile integrarlo ottendo i restanti pachetti da internet o da CD.

L’installer Anaconda, uno dei programmi di installazione più usati, è implementato in Red Hat, Fedora Core ed altre distribuzioni per semplificare il processo di installazione.

Ancora un altro modo per installare Linux è installarlo su un potente computer che funga da server ed usare macchine meno potenti (magari senza disco rigido, con meno memoria ed una CPU più lenta) come client “stupido” della rete. I client possono eseguire il bootstrap attraverso la rete, mostrando i risultati e passando informazioni al server sul quale girano tutte le applicazioni. I client possono essere normali PC con l’aggiunta di un bootloader di rete sotto forma di software inserito in un drive oppure integrato nel controller di rete, cosicché parte del carico del server può essere trasferito sulla macchina client. Il risparmio economico derivante invece dall’uso di client stupidi può invece essere sfruttato per incrementare lo potenza di elaborazione o di immagazzinamento dati del server.

Ci sono anche alcune distro pensate per risiedere su una memoria usb, permettendo all’utente la portartabilità totale del proprio sistema in uno spazio minuscolo(una chiave USB, ad esempio) senza la necessità di portarsi in giro altro hardware. Ovviamente per poter usare tali sistemi è comunque necessario un pc che permetta il boot dalle porte usb. Alcune, tra le più diffuse, distribuzioni di questo tipo sono Puppy Linux e Damn Small Linux.

Installazione su una piattaforma pre-esistente

Alcune distribuzioni, come WinLinux, permettono all’utente di installare Linux su un sistema operativo pre-esistente. Linux viene installato su una partizione Windows dell’hard-disk e viene eseguito all’interno di Windows stesso. Un altro esempio di questo tipo di approccio è rappresentato da coLinux.

Anche le Macchine virtuali (ad esempio VirtualBox, Virtual PC, qemu o VMware Workstation) consentono l’esecuzione di Linux dall’interno di un altro sistema operativo. I software VM simulano una macchina nel quale viene installato Linux. Dopo aver fatto ciò, la macchina virtuale può essere avviata proprio come fosse un computer indipendente.

Dimostrazioni

La difficoltà del passare ad un sistema nuovo, diverso da quello a cui si è abituati, rappresenta un grosso ostacolo che rallenta sensibilmente l’adozione di Linux come sistema operativo per l’utenza domestica e piccoli uffici (sia PC desktop che laptop).

Allo scopo di ovviare a questo problema e permettere di provare Linux, distribuzioni come Knoppix, Ubuntu e molte altre, possono essere eseguite direttamente da “live CD” evitando l’installazione su hard disk. Allo stesso modo, alcune micro-distribuzioni come tomsrtbt possono essere addiritura eseguite da un unico floppy disk.

I Linux User Group (Gruppi di utenti Linux), anche detti LUGs, organizzano spesso manifestazioni pubbliche attraverso le quali fanno conoscere Linux ed il suo funzionamento a tanti potenziali utenti, aiutando chi si appena avvicinato all’utilizzo di questo sistema operativo nell’installazione e nella configurazione dei propri computer.

L’approccio più rapido al mondo Linux resta probabilmente quello di Workspot, che utilizza VNC per fornire una dimostrazione online del funzionamento di un desktop Linux.

Interoperabilità e compatibilità tra le varie distribuzioni

Il Free Standards Group è un’organizzazione formata dai maggiori produttori di software ed hardware il cui obiettivo è di migliore l’interoperabilità tra le diverse distribuzioni. Tra gli standard proposti c’è il Linux Standard Base che definisce una comune ABI (Interfaccia Binaria per le Applicazioni), un unico sistema di pacchettizzazione ed una struttura per il Filesystem che preveda le stesse convenzioni sui nomi e le stesse directory basiliari in ogni sistema Linux. Questi standard, al momento, restano comunque poco diffusi anche tra le distribuzioni sviluppate dagli stessi produttori membri dell’organizzazione.

Annunci

Written by Federico Gaetano

18 aprile 2009 a 5:46 pm

Rispondi

Effettua il login con uno di questi metodi per inviare il tuo commento:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: