Linux

Linux (/ˈlinuks/[1], pronuncia inglese [ˈlɪnʊks][2]) è una famiglia di sistemi operativi di tipo Unix-like, pubblicati in varie distribuzioni, aventi la caratteristica comune di utilizzare come nucleo il kernel Linux. Oggi molte importanti società nel campo dell’informatica come Google, IBM, Oracle Corporation, Hewlett-Packard, Red Hat, Canonical, Novell e Valve sviluppano e pubblicano sistemi Linux.

Linus Torvalds e gli esperimenti con Minix
Il primo nucleo del kernel Linux fu creato il 25 agosto 1991 da un giovane studente finlandese di informatica 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ì Torvalds decise di creare un kernel unix con lo scopo di divertirsi e studiare il funzionamento del suo nuovo computer, che era un 80386.

Il sistema operativo basato sul kernel programmato da Torvalds, chiamato Linux, per girare utilizzava inizialmente, oltre al kernel di Torvalds, 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ò, Torvalds cambiò la licenza e adottò la GPL, che tra l’altro considerava buona per il suo sistema operativo a prescindere dal software GNU stesso.

Linux era all’inizio 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 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 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.[3] 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 Lemmke, 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.[4]

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 e i programmi in user-space per creare un sistema operativo completo, pienamente funzionante e libero.

Il 12 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’implementazione di X Window System
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 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).

Gli ambienti desktop e gli anni 2000
Nel 1996 fu scelto come logo ufficiale di Linux un pinguino disegnato da Larry Ewing, chiamato Tux come abbreviazione di Torvalds Unix. Il compito di fornire un sistema integrato, che combini tutte le componenti di base con le interfacce grafiche (come per esempio GNOME o KDE, basate a loro volta sulla presenza dell’X Window System) e con il software applicativo, è svolto dalle distribuzioni 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[5]. Riconosce, però, che questo “ingrassamento” non va visto solo come una cosa negativa, perché significa che Linux ha molta più compatibilità rispetto al passato.[6] Nel luglio del 2011, per festeggiare il 20º anniversario della nascita di Linux, Torvalds decise di rilasciare 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 aprile 2015 è stata pubblicata la versione 4.0 che oltre a risoluzioni di bug aggiunge supporto a nuovo hardware (come intel quark) e le live patching, ovvero la possibilità di aggiornare il kernel e aggiornare punti critici del sistema senza riavviare, questa feature è dovuta anche alla collaborazione di RedHat e SUSE.

L’ultima versione stabile del kernel Linux è la 5.2; il suo sviluppo è sostenuto dalla Linux Foundation, un’associazione senza fini di lucro nata nel 2007 dalla fusione di Free Standards Group e Open Source Development Labs.

La definizione GNU/Linux
Con la nascita di GNU (il sistema operativo unix-like ideato nel 1984 da Richard Stallman[8]) e dopo la successiva creazione di Linux (il kernel ideato da Linus Torvalds nel 1991[9]) 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”, la Free Software Foundation ha promosso fortemente la diffusione del termine GNU/Linux, per ragioni riassumibili in:
Semantica
Parlare di “sistemi Linux” può trarre in inganno sulla natura di Linux: Linux non è un sistema operativo unix-like, bensì un kernel per sistemi unix-like. È stato fatto un parallelismo fra dire «sistema operativo Linux» e dire «auto guidata dal carburatore».
Credito tecnico
Utenti inesperti possono arrivare a dare credito a Linux anche quando non è utilizzato, ad esempio utilizzando sistemi Debian GNU/kFreeBSD o Debian GNU/Hurd.[11] Viceversa gli utenti di “sistemi Linux” possono non venire a conoscenza di GNU, pur utilizzandolo.
Credito per ragioni storiche
Prima che Linus Torvalds cominciasse a scrivere il suo kernel, lo scopo del progetto GNU era quello di iniziare a sviluppare un sistema operativo completo 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 nome Freaks per il suo progetto), bensì dall’amministratore di rete Ari Lemmke, che preferì assegnare a Torvalds la directory FTP chiamata pub/OS/Linux.
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 alla controversia sul nome GNU/Linux.

Descrizione
Grazie alla portabilità del kernel, data dalla presenza dei moduli, sono stati sviluppati sistemi operativi per un’ampia gamma di dispositivi:

personal computer
cellulari
tablet computer e console
mainframe
supercomputer

Esistono inoltre sistemi Linux installabili anche come server, router e sistemi embedded.
Attualmente Linux è molto usato, soprattutto come sistema operativo su server, in ambienti di produzione o in dispositivi embedded (PVR, telefoni ecc.), e ha una discreta diffusione in ambiente desktop (circa il 3% dei PC). Anche l’iniziale ampia diffusione sui netbook ha lasciato il passo a Windows, pur mantenendo una quota di penetrazione significativamente superiore a quella dei pc desktop/notebook.

Kernel Linux
Il kernel Linux, uno dei più riusciti esempi di software open source, costituisce il nucleo dei sistemi operativi della famiglia di Linux.[20] Fu inizialmente creato nel 1991 da alcuni studenti di informatica finlandesi tra cui Linus Torvalds, il capogruppo. Successivamente aumentarono in modo repentino i suoi sviluppatori e i suoi utilizzatori che aderivano al progetto del software libero e contribuivano allo sviluppo del nuovo sistema operativo.

Rilasciato, liberamente scaricabile e modificabile sotto la licenza libera GNU GPL (insieme ad alcuni firmware con varie licenze), è continuamente e liberamente sviluppato da collaboratori di tutto il mondo attraverso la relativa community, con lo sviluppo che ogni giorno avviene sfruttando la relativa mailing list, in modo del tutto analogo in cui sono sviluppati i protocolli 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 alcuni driver. Il progetto Linux-libre si propone come variante completamente libera di Linux, da cui sono nate diverse distribuzioni completamente libere.

Boot loader
Linux come boot loader su MBR utilizza LILO in vecchie versioni e GRUB nelle versioni più moderne.

File system
Il file system utilizzato dai sistemi Linux fa riferimento al Filesystem Hierarchy Standard, uno standard per file system per sistemi Unix e Unix-like di tipo ad albero gerarchizzato.

Utilizzo e applicazioni pratiche
Il kernel Linux gira su svariate architetture[25]: dai cellulari ai PC, ai supercomputer.[26] Speciali distribuzioni esistono per piccole architetture per mainstream. Il fork del kernel ELKS può girare su un Intel 8086 o su un Intel 80286 con microprocessore a 16-bit, mentre il fork del kernel µClinux può girare su sistemi senza MMU. Il kernel gira anche su architetture che erano state progettate per utilizzare il proprio sistema operativo, come i computer Macintosh della Apple (con architetture PowerPC e Intel), PDA, console, lettori MP3 e telefoni cellulari. Oltre che su postazioni host ovvero desktop computer, Linux è ampiamente utilizzato su postazioni server tramite apposite distribuzioni ottimizzate per la destinazione d’uso, potendo gestire facilmente un gran numero di accessi contemporanei sia lato intranet sia lato internet (server pubblici) e dove i vantaggi in termini di stabilità e affidabilità sono ancor più apprezzati.

Amministrazione
L’amministrazione, da parte di un utente o un sistemista, di un sistema Linux può avvenire per via grafica attraverso un pannello di controllo oppure direttamente da riga di comando o terminale virtuale tramite ricorso ad un serie di comandi. Quest’ultima modalità è tipica delle distribuzioni server che per motivi di semplicità e di carico non presentano interfaccia grafica (per l’elenco e descrizione dei comandi vedi fondo voce).

Vantaggi e svantaggi
Numerose distribuzioni sono completamente gratuite, per l’utente privato e per le aziende. 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 il codice sorgente, fornito con la licenza GPL, 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é alcune software house, come ad esempio Adobe, non vogliono fare il porting su varie distribuzioni.

Distribuzioni
Non esiste un’unica versione di Linux, ma esistono diverse distribuzioni (chiamate anche distro), 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 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.

Esistono distribuzioni eseguibili direttamente da CD o chiave USB: sono chiamate distribuzioni live o desktop CD. Una distribuzione live su CD o USB consente di provare la distribuzione ed eventualmente procedere all’installazione del sistema sul proprio computer.

Tratto dal sito: https://it.wikipedia.org/wiki/Linux

error: Contenuto protetto...