Linux
Linux è un sistema operativo Unix-like. E’ uno dei maggiori esempi dello sviluppo di tipo free software e Open Source; generalmente tutto il suo codice sorgente può essere liberamente modificato, usato e redistribuito da chiunque.
Il kernel Linux fu rilasciato per la prima volta al pubblico il 17 settembre 1991, per l’architettura PC Intel 386. Il kernel fu accresciuto con utility di sistema e librerie del progetto GNU per creare un sistema operativo usabile, il che portò ad una definizione alternativa, GNU/Linux. Linux è pacchettizzato per differenti usi in distribuzioni, che alcune volte contengono un kernel modificato ed una varietà di altri pacchetti software tagliati per differenti necessità.
Noto principalmente per il suo uso sui server, Linux è supportato da corporations come Dell, Hewlett-Packard, IBM, Novell, Oracle, RedHat e Sun Microsystems. E’ utilizzato come sistema operativo per una vasta varietà di hardware, compresi sistemi desktop, supercomputer, sistemi video game come Playstation 2 e 3, diversi giochi arcade, e periferiche embedded come telefoni e router.
Nel 1992 Linus Torvalds spiegò che lui pronuncia il nome come Lih-nux, anche se altre varianti sono comuni. Il nome Linux a dispetto dell’assonanza tra il nome dell’ideatore e quello del sistema (LINus UniX) è da attribuire a Ari Lemmke, 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.
Storia
Nel 1984 venne avviato il progetto GNU, con lo scopo di creare un “sistema software compatibile Unix completo”, fatto interamente di software free. Nel 1985 Richard Stallman creò la Free Software Foundation e sviluppò la GNU General Public License (GNU GPL), per poter diffondere il software liberamente. Molti dei programmi richiesti in un sistema operativo (come librerie, compilatori, editor di testo, una Unix shell, ed un sistema a finestre) furono completati agli inizi degli anni ’90, sebbene alcuni elementi di basso livello come driver di periferica, demoni e il kernel erano incompleti ed in stallo. Linus Torvalds ha dichiarato che se il kernel GNU fosse stato disponibile a quel tempo, egli non avrebbe deciso di scrivere il proprio.
MINIX
MINIX fu rilasciato da Andrew S. Tanenbaum nel 1987. Anche se il codice sorgente del sistema era disponibile, le modifiche e la redistribuzione erano ristrette. Inoltre, il design a 16 bit di MINIX non fu ben adattato al design a 32 bit della sempre più economica e popolare architettura Intel 386.
Nel 1991 Linus Torvalds cominciò a lavorare ad un sostituto non-commercial per MINIX, mentre frequentava l’Università di Helsinki. Questo divenne il kernel Linux.
Linux dipendeva dall’userspace di MINIX all’inizio. Con la libera disponibilità del codice del sistema GNU, fu vantaggioso poterlo utilizzare con il nuovo sistema nascente. Il codice licenziato sotto GNU GPL può essere usato in altri progetti, a patto che essi stessi siano rilasciati sotto la stessa licenza o una compatibile. Per rendere il kernel Linux compatibile con le componenti del progetto GNU, Linus Torvalds avviò il passaggio dalla sua licenza originale (che proibiva la redistribuzione commerciale) alla GNU GPL. Gli sviluppatori GNU e quelli Linux lavorarono per integrare le componenti GNU con Linux e creare un sistema operativo pienamente libero e funzionale.
Il 29 gennaio 1992 Andrew Tanenbaum, probabilmente irritato dal continuo interesse verso Linux sul newsgroup del suo sistema operativo, scrive un messaggio dal titolo LINUX is obsolete. Nel post Tanenbaum critica l’architettura monolitica del kernel linux e la sua scarsa portabilità. Torvalds replica immediatamente alla provocazione ribattendo punto per punto a Tanenbaum, sminuendo inoltre MINIX e il suo autore dando vita ad una storica flame war ancora oggi reperibile su svariati siti web.
Sviluppo
La differenza principale tra Linux e molti altri sistemi operativi popolari e contemporanei è che il kernel Linux e le altre componenti sono software libero ed Open Source. Linux non è l’unico sistema operativo del genere, ma è il più noto e più largamente usato. Alcune licenze free ed open source sono basate sul principio del copyleft, una specie di reciprocità: qualsiasi lavoro derivato da un software copyleft deve essere anche esso copyleft. La licenza free software più comune, la GNU GPL, è usata per il kernel Linux e per molte delle componenti del progetto GNU.
Come sistema operativo svantaggiato in competizione con sistemi operativi affermati, Linux non può contare su un vantaggio di monopolio; per risultare conveniente per gli utenti, Linux mira alla interoperabilità con gli altri sistemi e gli standard informatici ufficiali. I sistemi Linux aderiscono agli standard POSIX, SUS, ISO e ANSI dove possibile, sebbene ad oggi soltanto una distribuzione Linux sia stata certificata POSIX.1, la Linux-FT.
I progetti free software, anche se sviluppati in modo collaborativo, sono spesso prodotti indipendentemente gli uni dagli altri. Comunque, dato che le licenze software consentono esplicitamente la redistribuzione, ciò costituisce la base per progetti in larga scala che raccolgono il software prodotto da progetti singoli e lo rendono disponibile tutto insieme in forma di distribuzione Linux.
Una distribuzione Linux è un progetto che gestisce una raccolta di software Linux-based, e facilita l’installazione di un sistema Linux. Le distribuzioni sono gestite da singoli individui, team vagamente collegati, organizzazioni volontarie, ed entità commerciali. Esse includono il software di sistema e gli applicativi in forma di pacchetti, e il software specifico della distribuzione per l’installazione iniziale del sistema e la configurazione così come per successivi aggiornamenti ed installazioni di pacchetti. Una distribuzione si occupa della configurazione di default del sistema Linux installato, della security, e più in generale dell’integrazione dei diversi pacchetti software in un’unità coerente.
Comunità
Linux è guidato dalle comunità dei suoi sviluppatori ed utenti. Alcuni vendor sviluppano e sovvenzionano le loro distribuzioni su base volontaria, come ad esempio la ben nota Debian. Altri mantengono una versione di comunità delle loro distribuzioni commerciali, come RedHat fa con Fedora.
In molte città e regioni, le associazioni locali conosciute come Linux User Group (LUG) cercano di promuovere Linux e per estensione tutto il free software. Esse organizzano incontri e dimostrazioni gratuite, formazione, supporto tecnico ed installazione del sistema operativo per i nuovi utenti. Ci sono anche molte comunità Internet che cercano di offrire supporto agli sviluppatori ed agli utenti Linux. Molte distribuzioni e progetti open source hanno chat room su IRC o newsgroup di supporto. I forum online e le mailing list sono altri mezzi molto usati nel sostegno di Linux e delle specifiche distribuzioni. Senza contare poi gli svariati siti web come Linux Weekly News, il Linux Journal, ecc.
Anche se Linux è generalmente disponibile in maniera gratuita, ci sono svariate corporations che hanno stabilito modelli di business che includono la vendita, il supporto e la contribuzione a Linux ed al free software. Le licenze free software su cui Linux è basato prevedono ed incoraggiano esplicitamente la commercializzazione; la relazione tra Linux come unità e i vendor individuali può essere considerata simbiotica. Un comune modello di business dei fornitori commerciali è la richiesta di pagamento per il supporto, specialmente ai clienti business. Una quantità di compagnie offre anche una versione business specializzata della loro distribuzione, che aggiunge pacchetti proprietari e strumenti per amministrare un maggior numero di installazioni o per semplificare i compiti di amministrazione. Un altro modello di business è dar via il software per poter vendere l’hardware.
Design
Linux è un sistema operativo Unix-like modulare. Deriva la maggior parte del suo disegno base dai principi stabiliti in Unix durante gli anni ’70 e ’80. Linux utilizza un kernel monolitico, che gestisce il controllo dei processi, il networking, e l’accesso al file system e alle periferiche. I driver di periferica sono integrati direttamente nel kernel.
Molte delle funzionalità di alto livello di Linux sono fornite da progetti separati che si interfacciano con il kernel. La GNU userland è una parte importante della maggior parte dei sistemi Linux, e fornisce la shell e gli strumenti Unix che svolgono molti compiti di base del sistema operativo. Al di sopra di questi strumenti si possono porre le interfacce grafiche utente (GUI), eseguite generalmente tramite l’X Window System.
Linux è accoppiato ad una interfaccia a linea di comando basata su testo (CLI), anche se essa è normalmente nascosta agli utenti desktop dalla GUI. Sulle piccole periferiche l’input può essere gestito tramite i controlli della periferica stessa, e l’input diretto a Linux può essere completamente nascosto.
Copyright e denominazione
Il kernel Linux e la maggior parte del software GNU sono licenziati sotto la GNU General Public License, version 2. Nel 1997 Linus Torvalds ha dichiarato che “rendere Linux GPL è stata sicuramente la miglior cosa che ho mai fatto”. Altre componenti chiave di un sistema Linux possono usare licenze diverse; molte librerie usano la GNU Lesser General Public License (LGPL), una variante più permissiva della GPL, e l’X Window System usa la licenza MIT.
Torvalds ha dichiarato che non porterà il kernel Linux alla versione 3 della GPL, rilasciata nella metà del 2007. citando alcune imposizioni della nuova licenza che proibiscono l’uso del software nel Digital Rights Management (DRM).
Uno studio del 2001 sulla RedHat Linux 7.1 ha trovato che questa distribuzione conteneva 30 milioni di righe di codice. Usando il Constructive Cost Model, lo studio ha stimato che questa distribuzione avrebbe richiesto un tempo di sviluppo di ottomila anni-uomo. Secondo lo studio, se tutto questo software fosse stato sviluppato tramite i metodi proprietari convenzionali, sarebbe costato circa 1,08 miliardi di dollari (al cambio del dollaro del 2000).
La maggior parte del codice (71%) era scritto in C, ma erano stati usati anche molti altri linguaggi, come C++, assembly, Perl, Fortran, Python e svariati linguaggi di scripting shell. Leggermente più di metà del codice era licenziato sotto GPL. Il solo kernel Linux era costituito da 2,4 milioni di righe di codice, l’8% del totale.
In uno studio seguente, la stessa analisi fu eseguita sulla GNU/Debian 4.0. La distribuzione conteneva oltre 283 milioni di righe di codice, e lo studio stimò che svilupparla tramite metodi convenzionali sarebbe costato oltre 5,4 miliardi di Euro.
Negli Stati Uniti il nome Linux è un marchio registrato di Linus Torvalds. Inizialmente nessuno lo aveva registrato, ma il 15 agosto 1994 William R. Della Croce Jr. richiese la registrazione del marchio Linux, e poi richiese il pagamento di royalties ai distributori di Linux. Nel 1996 Torvalds ed alcune organizzazioni coinvolte istruirono una causa per avere il marchio Linux assegnato a Linus Torvalds, e nel 1997 la causa fu decisa. Il licenziamento del marchio è stato da allora gestito dal Linux Mark Institute. Torvalds ha dichiarato di aver registrato il marchio soltanto per prevenire altri dal farlo, ma è stato costretto nel 2005 dalle leggi sul trademark degli Stati Uniti a prendere misure attive per imporre i diritti di marchio. Come risultato l’LMI ha inviato una quantità di lettere ai vendor delle distribuzioni richiedendo il pagamento dei diritti per l’uso del nome Linux, e molte compagnie si sono adeguate.
GNU/Linux
La Free Software Foundation vede le distribuzioni Linux che usano il software GNU come “varianti di GNU” e chiede che questi sistemi operativi vengano chiamati GNU/Linux oppure sistemi GNU basati su Linux. Ma i media e la maggior parte della popolazione si riferiscono a questa famiglia di sistemi semplicemente come Linux. Mentre alcuni distributori considerano importante usare la forma aggregata, principalmente Debian con la distribuzione Debian GNU/Linux, l’utilizzo del termine fuori dalla comunità di affezionati è limitato. La distinzione tra il kernel Linux e le distribuzioni basate su di esso con l’aggiunta del sistema GNU è fonte di confusione per molti nuovi arrivati, e la denominazione rimane controversa.
Fonte: Wikipedia