Il primo nucleo delkernel Linux fu presentato al mondo il 25 agosto1991 dal giovane studente finlandese di informaticaLinus Torvalds che, appassionato diprogrammazione, era insoddisfatto del sistema operativoMinix (sistema operativounix-like destinato alla didattica, scritto daAndrew S. Tanenbaum, professore ordinario di Sistemi di rete all'università di Amsterdam), poiché supportava male la nuova architetturai386 a 32 bit, all'epoca tanto economica e popolare. Così Torvalds decise di creare unkernel unix con lo scopo di divertirsi e studiare il funzionamento del suo nuovo computer, che era un80386.
Il sistema operativo basato sul kernel programmato da Torvalds, chiamato Linux, per girare utilizzava inizialmente, oltre al kernel di Torvalds, louserspace diMinix. 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 progettoGNU. Per fare ciò, Torvalds cambiò la licenza e adottò laGPL, che tra l'altro considerava buona per il suo sistema operativo a prescindere dal software GNU stesso.
Linux era all'inizio un sempliceemulatore di terminale scritto inC eassembly, e non aveva bisogno di appoggiarsi a un sistema operativo. L'emulatore di terminale avviava e gestiva duethread: uno per mandare segnali alla porta seriale e uno per riceverli; quando poi Linus ebbe bisogno di leggere e scrivere file su disco, questo emulatore fu esteso in modo che potesse gestire unfile system. Lentamente, questo programma si trasformò in un intero kernel in grado di gestire un sistema operativo e Linus iniziò a documentarsi sulle specifichePOSIX, chiedendo assistenza sulnewsgroup.[4] La prima versione del kernel Linux, la 0.01, fu pubblicata suInternet il 17 settembre1991 e la seconda nell'ottobre dello stesso anno.
Torvalds preferiva chiamareFreax il kernel a cui stava lavorando, maAri Lemmke, assistente allaHelsinki University of Technology che gli aveva offerto lo spazioFTP per il progetto (ftp.funet.fi), preferì assegnare allasubdirectory dedicata il nome alternativo di lavorazioneLinux.[5] Sin dalla versione 0.01 si potevacompilare e far partire la shell GNUBash. 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 e i programmi in user-space per creare un sistema operativo completo, pienamente funzionante e libero. Il 12 marzo1994 il 16º livello di patch del kernel 0.99 divenne Linux 1.0. Fu lo stesso Linus Torvalds a presentare la prima versionestabile all'Università di Helsinki.
Laneutralità di questa voce o sezione sull'argomento Informatica è stata messa in dubbio.
Motivo:Vengono riportati solo i pro 'GNU/Linux' e non i pro 'Linux'. Considerando che il nome ufficiale della stessa pagina è Linux la cosa è abbastanza strana. Inoltre viene riportata l'opinione della Free Software Foundation come fosse la bibbia. O si espande la sezione, oppure la si riduce e si lascia alla pagina apposita l'argomentazione della controversia
Per contribuire, correggi i toni enfatici o di parte e partecipa alladiscussione. Non rimuovere questo avviso finché la disputa non è risolta. Segui i suggerimenti delprogetto di riferimento.
Con la nascita diGNU (ilsistema operativounix-like ideato nel 1984 daRichard Stallman[6]) e dopo la successiva creazione diLinux (il kernel ideato da Linus Torvalds nel 1991[7]) sono nate accese controversie su come definire qualcosa basato sull'unione di entrambe le tecnologie.
Nonostante la maggior parte delle persone chiami il sistema operativo semplicemente "Linux", laFree Software Foundation ha promosso fortemente la diffusione del termine GNU/Linux, per ragioni riassumibili in:[8][9][10][11]
Semantica
Parlare di "sistemi Linux" può trarre in inganno sulla natura di Linux: Linux non è un sistema operativounix-like, bensì un kernel per sistemi unix-like. È stato fatto un parallelismo fra dire «sistema operativo Linux» e dire «auto guidata dal carburatore».[11]
Credito tecnico
Utenti inesperti possono arrivare a dare credito a Linux anche quando non è utilizzato, ad esempio utilizzando sistemiDebian GNU/kFreeBSD oDebian GNU/Hurd.[9] Viceversa gli utenti di "sistemi Linux" possono non venire a conoscenza di GNU, pur utilizzandolo.[11]
Credito per ragioni storiche
Prima che Linus Torvalds cominciasse a scrivere il suo kernel, lo scopo delprogetto GNU era quello di iniziare a sviluppare un sistema operativo completo e libero, sviluppando la maggior parte dei componenti principali e la visione di base. Gli utenti di "sistemi Linux" potrebbero non entrare a conoscenza di queste origini. Inoltre la parola "Linux" ha ragioni storiche meno profonde, dato che non fu inventata da Linus Torvalds (che al contrario aveva scelto il nomeFreaks per il suo progetto), bensì dall'amministratore di reteAri Lemmke, che preferì assegnare a Torvalds ladirectoryFTP chiamatapub/OS/Linux.[7]
Ulteriori motivazioni sulla promozione del termine GNU/Linux e sulla vasta diffusione del semplice termine "sistema Linux" anche in acronimi come "LAMP" sono approfondibili nella pagina dedicata allacontroversia sul nome GNU/Linux.
Nella primavera del1992 l'hackerOrest Zborowski riuscì a rendere eseguibile ilserver X sulla versione 0.12 di Linux. Per far ciò, Orest dovette implementare tutta la struttura degliUnix Domain Socket indispensabili a X Window e quindi un primo livellosocket sul quale venne poi costruita tutta l'infrastruttura di rete di Linux. In realtà, il tutto era imbastito in maniera caotica e non era ben integrato all'interno del kernel, ma Linus accettò comunque lapatch perché con essa era possibile sia utilizzare X, sia utilizzare tale infrastruttura per dotare Linux di uno stack di rete.
Entusiasta della novità, Linus pubblicò, 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 illivello di patch sia le lettere dell'alfabeto (sino alla versione 0.99.15Z, 0.99 15º livello di patch,revisione Z).
Nel 1996 fu scelto come logo ufficiale di Linux unpinguino disegnato daLarry Ewing, chiamatoTux come abbreviazione diTorvaldsUnix. Il compito di fornire un sistema integrato, che combini tutte le componenti di base con le interfacce grafiche (come per esempioGNOME oKDE, basate a loro volta sulla presenza dell'X Window System) e con il software applicativo, è svolto dalledistribuzioni GNU/Linux.
Per quanto riguarda il kernel vero e proprio, Torvalds già nel settembre 2009 dichiarò che esso è diventato "gonfio e grosso", non così veloce e scattante come quando l'aveva progettato[12]. Riconosce, però, che questo "ingrassamento" non va visto solo come una cosa negativa, perché significa che Linux ha molta più compatibilità rispetto al passato.[13] Nel luglio del2011, per festeggiare il 20º anniversario della nascita di Linux, Torvalds decise di pubblicare il kernel Linux, passando ad un sistema di numerazione a 2 cifre, pubblicando la versione 3.0 del kernel. L'ultima release della serie 2.6 è stata la 2.6.39. Il 12 aprile2015 è stata pubblicata la versione 4.0 che oltre a risoluzioni di bug aggiunge supporto a nuovo hardware (comeintel quark) e le live patching, ovvero la possibilità di aggiornare il kernel e i punti critici del sistema senza riavviare, questa feature è dovuta anche alla collaborazione diRedHat eSUSE.
Attualmente Linux è molto usato, soprattutto come sistema operativo su server, in ambienti di produzione o in dispositiviembedded (PVR, telefoni ecc.) e ha una discreta diffusione in ambiente desktop (circa il 3% dei PC). Anche l'iniziale ampia diffusione suinetbook ha lasciato il passo a Windows, pur mantenendo una quota di penetrazione significativamente superiore a quella dei pc desktop/notebook.
Ilkernel Linux, uno dei più riusciti esempi di software libero eopen source,[20] costituisce il nucleo dei sistemi operativi della famiglia di Linux.[21] Fu inizialmente creato nel1991 da alcuni studenti di informaticafinlandesi[22] tra cuiLinus Torvalds, il capogruppo. Successivamente aumentarono in modo repentino i suoi sviluppatori e i suoi utilizzatori che aderivano al progetto delsoftware libero e contribuivano allo sviluppo del nuovo sistema operativo.[23]
Pubblicato, liberamentescaricabile e modificabile sotto lalicenza liberaGNU GPL[24] (insieme ad alcunifirmware con varie licenze), è continuamente e liberamente sviluppato da collaboratori di tutto il mondo attraverso la relativacommunity, con lo sviluppo che ogni giorno avviene sfruttando la relativamailing list, in modo del tutto analogo in cui sono sviluppati iprotocolli di Internet. Il ramo di sviluppo principale del kernel Linux prevede che esso contenga anche alcune parti non-libere, offuscate od oscurate come ad esempio alcunidriver. Il progettoLinux-libre si propone come variante completamente libera di Linux, da cui sono nate diversedistribuzioni completamente libere.[25]
Ilfile system utilizzato dai sistemi Linux fa riferimento alFilesystem Hierarchy Standard, unostandard per file system per sistemiUnix eUnix-like di tipo ad albero gerarchizzato. Esso serve per controllare come i dati sono salvati e come vengono recuperati dal disco rigido del computer da utente con privilegi di amministratore o dalla "root" con comando cd / (cd slash).
Il kernel Linux gira su svariatearchitetture[26]: daicellulari aiPC, aisupercomputer.[27] Speciali distribuzioni esistono per piccole architetture per mainstream. Ilfork del kernel ELKS può girare su unIntel 8086 o su unIntel 80286 con microprocessore a16-bit, mentre il fork del kernelµClinux può girare su sistemi senzaMMU. Il kernel gira anche su architetture che erano state progettate per utilizzare il proprio sistema operativo, come: i computerMacintosh dellaApple (con architetturePowerPC eIntel),PDA,console,lettori MP3 etelefoni cellulari. Oltre che su postazionihost ovverodesktop computer, Linux è ampiamente utilizzato su postazioniserver tramite apposite distribuzioni ottimizzate per la destinazione d'uso, potendo gestire facilmente un gran numero di accessi contemporanei sia latointranet sia latointernet (server pubblici) e dove i vantaggi in termini di stabilità eaffidabilità sono ancor più apprezzati.
L'amministrazione, da parte di un utente o unsistemista, di un sistema Linux può avvenire per via grafica attraverso un pannello di controllo oppure direttamente dariga di comando oterminale virtuale tramite ricorso a una serie dicomandi. Quest'ultima modalità è tipica delle distribuzioniserver che per motivi di semplicità e di carico non presentano interfaccia grafica (per l'elenco e descrizione dei comandi vedi fondo voce).
Numerose distribuzioni sono completamente gratuite, per l'utente privato e per leaziende. Esistono società (Red Hat,Canonical,SUSE e altre) che, dietro compenso, forniscono supporto tecnico e altri servizi per le proprie distribuzioni commerciali. A questo si aggiunge la possibilità di modificare il sistema migliorando in proprio ilcodice sorgente, fornito con la licenzaGPL e di distribuirlo liberamente e legalmente, sotto forma di nuove versioni. Il dibattito sui vantaggi e svantaggi di Linux è spesso ricompreso all'interno della comparazione tra Microsoft Windows e Linux, molto nota agli addetti ai lavori; perché alcunesoftware house, come ad esempioAdobe, non vogliono fare il porting su varie distribuzioni. Ma grazie alle numerose distribuzioni esistenti Linux è il sistema operativo perfetto per riportare in vita vecchi computer, infatti ci sono diverse distro (distribuzioni) che possono funzionare su computer poco potenti comeAlpine Linux,Puppy Linux,Lubuntu ecc, ma anche distro più esigenti comeUbuntu,Debian,Linux Mint ecc, le quali hanno comunque bisogno di meno potenza rispetto per esempio a Windows 10.
Non esiste un'unica versione di Linux, ma esistono diversedistribuzioni (chiamate anchedistro), solitamente create da comunità di sviluppatori (community) o società, che scelgono, preparano e compilano i pacchetti da includere. Tutte le distribuzioni sono sviluppate in maniera indipendente a partire dalkernel Linux comune (sia pur in versioni diverse e spesso personalizzate), e si differenziano tra loro per il cosiddetto "parcosoftware", cioè i pacchetti preparati e selezionati dagli sviluppatori per la distribuzione stessa, per ilsistema di gestione del software, irepository e per i servizi di assistenza e manutenzione offerti.
Esistono distribuzioni eseguibili direttamente daCD ochiave USB: sono chiamate distribuzionilive odesktop CD. Una distribuzione live su CD o USB consente di provare la distribuzione ed eventualmente procedere all'installazione del sistema sul proprio computer.
LaLinux Foundation è un'organizzazione formata dai maggiori produttori di software e hardware il cui obiettivo è di migliorare l'interoperabilità tra le diverse distribuzioni.
Allo scopo, essa ha proposto uno standard aperto e gratuito, chiamatoLinux Standard Base (ufficializzato con lo standardISO/IEC 23360) che definisce una comuneABI (Interfaccia Binaria per le Applicazioni), un unico sistema di pacchettizzazione e una struttura per ilfile system che preveda le stesse convenzioni sui nomi e le stesse directory basilari in ogni sistema Linux. Molte aziende famose sono entrate nella Linux Foundation tra le quali:Cisco,Huawei,Microsoft,HP,IBM,intel,NEC,Fujitsu,Qualcomm eSamsung[28].
Esso al momento costituisce lo standard con maggioreappeal, al quale tutte le maggiori distribuzioni si stanno adeguando. Ledistribuzioni possono essere specializzate per differenti utilizzi: supporto a particolariarchitetture,sistemi embedded, stabilità, sicurezza, localizzazione per una particolare regione o lingua o il supporto per le applicazioni insistema real-time. In più, alcune distribuzioni includono solamentesoftware libero. Attualmente, oltre trecento distribuzioni sono sviluppate attivamente, con circa una dozzina di esse che sono più famose per l'utilizzo giornaliero.[29]
Ruolo importante al riguardo è svolto daiLinux user group (Gruppi di utenti Linux), anche detti LUG, gruppo formato da sostenitori e promotori del sistema operativo GNU/Linux, che spesso organizzano manifestazioni pubbliche attraverso le quali fanno conoscere Linux e 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. I LUG sono spesso organizzati comeassociazionisenza scopo di lucro e la loro principale missione è contribuire alla diffusione delsoftware libero e in particolare dei sistemi operativi basati sulkernel Linux.
I LUG italiani ogni anno promuovono e organizzano ilLinux Day, una manifestazione che ha lo scopo di promuovere il sistema operativo Linux e ilsoftware libero, e avvicinare e aiutare i nuovi utenti, con un insieme di eventi contemporanei organizzati in diverse città d'Italia. LaItalian 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.
Giornate tematiche sul software libero e l'open source erano già state sperimentate in Italia sin dal 1999, grazie alle iniziative del gruppo ErLug (Emilia-Romagna Linux User Group). Fu grazie a queste esperienze, e i dibattiti che ne seguirono, che vennero definite le linee guida dei LinuxDay, successivamente gestite da ILS sul territorio nazionale. Le prime manifestazioni in questa nuova veste vennero proposte a partire dal 2001, per iniziativa di Davide Cerri di ILS,[30] con lo scopo di valorizzare la rete deiLUG 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º dicembre2001 in circa quaranta città sparse su tutto il territorio nazionale.[31] Il Linux Day è divenuto il principale evento italiano no profit dedicato a Linux e al software libero.
«Linux, the kernel developed and distributed by Linus Torvalds et al, contains non-Free Software, i.e., software that does not respect your essential freedoms, and it induces you to install additional non-Free Software that it doesn't contain.»
Linux.it sito dellaItalian Linux Society. Contiene un elenco deiLinux user group italiani, molta documentazione in italiano e altre informazioni su Linux.
(EN)unix.org sito della Open Group, creatore di Unix