Linux

famiglia di sistemi operativi di tipo Unix-like utilizzanti il kernel Linux

Template:Infobox SO Linux (o GNU/Linux) è un sistema operativo libero di tipo Unix (o unix-like) costituito dall'integrazione del kernel Linux con elementi del sistema GNU e di altro software sviluppato e distribuito con licenza GNU GPL o con altre licenze libere. Linux, in realtà, è il nome del kernel sviluppato da Linus Torvalds a partire dal 1991 che, integrato con i componenti già realizzati dal progetto GNU (compilatore GCC, libreria glibc e altre utility) e da software di altri progetti, è stato utilizzato come base per la realizzazione dei sistemi operativi open source e delle distribuzioni che vengono normalmente identificate con lo stesso nome.

Secondo Richard Stallman, fondatore del progetto GNU, e secondo la Free Software Foundation, la dicitura Linux (senza prefisso "GNU/") per l'intero sistema operativo sarebbe erronea, in quanto il nome Linux è attribuibile al solo kernel e il sistema, strutturato a partire dai componenti dell'originale progetto GNU, dovrebbe più propriamente chiamarsi GNU/Linux. Secondo altri e secondo l'uso della maggior parte degli utenti e degli sviluppatori e delle società coinvolti nello sviluppo del sistema operativo e del software ad esso collegato, il nome Linux è ormai divenuto sinonimo di sistema "Linux based", cioè di sistema basato sul kernel Linux.

Molto conosciuto nell'uso server, Linux gode del supporto di società come IBM, Sun Microsystems, Hewlett-Packard, Red Hat e Novell ed è usato come sistema operativo su una gran varietà di hardware; dai computer desktop ai supercomputer, fino a sistemi embedded come cellulari e palmari, e ai netbook.

Sebbene non sia insostituibile per questo scopo, è anche il sistema operativo più comunemente usato per eseguire Apache, MySQL e PHP, i software alla base della maggior parte dei server web di tutto il mondo. Le iniziali di questi tre progetti, insieme all'iniziale della parola Linux, hanno dato origine all'acronimo LAMP.

Con l'evoluzione di ambienti desktop come KDE e GNOME, il sistema offre una interfaccia grafica simile a quella di Microsoft Windows o di Mac OS X, più vicina alle esigenze degli utenti meno esperti, rendendo il passaggio da un sistema all'altro meno traumatico.

Storia di Linux

  Lo stesso argomento in dettaglio: Linux (kernel) e Controversia sul nome GNU/Linux.

Inizi

 
Linus Torvalds

Il kernel Linux vede la luce nel 1991 grazie al giovane studente finlandese Linus Torvalds che, appassionato di programmazione, era insoddisfatto del sistema operativo Minix (sistema operativo unix-like destinato alla didattica, scritto da Andrew Tanenbaum, professore ordinario di Sistemi di rete all'università di Amsterdam), poiché supportava male la nuova architettura i386 a 32 bit, all'epoca tanto economica e popolare. Così Linus decise di creare un kernel unix con lo scopo di divertirsi e studiare il funzionamento del suo nuovo computer, che era appunto uno 80386.

Inizialmente, Linux (il sistema operativo basato sul kernel programmato da Linus) per girare utilizzava, oltre al kernel di Linus, lo userspace di Minix. Successivamente, Linus decise di rendere il sistema indipendente da Minix, anche perché non ne gradiva la licenza che lo rendeva liberamente utilizzabile solo a fini didattici e decise, quindi, di sostituire quella parte del sistema operativo col software del progetto GNU. Per fare ciò, Linus doveva cambiare licenza e adottare la GPL, che tra l'altro considerava buona per il suo sistema operativo a prescindere dal software GNU stesso. E così la licenza cambiò in GPL.

Linux, all'inizio, era un semplice emulatore di terminale scritto in C e assembly, e non aveva bisogno di appoggiarsi a un sistema operativo. L'emulatore di terminale avviava e gestiva due thread: uno per mandare segnali alla porta seriale, uno per riceverli; quando poi Linus ebbe bisogno di leggere e scrivere file su disco, questo emulatore fu esteso in modo che potesse gestire un file system. Lentamente, questo programma si trasformò in un intero kernel in grado di gestire un sistema operativo e Linus iniziò a documentarsi sulle specifiche POSIX, chiedendo assistenza sul newsgroup[1]. La prima versione del kernel Linux, la 0.01, fu pubblicata su Internet il 17 settembre 1991 e la seconda nell'ottobre dello stesso anno.

Torvalds preferiva chiamare Freax il kernel a cui stava lavorando ma Ari Lemke, assistente alla Helsinki University of Technology che gli aveva offerto lo spazio FTP per il progetto (ftp.funet.fi), preferì assegnare alla subdirectory dedicata il nome alternativo di lavorazione Linux.[2]

Sin dalla versione 0.01 si poteva compilare e far partire la shell GNU Bash. Fino alla versione 0.10 era richiesto un computer con Minix per configurare, compilare e installare Linux perché quest'ultimo usava il filesystem del sistema sul quale si appoggiava; dalla versione 0.11 poteva essere compilato da Linux stesso. Presto i sistemi Linux superarono Minix in termini di funzionalità: Torvalds e altri sviluppatori della prima ora di Linux adattarono il loro kernel perché funzionasse con i componenti GNU ed i programmi in user-space per creare un sistema operativo completo, pienamente funzionante e libero.

Linux e la rete

 
KDE 4 Desktop

Nella primavera del 1992 l'hacker Orest Zborowski riuscì a rendere eseguibile il server X sulla versione 0.12 di Linux. Per far ciò, Orest dovette implementare tutta la struttura degli Unix Domain Socket indispensabili a X Window e quindi un primo livello socket sul quale venne poi costruita tutta l'infrastruttura di rete di Linux. In realtà, il tutto era imbastito in maniera un po' caotica e non era ben integrato all'interno del kernel ma Linus accettò comunque la patch perché con essa era possibile sia utilizzare X, sia utilizzare tale infrastruttura per dotare Linux di uno stack di rete. Entusiasta della novità, Linus rilasciò, dopo la versione 0.13, la versione 0.95, senza pensare a tutti i problemi di sicurezza che la rete avrebbe comportato. Per rimediare alla leggerezza, nei due anni che trascorsero dalla 0.95 alla 1.0, Linus dovette utilizzare sia un ulteriore numero per indicare il livello di patch sia le lettere dell'alfabeto (sino alla versione 0.99.15Z, 0.99 15º livello di patch, revisione Z).

La versione 1.0

Il 14 marzo 1994 il 16º livello di patch del kernel 0.99 divenne Linux 1.0. Fu lo stesso Linus Torvalds a presentare la prima versione stabile all'Università di Helsinki.

 
L'idea alla base di Tux, la mascotte del kernel Linux, è nata mediante uno scambio di e-mail in una mailing list pubblica.

Oggi

Oggi[quando?] Torvalds continua a dirigere lo sviluppo dei kernel, mentre altre parti del sistema, come le componenti GNU, sono sviluppate separatamente. Il compito di fornire un sistema integrato, che combina tutte le componenti di base con le interfacce grafiche (come per esempio GNOME o KDE, che a loro volta si basano sulla presenza dell'X Window System) e con il software applicativo, viene ora svolto dalle distribuzioni. Nel 1996 fu scelto come logo ufficiale di Linux un pinguino disegnato da Larry Ewing e ad esso venne dato il nome di Tux come abbreviazione di Torvalds UniX; altre fonti sostengono si tratti dell'abbreviazione di TUXedo, termine statunitense che indica lo smoking, riferendosi alla livrea bianca e nera dei pinguini (che è d'altronde più comunemente paragonata per il suo aspetto al frac, cui il termine tuxedo, pure con diversi significati in vari paesi, non fa mai riferimento). Linux è molto usato soprattutto come server in ambienti di produzione o in dispositivi embedded (PVR, telefoni ecc.) ed ha una discreta diffusione in ambiente desktop (circa l' 1% dei PC). Anche l'iniziale ampia diffusione sui netbook ha lasciato il passo a Windows XP, pur mantenenedo una quota di penetrazione significativamente superiore a quella dei pc desktop/notebook.

Per quanto riguarda il kernel vero e proprio, Torvalds a settembre 2009 ha dichiarato che esso è diventato troppo "grasso" e non più veloce e scattante rispetto a quando l'aveva progettato. Riconosce, però, che questo "ingrassamento" non può essere visto solo come una cosa negativa perché significa che Linux ha molta più compatibilità rispetto al passato.[3]

Il nome

Il nome Linux, a dispetto dell'assonanza tra il nome dell'ideatore e quello del sistema (LINus UniX), è da attribuire a Ari Lemke, l'amministratore che rese per primo disponibile Linux su Internet via FTP. In particolare, Linux era il nome della directory in cui risiedevano i file del nuovo sistema operativo. Il nome scelto da Torvalds era Freax, una combinazione tra "free", "freak" e "x", per indicare la caratteristica di un sistema Unix-like.

Le distribuzioni

  Lo stesso argomento in dettaglio: Distribuzione Linux.

Non esiste un'unica versione di Linux ma esistono diverse distribuzioni (chiamate anche distro), solitamente create da comunità di sviluppatori o società, che scelgono, preparano e compilano i pacchetti da includere. Tutte le distribuzioni condividono il kernel Linux (sia pur in versioni diverse e spesso personalizzate), mentre 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 e per i servizi di assistenza e manutenzione offerti.

Esistono distribuzioni eseguibili direttamente da CD senza che sia richiesta l'installazione sul proprio hard disk, come Knoppix e derivate: sono chiamate distribuzioni live o desktop CD. Per altre ancora si può effettuare l'installazione dalla penna USB.

Distribuzioni più diffuse

File:Gldt1007.svg
Linea temporale delle distribuzioni Linux aggiornata a maggio 2010

In ordine alfabetico, segue la lista delle distribuzioni più diffuse e conosciute:

  • Arch Linux - È leggera, veloce, estremamente scalabile e adattabile alle proprie esigenze. Ottimizzata per i686 ora disponibile anche per X86-64 e PowerPC.
  • Backtrack - Offre tools per fare test di penetrazione. Fino alla versione 3.0 derivava dalla distro WHAX, dalla versione 4.0 è invece basata su Ubuntu.
  • CentOS - È una distribuzione basata sui sorgenti di Red Hat Enterprise Linux, quindi uguale ad essa in tutto e per tutto se non per i loghi e il nome che vengono cambiati in quanto marchi registrati. È usata per lo più in ambito server.
  • Damn Small Linux - Distribuzione molto leggera, con Desktop Environment Fluxbox, particolarmente indicata per pc datati, (infatti richiede soltanto 16 mb di ram), e le sue dimensioni sono di 50 mb, caratteristiche che le permettono di essere avviata da una semplice chiave USB.
  • Debian - Offre un ottimo sistema di gestione dei pacchetti software (in formato deb), compilati per 11 architetture differenti: Alpha, AMD64, ARM, HP PA-RISC, Intel x86, Intel IA-64, MIPS (big endian), MIPS (little endian), PowerPC, IBM S/390, SPARC. Viene definita per questo "il sistema operativo universale". Ha un'installazione disponibile sia in modalità testuale che grafica.
  • Dreamlinux - Distribuzione brasiliana derivata da Debian, che utilizza il Desktop Environment Xfce, dall'aspetto simile ad MAC OS X, leggera ed utilizzabile da tutti, distribuita in diverse versioni.
  • Fedora - Distribuzione non commerciale sponsorizzata da Red Hat. Piuttosto curata nell'aspetto, viene aggiornata frequentemente con le ultime novità. Il sistema di pacchettizzazione è basato su RPM Package Manager e l'installazione è disponibile sia in modalità testuale che grafica.
  • Gentoo Linux - Distribuzione non commerciale basata sui sorgenti che permette di ottimizzare e rendere estremamente flessibile il sistema. Implementa un sistema di porting derivato da *BSD. L'installazione avviene manualmente, seguendo l'apposito manuale oppure attraverso l'installer del livecd. Ulteriori punti di forza della distribuzione sono l'ottima documentazione e la comunità molto disponibile.
  • Gnewsense - Distribuzione GNU/Linux vicina al progetto GNU basata su Ubuntu e Debian con l'obbiettivo di includere solo Software libero. L'obiettivo di gNewSense è di fornire agli utenti i pacchetti di programmi che offrono la stabilità di Ubuntu e Debian con l'aggiunta della libertà completa del software libero al 100%. È supportata da FSF.
  • Kanotix - È una distribuzione live strettamente imparentata con Knoppix ma maggiormente indirizzata verso l'utilizzo domestico. Offre infatti supporto alle tecnologie Serial ATA e molti modem USB (eciadsl e eagle-usab in primis). Come Knoppix può essere usata come live CD (recupero dati, prove, test, diagnostica, ecc.) e può essere installata sull'hard disk.
  • Kaeilos - Distribuzione embedded sviluppata da Koan Software.
  • Knoppix - La distribuzione live CD più famosa. Nata per uso forense, deriva da Debian. Molto indicata per i principianti, permette di avere un sistema completo avviabile direttamente da CD-ROM o DVD che permette, tra i vari usi, l'utilizzo dimostrativo, come tool di diagnostica, come test di compatibilità hardware, ecc. Presenta alcune varianti come Eduknoppix.
  • Linspire - Distribuzione commerciale derivata da Debian che punta alla facilità d'installazione e d'utilizzo anche da parte di principianti.
 
GNOME 2.20 desktop.
  • Mandriva - Conosciuta fino a poco tempo fa come Mandrake, è una tra le distribuzioni più diffuse e maggiormente orientate all'utente desktop. È distribuita sia in forma gratuita che come prodotto commerciale (in questo caso include alcuni pacchetti proprietari), con nuove release a cadenza approssimativamente annuale. Ha un sistema di pacchettizzazione basato su RPM.
  • MEPIS - Distribuzione non commerciale che funziona sia come live CD sia come installabile. L'immagine ISO è scritta con un filesystem ipercompresso, contenente diversi GB di pacchetti in un unico CD.
  • Mint - Derivata da Ubuntu, comprende alcuni software personalizzati per installazione e gestione, un menù principale che richiama quello di Windows Vista, e comprende codec multimediali preinstallati per DVD, MP3 ecc.
  • Moblin - Distribuzione ottimizzata per i netbook.
  • OpenSUSE - È una distribuzione non commerciale nata dall'apertura allo sviluppo comunitario di SuSE.
  • PcLinuxOS - Distribuzione facile da utilizzare, basata su Mandriva utilizza i pacchetti RPM.
  • Puppy - Distribuzione molto leggera, disponibile in versione Live cd, ed adatta a pc poco potenti o datati, occupa poche risorse e spazio su disco. Se la quantità di RAM è sufficiente (256 MB o più), può girare integralmente in memoria.
  • Red Hat Linux Enterprise - È la distribuzione commerciale più diffusa. Leggera, non viene aggiornata alle ultime novità ma predilige versioni di kernel e componenti stabili e collaudate. Gli sviluppatori di Red Hat hanno realizzato il diffuso sistema di pacchetti RPM.
  • Sabayon - Sabayon è una distro basata su Gentoo che si caratterizza per la compresenza di due package manager (binario e sorgente). È disponibile in diverse versioni con KDE, GNOME, XFCE, LXDE, Enlightenment, Fluxbox.
  • Slackware - Viene spesso definita come la distribuzione più "pura" dal punto di vista degli standard GNU Linux. Possiede un sistema di gestione dei pacchetti molto rigido con una relativa scarsità di software precompilato.
  • SLAX - Deriva direttamente da Slackware e ne conserva le caratteristiche di velocita', stabilita', leggerezza e ampia configurabilita' in base alle varie esigenze del singolo utente. Adotta un approccio modulare avanzato.
  • SME Server - Distribuzione derivata da CentOS studiato per le esigenze di piccole e medie imprese.
  • SuSE - Celebre distribuzione europea, molto usata a livello aziendale, ma rivolta anche all'utente Desktop. Anch'essa basata su RPM, è un prodotto commerciale. - Home page. È basata sul lavoro del progetto OpenSUSE.
  • Ubuntu - Distribuzione derivata da Debian, è salita alla ribalta per la facilità d'installazione e d'utilizzo e per la disponibilità di frequenti aggiornamenti della versione stabile. Supporta i pacchetti Debian e il desktop GNOME. Esistono numerose varianti, tra cui Kubuntu, Xubuntu ed Edubuntu. Secondo una statistica relativa al mese di dicembre 2010 risulta distribuzione più diffusa[4].
  • Yellow Dog - Distribuzione sviluppata dalla Terra Soft per architetture hardware PowerPC, basata su CentOS, supporta anche la PlayStation 3.

Distribuzioni completamente libere

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 reale mancanza di software libero corrispondente. La Free Software Foundation (FSF), sulla base delle Guidelines for Free System Distributions[5], ha stilato una lista di distribuzioni GNU/Linux che contengono esclusivamente software libero[6][7]:

  • gNewSense, distribuzione basata su Debian e Ubuntu e supportata dalla FSF
  • BLAG[8] (le Brixton Linux Action Group), una distribuzione GNU/Linux basata su Fedora
  • Dragora[9], distribuzione indipendente basata sul concetto di semplicità
  • Dynebolic, distribuzione specializzata nell'editing di audio e video.
  • Kongoni[10], distribuzione africana
  • Musix[11], distribuzione basata su Knoppix, rivolta alla produzione audio.
  • Trisquel[12], distribuzione orientata alle piccole imprese, agli usi domestici e ai centri educativi.
  • Ututo[13], distribuzione basata su Gentoo, è stato il primo sistema GNU/Linux completamente libero riconosciuto dal Progetto GNU
  • Venenux[14], distribuzione rivolta principalmente ad utenti latinoamericani.

Versioni embedded

La possibilità di intervenire sul kernel Linux e la comparsa di molti appassionati ne hanno suggerito l'utilizzo nell'elettronica dei dispositivi integrati. Al giorno d'oggi[quando?], infatti, è possibile reperire apparecchiature commerciali (quali router o smartphone) dotate di sistemi Linux fortemente ridotti. Esistono anche distribuzioni Linux pensate per essere utilizzate su tali sistemi embedded, ad esempio Android (sviluppato da Google), OpenWRT o OpenEmbedded.

Gestori di pacchetti

Le distribuzioni Linux 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 di un formato di immagini, oppure una serie di font, oppure un browser web così come un qualsiasi altro programma. Un pacchetto è fornito normalmente 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.

Distribuzioni diverse hanno gestori di pacchetti diversi, ed i principali sono:

  • 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, usato anche dalle sue distribuzioni derivate.
  • .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 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.
  • Autopackage - Un gestore per creare un sistema di installazione indipendente ed uguale per tutte le distribuzioni Linux.

È presente inoltre la possibilità di compilare in proprio le applicazioni direttamente dai sorgenti disponibili, qualora non siano disponibili i binari precompilati. Sebbene la compilazione possa comportare alcune difficoltà, l'applicazione sarà sicuramente ottimizzata per il sistema sulla quale viene eseguita. Seguendo questa logica alcune distribuzioni (es. Gentoo) offrono la possibilità di compilare l'intero sistema operativo.

Linux Standard Base

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.

I LUG

  Lo stesso argomento in dettaglio: Linux User Group.

Un Linux User Group (LUG), o anche "Linux Users Group" e "Linux Users' Group" è un gruppo formato da sostenitori del sistema operativo Linux.

Linux Day

File:Richard Matthew Stallman.jpeg
Richard Stallman

I Lug italiani ogni anno promuovono ed organizzano il Linux Day, una manifestazione che ha lo scopo di promuovere il sistema operativo Linux e il software libero, ed avvicinare ed aiutare i nuovi utenti, con un insieme di eventi contemporanei organizzati in diverse città d'Italia.

La Italian Linux Society (ILS) stabilisce la data del Linux Day e, a volte, fornisce proprio materiale pubblicitario. La responsabilità dei singoli eventi locali è lasciata ai rispettivi gruppi organizzatori, che hanno libertà di scelta per quanto riguarda i dettagli delle iniziative locali, nel rispetto delle linee guida generali definite da ILS.

La manifestazione è nata nel 2001 per iniziativa di Davide Cerri di ILS[15], con lo scopo di valorizzare la rete dei LUG italiani organizzando una manifestazione di portata nazionale ma allo stesso tempo delocalizzata sul territorio. Il ruolo di ILS, tuttavia, è stato sempre secondario rispetto allo sforzo profuso dai LUG, veri artefici della manifestazione.

La prima edizione del Linux Day si è tenuta il 1º dicembre 2001 in circa quaranta città sparse su tutto il territorio nazionale[16]. Il Linux Day è divenuto il principale evento italiano no profit dedicato a Linux ed al software libero. Le edizioni successive si sono tenute il 23 novembre 2002 (69 manifestazioni locali[16]), il 29 novembre 2003 (85 manifestazioni locali[16]), il 27 novembre 2004 (100 manifestazioni locali[16]), il 26 novembre 2005 (100 manifestazioni locali[16]), il 28 ottobre 2006 (104 manifestazioni locali[17]), il 27 ottobre 2007 (118 manifestazioni locali[18]) e il 25 ottobre 2008 (manifestazioni locali in 124 città[19]), il 24 ottobre 2009 (manifestazioni locali in 123 città[20]) e il 23 ottobre 2010 (manifestazioni locali in 135 città[21].

Pronuncia

Molte persone non sono sicure sulla pronuncia della parola "linux". In italiano la cosa migliore è pronunciarlo secondo le regole della lettura italiana. Invece in inglese si trovano diverse variazioni, ma viene normalmente pronunciato con una "i" corta e con la prima sillaba dura, come in LIH -nucks. Linus Torvalds (l'autore della prima edizione di Linux e attualmente[quando?] coordinatore del progetto) pronuncia la parola Linux in questo modo [1].

Note

Bibliografia

Voci correlate

Altri progetti

Collegamenti esterni

Template:Link AdQ Template:Link AdQ