Distribuzione Linux

Da Wikipedia, l'enciclopedia libera.
bussola Disambiguazione – Se stai cercando altri significati, vedi Distribuzione.

Una distribuzione Linux (detta anche distribuzione GNU/Linux, gergalmente distro), è una distribuzione software che costituisce un sistema operativo basato sulla famiglia dei sistemi utilizzanti un kernel Linux, spesso corredato da elementi del progetto GNU. Tali distribuzioni appartengono della famiglia dei sistemi operativi cosiddetti Unix-like.

Storia[modifica | modifica sorgente]

Linea temporale che mostra lo sviluppo delle varie distribuzioni Linux.

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 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:

  • Il "Boot-root": una coppia di immagini per floppy disk distribuita da H. J. Lu. La prima, avviabile, conteneva il kernel, mentre la seconda forniva un set minimo di strumenti, provenienti dal progetto GNU, che permetteva di creare un filesystem e avere così un sistema operativo di base funzionante;[1]
  • MCC Interim Linux, distribuzione sviluppata dal Manchester Computing Centre dell'Università di Manchester nel febbraio 1992 e resa disponibile per il download pubblico dal server FTP sin dal novembre 1991;[2]
  • TAMU, creata da alcuni sviluppatori indipendenti della Texas A&M University più o meno nello stesso periodo;
  • Softlanding Linux System (SLS), creata da Peter MacDonald nell'agosto 1992;
  • Slackware creata da Patrick Volkerding nel 1993 e tuttora attivamente sviluppata;
  • Yggdrasil Linux, sviluppata dalla Yggdrasil, fu la prima distribuzione Plug-and-Play, ovvero in grado di configurarsi in base all'hardware rilevato.

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 un'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.

Attualmente diverse 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.

Caratteristiche[modifica | modifica sorgente]

Una distribuzione include un grande insieme variabile di programmi basati sul kernel Linux, inclusi sotto forma di pacchetti e solitamente distribuiti con licenza d'uso di tipo libero o open source, ma non mancano casi di freeware o altre licenze commerciali.

Una distribuzione include diverse librerie e utilità di sistema, e il solitamente anche una interfaccia grafica. Quest'ultimo è tipicamente costituito da un ambiente desktop, o almeno un gestore di finestre, in funzione sopra l'X Window System, mentre è del tutto assente in distribuzioni destinate ad uso server. Solitamente abbondano diversi programmi applicativi, ad esempio elaboratori di testo, fogli di calcolo, riproduttori multimediale, browser web, client di posta elettronica, PIM, eccetera.

Una tipica distribuzione comprende, in ordine crescente di astrazione, le seguenti componenti software, oltre alle relative documentazioni tecniche e manuali.

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 distribuzioni 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.

Installazione[modifica | modifica sorgente]

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 distribuzioni 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 ottenendo i restanti pacchetti da internet o da CD.

L'installer Anaconda, uno dei programmi di installazione più usati, è implementato in Red Hat, Fedora 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.

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 soggetto che creano distribuzioni di Linux differiscono dai venditori degli altri sistemi operativi consiste nel che i primi non affermano esplicitamente 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, nel senso che tutto viene così distribuito 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.

Ci sono anche alcune distro pensate per risiedere su una memoria usb, permettendo all'utente la portabilità 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 preesistente[modifica | modifica sorgente]

Alcune distribuzioni, come WinLinux, permettono all'utente di installare Linux su un sistema operativo preesistente. 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.

Le distribuzioni Live CD[modifica | modifica sorgente]

Exquisite-kfind.png Per approfondire, vedi Live CD.

A partire dalla seconda metà degli anni 2000 hanno cominciato a diffondersi notevolmente anche distribuzioni cosiddette Live CD, che non richiedono necessariamente un'installazione per l'utilizzo, e il cui bootstrap può avvenire direttamente da un supporto come CD, DVD o anche pen drive, tipicamente usate anche come testing del sistema da parte degli utenti.

Le distribuzioni live per uso server generalmente non hanno interfaccia grafica, ma solo interfaccia a riga di comando.

Gestione dei pacchetti software[modifica | modifica sorgente]

Exquisite-kfind.png Per approfondire, vedi Sistema di gestione 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 a 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 a 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 formati dei pacchetti nelle distribuzioni GNU/Linux sono generalmente:

  • RPM — originariamente introdotto da Red Hat ma adesso usato in molte distribuzioni, anche basate e/o derivate da quest'ultima.
  • 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 — formato usato da Slackware ed Arch Linux ed altri, o a volte per la distribuzione di pacchetti molto semplici "fatti in casa".
  • ebuild — file contenente 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 contenente 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.

È 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 di sistema installare del software non incluso nella distribuzione. Un esempio potrebbe essere una versione di un'applicazione più nuova rispetto a quella fornita con la distribuzione, oppure un'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 correttamente 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.

Interoperabilità e compatibilità tra le varie distribuzioni[modifica | modifica sorgente]

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 file system 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.

Modalità di promozione e diffusione[modifica | modifica sorgente]

La difficoltà del passare a 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). 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.

Allo scopo di ovviare a questo problema e permettere di provare Linux, distribuzioni come Knoppix, openSUSE, 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 addirittura eseguite da un unico floppy disk.

Ruolo importante a riguardo è svolto dai Linux user group (Gruppi di utenti Linux), anche detti LUG, che spesso organizzano 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.

In Italia la più importante è il Linux Day, manifestazione promossa dalla Italian Linux Society, che si tiene con cadenza annuale.[3]

Scelta della distribuzione[modifica | modifica sorgente]

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

Il sito web DistroWatch offre una panoramica di tutte le distribuzioni Linux più note, attive o meno, e mantiene una classifica delle distribuzioni, usando il page view come misura della popolarità relativa.[4]

Esempi di distribuzioni popolari[modifica | modifica sorgente]

Di seguito è riportata una lista delle distribuzioni più popolari.

  • Arch Linux: è una distribuzione a rilascio continuo, minimalista, veloce, leggera ed altamente personalizzabile. È poco adatta all'utenza comune, visto che l'installazione predefinita non prevede né l'ambiente desktop, né il server X, ed quindi è necessario utilizzare l'interfaccia a riga di comando per le procedure di compilazione ed installazione dei vari software applicativi.
  • CentOS: orientata al mercato aziendale, è derivata da Red Hat Enterprise Linux e mira ad offrirne un sostituto compatibile, libero e gratuito.
  • Chakra: distribuzione che mira ad offrire un sistema completo, è orientata al principio KISS ed incentrata sull'ambiente desktop KDE e le librerie Qt.
  • Debian: è una distribuzione contenente solo software libero, sostenuta da una comunità di volontari da tutto il mondo ed usata come base per molti altri sistemi operativi.
  • Fedora: distribuzione realizzata in stretta collaborazione con la comunità GNU/Linux, è sponsorizzata da Red Hat.
  • Gentoo: distribuzione dedicata agli utenti esperti, è nota per il suo sistema di gestione dei pacchetti che permette di installare le applicazioni direttamente dal codice sorgente.
  • Knoppix: è la prima distribuzione Live-CD avviabile da dispositivi rimovibili, senza bisogno di alcuna installazione.
  • Linux Mint: basata su Ubuntu, è equipaggiata di default con codec proprietari ed è disponibile con ambiente desktop Cinnamon, MATE, KDE o Xfce, che sostituiscono Unity.
  • Linux Mint Debian Edition (LMDE): è la versione di Linux Mint basata direttamente su Debian e con aggiornamenti continui.
  • Mandriva Linux: originariamente chiamata Mandrake Linux, punta all'utilizzo da parte degli utenti meno esperti con un sistema facile da utilizzare.
  • Mageia: è il nome di una associazione senza scopo di lucro e di una distribuzione GNU/Linux derivata da Mandriva Linux.
  • PCLinuxOS: inizialmente basata su Mandriva Linux e successivamente evolutasi in distribuzione indipendente, è nata da un progetto mirato ad ampliare i pacchetti presenti in Mandriva. È indirizzata essenzialmente all'utenza desktop.
  • Red Hat Enterprise Linux: è una distribuzione commerciale direttamente sviluppata da Red Hat, orientata al mercato aziendale.
  • Sabayon: basata su Gentoo e creata da un progetto italiano, mira ad offrire un sistema completo e ricco di pacchetti.
  • openSUSE: creata da sviluppatori volontari, è sponsorizzata da Novell.
  • SUSE Linux: è la versione commerciale di openSUSE sviluppata da Novell.
  • Slackware: una delle distribuzioni più longeve (nasce nel 1993), è essenziale ed elegante ed è oggi una delle più apprezzate e utilizzate dall'utenza esperta per la sua alta stabilità.
  • Ubuntu: attualmente la distribuzione più diffusa, è basata su Debian e si propone di offrire un sistema operativo completo e semplice da utilizzare, insieme alle sue derivate ufficiali:

Note[modifica | modifica sorgente]

  1. ^ (EN) Early Linux distributions. URL consultato il 18.05.2013.
  2. ^ (EN) MCC Interim Linux, Linux dictionary. URL consultato il 30 gennaio 2011.
  3. ^ LinuxDay – 22 ottobre 2011d a pcprofessionale.it, 10 ottobre 2011
  4. ^ DistroWatch. URL consultato l'8 maggio 2010.

Voci correlate[modifica | modifica sorgente]

Altri progetti[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]