Loading AI tools
sistemi operativi utilizzanti controparti del progetto GNU insieme al kernel Linux Da Wikipedia, l'enciclopedia libera
Una distribuzione Linux (anche distribuzione GNU/Linux ove includa elementi GNU, gergalmente detta distro), in informatica, è una distribuzione software di un sistema operativo realizzato a partire dal kernel Linux, un sistema di base GNU e solitamente anche diversi altri applicativi (talvolta anch'essi parte di GNU). Tali distribuzioni appartengono quindi alla sottofamiglia dei sistemi operativi GNU e, più in generale, alla famiglia dei sistemi Unix-like, perché ispirati a Unix e in certa misura compatibili con esso.[1]
Prima della comparsa delle distribuzioni, chiunque avesse voluto far uso di Linux doveva necessariamente essere un esperto dei dettagli di Unix, necessitando pertanto della conoscenza non solo di quali librerie ed eseguibili fossero necessari per far partire e funzionare correttamente 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:
Le distribuzioni Linux si proposero come un'alternativa ai sistemi operativi MS-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[3], 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.
Tutte le distribuzioni sono sviluppate in maniera indipendente, da relative community, a partire dal kernel Linux comune (sia pur in versioni diverse e spesso personalizzate), e si differenziano tra loro per il cosiddetto "parco software", cioè i pacchetti preparati e selezionati dagli sviluppatori per la distribuzione stessa, per il sistema di gestione del software, i repository e per i servizi di assistenza e manutenzione offerti. 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.
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]
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.
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.
Tra le interfacce grafiche più comuni utilizzate troviamo GNOME, KDE, MATE, LXDE, Xfce ecc...
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:
È 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.
Ciascuna distribuzione si appoggia a propri repository o a repository comuni a più distribuzioni, utilizzati congiuntamente al gestore di pacchetti per l'aggiunta di software.
Il Free Standards Group è un'organizzazione formata dai maggiori produttori di software ed hardware il cui obiettivo è di migliorare 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.
Di seguito è riportata una lista delle distribuzioni più popolari.
La maggioranza delle distribuzioni Linux non contiene esclusivamente software libero, ma anche, in misura ridotta, software proprietario (ad esempio driver, codec, tool e applicazioni), spesso per mancanza di software libero ugualmente funzionale. Tuttavia alcune distribuzioni hanno scelto di non includere software proprietario e di utilizzare Linux-libre, una versione del kernel Linux completamente libera. Infatti Linux contiene parti di codice oscurate e sotto licenze non libere.
La Free Software Foundation (FSF), sulla base delle Guidelines for Free System Distributions,[5] ha stilato una lista di distribuzioni Linux che contengono esclusivamente software libero.[6][7]
Lista in ordine alfabetico:
Si tratta di distribuzioni che forniscono raccolte preinstallate di giochi educativi in ambienti adatti a bambini a partire dall'età prescolare (in alcuni casi a partire dai due anni) fino agli inizi dell'adolescenza. Tutte le distribuzioni di questo tipo adattano l'ambiente da un punto di vista grafico, ed alcune semplificano anche in maniera consistente le modalità di utilizzo dell'ambiente. Normalmente vengono fornite anche delle raccolte di giochi di esclusivo divertimento, ma a volte vengono preinstallati anche dei programmi per sviluppare la creatività.
Non di rado vengono integrati dei filtri famiglia per proteggere i bambini dall'ottenimento di pagine inappropriate durante la navigazione in Internet. I giochi educativi inclusi non differiscono molto tra una distribuzione e l'altra, e comprendono giochi per l'apprendimento dell'uso del mouse e della tastiera, dell'alfabeto e delle sillabe, dei numeri e delle operazioni, di abilità di memorizzazione e ragionamento, fino ad attività più complesse come lo studio della geografia e delle scienze.
Ecco alcune delle distribuzioni per bambini attualmente esistenti:
Anche pensate per i bambini sono le distribuzioni appositamente concepite per le scuole, ma esse non sono espressamente concepite per l'uso sul singolo calcolatore domestico, ma piuttosto su reti scolastiche di calcolatori ed inoltre si rivolgono a bambini in età scolare. A tal proposito si veda la pagina Edutainment, dove si troverà anche una lista delle distribuzioni ad uso scolastico.
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 o per indagini di Computer Forensics. Le distribuzioni live per uso server generalmente non hanno interfaccia grafica, ma solo interfaccia a riga di comando.
La possibilità di intervenire sul kernel Linux e la comparsa di molti appassionati ne hanno suggerito l'utilizzo nell'elettronica dei dispositivi integrati. Infatti a partire dal 2009, è possibile reperire apparecchiature commerciali (quali router, smartphone o tablet) dotate di sistemi Linux fortemente ridotti. Esistono anche distribuzioni Linux pensate per essere utilizzate su tali sistemi embedded, ad esempio OpenWRT, FreeWRT, Android (sviluppato da Google), MeeGo, Zeroshell o Ångström.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.