Cos’è GNU/Linux

Descrizione del sistema

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 licenzetuxtrasp2 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 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.

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.

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.

È anche un componente indispensabile del software per server LAMP, che ha raggiunto un’ampia popolarità tra gli sviluppatori web, e che è presente nella maggior parte dei server di tutto mondo.

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 GNU/Linux

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, Linus Torvaldsscritto 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 un 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, quindi decise 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 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 filesystem. 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 messaggio del 25 agosto 1991. 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.[1]

Sin dalla versione 0.01 si poteva compilare e far partire la shell GNU Bash. All’inizio era richiesto un computer con Minix per configurare, compilare e installare Linux (fino alla versione 0.10, la 0.11 poteva essere compilata da linux stesso), perché usava il filesystem del sistema sul quale si appoggiava. 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.

Oggi 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 è usato soprattutto come server in ambienti di produzione ma ultimamente ha conosciuto anche una progressiva affermazione in ambiente desktop – ivi compreso nel settore consumer, per esempio nelle versioni installate su netbook.

Distribuzioni

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.

Le più diffuse distribuzioni Linux sono:

  • Arch Linux – È leggera, veloce, estremamente scalabile e adattabile alle proprie esigenze. Ottimizzata per i686 ora disponibile anche per X86-64 e PowerPC.
  • Backtrack – BackTrack che offre tools per fare test di penetrazione. Essa deriva dalla distro SlackWare, modificata però, dal team di “Remote-Exploit.org”. L’ultima versione è la 3.0.
  • CentOS – È una distribuzione basata sui sorgenti di RedHat Enterprise Linux, quindi uguale ad essa in tutto e per tutto se non per i loghi e il nome che sono stati cambiati per motivi di trademark. È usata in ambienti enterprise.
  • 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 – È una distribuzione molto vicina al progetto GNU poiché composta soltanto da software libero. 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.
  • DEFT – È una distribuzione live per usi inerenti alla Computer Forensics; nata nel 2006, è basata su Xubuntu. Viene utilizzata anche per operazioni riguardanti la sicurezza informatica ed il recupero dati.
  • Dynebolic – È una distribuzione live orientata al multimedia (streaming audio/video, veejaing, etc.); nata nel 2001, ha come caratteristica peculiare quella di essere molto leggera e di girare su macchina anche obsolete; è in grado di girare anche su XBOX. Inoltre permette di creare con pochi clic un cluster con altre macchine in cui sta girando Dynebolic.
  • 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 basata su Ubuntu che include al proprio interno solamente Software libero. L’obiettivo di gNewSense è di fornire agli utenti i pacchetti di programmi che offrono la stabilità di Ubuntu con l’aggiunta della libertà completa del software libero al 100%. È supportata dalla FSF e ha come ambiente desktop Gnome.
  • 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
  • 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, etc. 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.
  • 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.
  • OpenSUSE – È una distribuzione non commerciale nata dall’apertura allo sviluppo comunitario di SuSE.
  • Pardus – Pardus, sviluppato nell’ambito della TUBITAK UEKAE (Istituto di Ricerca Elettronica e Criptologica Nazionale della Turchia), è la distribuzione di Linux più utilizzata in Turchia.
  • 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.
  • 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 – Precedentemente conosciuta come RR4, Sabayon è una distro basata su Gentoo che utilizza KDE come Desktop Environment.
  • 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.
  • 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.
  • Trustix Secure Linux – Distribuzione orientata all’utilizzo su server e focalizzata su sicurezza e stabilità.
  • Turbolinux – Leader del mercato asiatico. Deriva da Slackware.
  • 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. Esistono numerose varianti, tra cui Kubuntu, Xubuntu ed Edubuntu. Attualmente è la distro più diffusa.
  • Yellow Dog – Distribuzione sviluppata dalla Terra Soft per architetture hardware PowerPC, basata su CentOS supporta anche la Playstation 3.