Umberto

Tecnico applicazioni web

Linux la storia

Linux-la-storia

Siamo alla fine del 2015 e vorrei concludere l’anno iniziando a pubblicare una serie di articoli su un altro sistema Operativo, dopo aver parlato di Windows10, è il momento di parlare di LINUX.

Il quale, fino a qualche tempo fa, veniva considerato solo un sistema operativo da “smanettoni”, ha conquistato, negli ultimi tempi, un posto stabile nella vita, “informatica”, di tutti i giorni persino dove l’informatizzazione è a livelli di analfabetismo.

Ovviamente chi viene da un sistema operativo come Windows, alcuni termini sono un poco “misteriosi/confusi”, e, pertanto, si può trovare un attimo spaesato! Infatti concetti come distribuzione, Kernel o GNU possono spiazzare l’utente: si pensi che, a volte, non è facile capire la differenza tra Linux e Ubuntu.

Linux-la-storia

Per non parlare del tanto “temuto” terminale!

terminale-linux

Del quale parlerò in un prossimo articolo mostrando alcuni comandi da usare.

Prima, però, mi pare doveroso fornire alcuni brevi cenni su Linux e il suo mondo cercando di fornirvi una informazione corretta, cancellando tutte le idee confuse sul sistema operativo Linux, che ricordo essere un Free Software!

Per fornirvi esatte informazioni, farò riferimento ad alcuni testi estrapolati da un sito di riferimento: repni.

Cos’è Linux?

Linux per molti è “quella cosa che si può mettere sul computer al posto di Windows”; più propriamente, diciamo che Linux è un sistema operativo (ancora più propriamente dovremmo dire che Linux è il kernel (è la parte centrale di ogni sistema operativo. Kernel in inglese significa “nocciolo”.  Il nucleo, la parte “sotto il cofano” del sistema, che coordina tutte le altre parti, e le mette in comunicazione con l’hardware della macchina.) di un sistema operativo, ma di questo parleremo tra qualche paragrafo), è il primo programma ad essere eseguito dopo aver acceso il computer. Windows è il tipico (e per molti anche l’unico) esempio di sistema operativo.

Altri esempi sono Linux, appunto, o MacOS, o l’ormai vetusto MS-DOS. Altri noti sistemi operativi si trovano nei telefonini: Symbian, iPhoneOS, Windows Mobile e Google Android (che poi è una versione di Linux adattata per gli smartphone).

Il compito principale di un sistema operativo è amministrare le risorse della macchina (memoria, dischi rigidi, schermo, e tutte le varie schede e periferiche), facendole dialogare correttamente tra loro.

Il SO (acronimo di Sistema Operativo) è l’unico software che ha accesso completo a tutte le funzionalità della macchina, inoltre da lui dipende anche la velocità con cui le operazioni sono eseguite; un sistema Linux, generalmente possiede proprio queste caratteristiche: stabilità, sicurezza e velocità.

Vi domanderete: ma chi ha creato Linux e perché?

Entriamo nello spirito che muove la sua evoluzione: lo spirito del free software.

I primi anni ’90.

Ma, con tutti i sistemi operativi in circolazione, c’era davvero bisogno di crearne uno nuovo partendo da zero? Il successo di Linux suggerisce che la risposta è sì, ed il motivo sta nel fatto che, nei primi anni ’90, la situazione per quanto riguarda i sistemi operativi non era del tutto convincente.

Sui Personal Computer, situati negli uffici o, più raramente, nelle case, il sistema più gettonato era l’MS-DOS, di Microsoft, che di solito era già installato sul computer al momento dell’acquisto.

All’interno delle università o delle grandi aziende, il calcolo automatico era invece affidato, di solito, ad un grande computer centrale, detto mainframe, a cui il personale si poteva collegare utilizzando dei terminali (semplici apparati composti soltanto da un monitor ed una tastiera).

Ad un unico mainframe potevano essere connessi centinaia di terminali, composti soltanto da monitor e tastiera, e l’elaboratore doveva essere in grado di rispondere contemporaneamente a tutte le richieste inviate dai terminali collegati.

Per un lavoro complicato come questo, lo MS-DOS, che può gestire un solo utente per computer, è assolutamente inadatto. Al suo posto, sui mainframe tipicamente era installato Unix, un sistema operativo estremamente solido e professionale (e costoso), adatto a svolgere i “lavori pesanti”, come quello sopra descritto.

mainframe

Un vecchio mainframe (VAX 11/780), molto usato negli anni ’80. In primo piano si vedono un terminale (a destra) e un terminale cartaceo (a sinistra).

Unix possedeva anche un’altra importante caratteristica, che lo rendeva apprezzato ovunque: oltre ad essere un sistema molto efficiente, e studiato con scientifica intelligenza, il suo codice sorgente, al contrario di quello del DOS, era facile da reperire e studiare. Addirittura l’università di Berkeley iniziò a modificarlo, espanderlo e migliorarlo, distribuendone una sua propria versione, che chiamò BSD (Berkeley Software Distribution).

Da Unix a Linux

Fino a qui tutto bene, ma la situazione non sarebbe durata a lungo; la stessa AT&T, che aveva creato Unix, si rese conto che la sua “creatura”, da semplice esperimento da laboratorio, era diventata il sistema operativo professionale più utilizzato nel mondo.

In virtù di questo fatto, AT&T iniziò a reclamare i suoi diritti di proprietà intellettuale, avviando cause legali contro quanti ne avevano utilizzato il codice sorgente, prima fra tutte l’università di Berkeley.

Unix sarebbe stato distribuito come sistema strettamente closed-source, ovvero venduto a “scatola chiusa”, impossibile da aprire, modificare e, quindi, studiare. Proprio come viene tutt’oggi distribuito Windows.

Questa scelta produsse molto disappunto ed insoddisfazione tra gli “addetti ai lavori”, e, più in generale, tra tutti quelli che, privatamente o in università, volevano capire e studiare il funzionamento del computer.

E fu in questo clima che il nostro Linus si accodò (più o meno intenzionalmente) alla schiera di quelli che volevano clonare Unix, scrivendo da zero un sistema che fosse all’altezza di quello sfornato dai Bell labs.

Infatti all’epoca alcuni progetti simili avevano già preso vita; di questi, due in particolare ispirarono la nascita di Linux: il progetto GNU e Minix.

  • Il progetto GNU (GNU is Not Unix), avviato nel 1984 da Richard Stallmann, è un ambizioso progetto, che si propone di creare un sistema operativo universale, completo di tutti i programmi di contorno, all’insegna del concetto di free software. Free software (software libero) è tutto il software che garantisce di poter essere sempre distribuibile e modificabile liberamente, ma di questo parleremo meglio a fine paragrafo.

Il progetto, attivo ancora oggi, in più di vent’anni non è ancora stato completato. Nonostante questo, tuttavia, vedremo che i moderni sistemi Linux utilizzano grande quantità di codice dal progetto GNU, al punto da essere spesso chiamati GNU/Linux.

  • Minix, come suggerisce il nome, è un piccolo clone di Unix, nato con l’obbiettivo di essere abbastanza leggero, da poter essere installato anche sui personal computer degli studenti, e anche abbastanza economico da poter essere effettivamente acquistato; entrambe caratteristiche che Unix non possedeva. Minix è una creatura del prof. Andrew Tanenbaum, dell’università di Amsterdam, che tuttora scrive e distribuisce il sistema assieme al suo libro “Operating systems design and implementation”, utilizzato, nel corso degli anni, come testo universitario da innumerevoli schiere di studenti (tra cui il sottoscritto). Assieme al libro è distribuito l’intero codice sorgente del sistema operativo.

Linux

Anche Linus Torvalds, all’epoca studente presso l’università di Helsinki (Finlandia), studiava sul testo di Tanenbaum. Pur avendo installato Minix sul suo computer (non c’erano molte alternative), non ne era completamente soddisfatto. In primis perchè Minix era poco più di un sistema operativo “giocattolo”, ottimo da studiare, ma poco utile nella pratica. E poi perchè, anche se il codice sorgente era venduto assieme al libro, la diffusione di versioni modificate di Minix era proibita dall’autore stesso.

In parte per questo, ed in parte per esplorare a fondo le caratteristiche del suo nuovo PC 386, il giovane Linus iniziò a programmare quello che sarebbe diventato il kernel (il kernel, come vedremo tra qualche paragrafo, è il nucleo fondamentale di un sistema operativo) di Linux. Fortunatamente decise di pubblicare i suoi sforzi su Internet, con un messaggio sul newsgroup comp.os.minix (ancora raggiungibile tramite Google), e rilasciare il suo lavoro gratuitamente (a patto che nessuno lo vendesse), assieme all’intero codice sorgente, in modo che chiunque potesse metterci mano e contribuire al suo sviluppo.

Il resto lo sappiamo: i contribuenti accorsero a frotte, oltre ogni più rosea previsione, al sistema fu dato nome Linux, Linus abbracciò la licenza GPL (vedi sotto), e nel giro di qualche anno Linux si trovò a competere direttamente con concorrenti commerciali del calibro di Microsoft ed Apple, raccogliendo l’eredità dell’ormai defunto Unix.

Software libero e licenza GPL

Linux è un sistema operativo solido, molto veloce ed estremamente affidabile, ma, come i più acuti avranno già capito, non sono questi i suoi veri punti di forza.

Ciò che veramente lo distingue dagli altri è la sua natura collaborativa: Linux non è creato da una persona sola, ma è il frutto dello sforzo di una enorme comunità di sviluppatori volontari, ognuno dei quali contribuisce gratuitamente al suo sviluppo. Chiunque lo desideri, infatti, può modificare il sistema e mettere in circolazione la sua modifica a beneficio di tutti gli altri (attenzione: questo è impossibile per sistemi closed-source come Windows o MacOS). È solo grazie alla spontanea condivisione che, ancora oggi, Linux viene aggiornato e migliorato ogni giorno.

Questo spirito comunitario si trova anche tra gli utenti: i più esperti, di solito, sono sempre disposti ad aiutare i newbie (novellini), e, più in generale, chiunque abbia un problema con Linux può contare sull’aiuto degli altri utenti, riuniti attorno alle comunità dei vari forum, wiki, o mailing list. Addirittura, a volte gli utenti linux si riuniscono fisicamente nei cosiddetti LUG (Linux User Groups), associazioni di linuxiani presenti in alcune città, anche italiane.

Per capire meglio, si può azzardare questa proporzione: Linux è per i sistemi operativi quello che Wikipedia è per le enciclopedie.

Tutto ciò, in realtà, Linus non lo aveva previsto: questo modo di fare è frutto della mente sognatrice di Richard Stallmann, che abbiamo già incontrato, parlando del progetto GNU.

Ad un certo punto, infatti, successe un fatto curioso: il progetto GNU aveva sviluppato praticamente tutti i software di base per il suo sistema operativo (un editor di testo, un emulatore di terminale, il mitico compilatore GCC ecc…), ma non era ancora stato scritto il “nocciolo”, il meccanismo centrale del sistema per far funzionare tutto il resto. Linus, dall’altro lato, aveva scritto proprio quel nocciolo che mancava al progetto GNU. Il risultato abbastanza prevedibile fu una fusione di fatto tra il progetto GNU e Linux; il sistema nato da questa unione sarebbe stato chiamato GNU/Linux.

gnu-linux

Se però, da un lato, Linus Torvalds non è tipo da crucciarsi troppo se si tratta di distribuire gratuitamente il software, Richard Stallmann oltre ad essere il leader del progetto GNU, è il maggiore esponente del movimento del free software; fortunatamente Linus decise di entrare nel movimento, e iniziò a distribuire Linux secondo le regole dettate da Stallman.

software-gang

Queste regole sono descritte in un importantissimo documento, creato da Richard Stallman stesso: la licenza GNU GPL (General Public License). La GPL è uno degli oggetti di culto nel mondo Linux (e del software libero in generale), e obbliga chi crea il software a garantire queste libertà (tratte dal sito del progetto GNU) agli utenti che lo usano:

  • Libertà di eseguire il programma, per qualsiasi scopo (libertà 0).
  • Libertà di studiare come funziona il programma e adattarlo alle proprie necessità (libertà 1). L’accesso al codice sorgente ne è un prerequisito.
  • Libertà di ridistribuire copie in modo da aiutare il prossimo (libertà 2).
  • Libertà di migliorare il programma e distribuirne pubblicamente i miglioramenti da voi apportati (e le vostre versioni modificate in genere), in modo tale che tutta la comunità ne tragga beneficio (libertà 3). L’accesso al codice sorgente ne è un prerequisito.

Il tutto con un obbligo: distribuire le eventuali modifiche utilizzando la stessa GPL.

Per via di questo obbligo la GPL è affettuosamente definita licenza virus: una volta messo in circolo, un programma con licenza GPL è “condannato” a restare libero per sempre.

Questo significa che nessuno, neanche Linus Torvalds, potrà mai prendere Linux e “ritirarlo dalla comunità”, perché violerebbe la licenza GPL, e la questione potrebbe essere portata in tribunale. Un esempio?

Qualche anno fa una grossa azienda dell’informatica modificò, per esigenze commerciali, il kernel di Linux, aggiungendo alcuni componenti. Nonostante fosse contro i suoi piani, la GPL la costrinse a distribuire le sue modifiche come software libero. Come notizia non sembra un gran che, ma fa molto più effetto se si pensa che quell’azienda era niente meno che Microsoft.

Chi volesse approfondire la conoscenza del mondo del free software, può dare un’occhiata a queste pagine:

In conclusione, visto la giusta e dovuta introduzione a Linux, due cose importanti:

  1. Il testo e le immagini qui sopra sono tratti da questa pagina Introduzione, storia e filosofia a cura di Dario
  2. Pertanto come io ho potuto utilizzare, riprodurre, modificare il materiale di cui sopra, anche voi potete farlo utilizzando gli stessi criteri, ovvero, citando la fonte e gli autori. Per saperne di più, clicca sulla => licenza

 

 

Alla prossima

UmMawebdesign