Open!

Linux, con o senza GNU? Per free s'intende gratis, o qualcos'altro? Open source significa che non si paga, no?
Domande lecite per chi non ha mai approfondito l'argomento e che, spesso, ha anche poche conoscenze tecniche. Certamente Google risponde a tutte queste domande, ma un rissuntino molto semplificato può tornare utile

Senza alcuna pretesa di completezza nè di precisione maniacale, penso che gettare le basi per orientarsi nella terminologia del mondo Open sia un buon modo per invogliare all'approfondimento. Per le persone interessate un buon motore di ricerca e il web faranno il resto; chi, invece, non crede che l'argomento valga la pena di un seppur minimo sforzo, potrebbe cambiare idea... speriamo :P


  • TERMINOLOGIA
Allora preciso subito che io mi riferisco alla filosofia Open (comunità, mentalità, ecc...) intendento tutto un universo multiforme e variegato che si contrappone a quello regolato dai copyright classici. Come vedremo, un concetto più specifico di open source, molto più ampio del semplice 'gratuito'.
Seguitemi con lo schemino qui in allegato, contiene forti approssimazioni ma almeno è comprensibile senza troppo legalese.
  • Pubblico Dominio: tutto ciò che esiste ed è fruibile è di pubblico dominio, ovvero non esiste alcuna regolamentazione sul suo uso e consumo
  • Copyright: per regolamentare la cosa è stata eretta la barriera dei 'diritti d'autore' - inizialmente per proteggere gli autori, ma poi la cosa è nettamente degenerata, tanto che oggi più spesso gli autori sono invece danneggiati dai diritti che, invece, favoriscono le major che nulla hanno prodotto; ed è sintomatico il fatto che abbiano piegato il significato stesso della parola "produrre = generare, fabbricare" ad un "produrre = finanziare, distribuire" che è del tutto arbitriario e fuorviante.
  • Copyleft: in tempi ben più recenti è nata l'esigenza di liberarsi da questi vincoli sempre più iniqui. Grazie a Richard Stallman e alla sua Free Software Foundation nasce il concetto di copyleft. Gioco di parole tra "right = diritto | destra", ma anche tra "left = sinistra / leave = lasciare (libero)", il concetto regola con licenze più o meno restrittive tutto ciò che è libero, ma non più di pubblico dominio - si noti (e capiremo più avanti), che spesso le licenze copyleft sono fautrici di diritti rovesciati, anche qui gioco di parole dall'espressione inglese "rights reserved <-> reversed", nel senso che il termine 'restrittivo' assume significato opposto al consueto, in quanto a venir confinate sono le libertà dell'autore (che comunque lo fa consapevolmente) e poi del possessore, in favore di un allargamento (tutela) di quelle dell'utilizzatore.
  • Open source: sorgente aperto, ovvero un programma il cui codice sorgente è visionabile e modificabile; di base non pone altri vincoli.


Vediamo allora che i primi due termini sono utilizzabili (ed utilizzati) in più ambiti, nonostante il secondo sia nato specificatamente per quello tecno-informatico. Il terzo, invece, è molto settoriale in quanto si riferisce esclusivamente all'ambito software, anche se è stato allargato, con licenza 'poetico-terminologica', anche a quello hardware; ma è una cosa appena nata e indefinita per ora, non ne parlerò.

Guardando lo schemino focalizziamo l'attenzione sulle due barriere che si contrappongono nella nostra trattazione: quella del software proprietario e quella dell'intero ambito copyleft.



  • IL SOFTWARE PROPRIETARIO
Il software proprietario può essere:
  • assoluto: la maggior parte; a pagamento e con ampi vincoli restrittivi (EULA), il più delle volte il compratore non ne diventa proprietario, che rimane il detentore dei diritti (quasi sempre non è l'autore stesso) -  da qui il termine, per indicare che il proprietario è una figura giuridica a sè stante ed indipendente dalla diffusione fisica del programma
  • condiviso: ovvero il software viene rilasciato sotto clausole che permettono una certa condivisione dell'esecutivo compilato; in particolare...
    • shareware: la condivisione è limitata nel tempo
    • freeware: la condivisione non ha limiti di tempo ma, si noti, è relativa al solo esecutivo ed inoltre non fornisce alcun diritto all'utilizzatore di distribuzione (anzi, quasi sempre lo vieta espressamente) - spesso esistono altri vincoli quali, per esempio, il divieto dell'uso per fini commerciali e/o professionali


  • IL SOFTWARE LIBERO
E finalmente si spiega il continuo confondersi dei due concetti, profondamente diversi, di 'gratuito' e 'libero'. Fondamentalmente è colpa dell'inglese e delle software-house che ci giocano su: free significa libero, ma anche gratis; ovviamente la gente capisce solo quello che gli serve e quindi si limita al secondo aspetto.
Tuttavia il software libero è molto di più. In sintesi, deve aderire ad (almeno) i quattro punti fissati da Stallmann:
  • Libertà 0: Libertà di eseguire il programma per qualsiasi scopo.
  • Libertà 1: Libertà di studiare il programma e modificarlo.
  • Libertà 2: Libertà di ridistribuire copie del programma in modo da aiutare il prossimo.
  • Libertà 3: Libertà di migliorare il programma e di distribuirne pubblicamente i miglioramenti, in modo tale che tutta la comunità ne tragga beneficio

  • LE LICENZE
Esistono poi delle licenze che fissano ulteriori vincoli-svincoli, quali l'obbligo di ridistribuire sotto uguale licenza, senza scopo di lucro, citando tutti gli autori, ecc...
Le più famose, che ho messo anche in schema, sono le licenze GNU (gestite dall'omonima organizzazione, costola della FSF) e quelle Creative Commons, gestite dall'omonima organizzazione no-profit.
La prima è nata col progetto del sistema operativo GNU, ma poi si è allargata alla documentazione ed è oggi utilizzabile per scritti di vario tipo: Wikipedia è il caso più eclatante di documentazione rilasciata sotto questa licenza.
La seconda, invece, è nata per trasportare i concetti del software libero in ambito non informatico, in particolare quello artistico, adattandola ove necessario.
Entrambe constano di più varianti, in base alle clausole aggiuntive. Entrambe sono, come detto, utilizzabili anche in ambiti non informatici, ma quando riguardano il software includono per loro natura il vincolo di open source.


  • OPEN SOURCE
Una piccola precisazione sull'open source.
Nello schemino ho cercato di collocarlo in modo che si noti come questo modo di ditribuzione (l'open source non è una licenza in senso stretto), non ponendo molti vincoli, è collocabile/utilizzabile in tutti e tre i domini: pubblico dominio, copyright e copyleft.
Anche se assurdo, tuttavia non esiste restrizione per cui un software proprietario non possa essere distribuito coi codici sorgenti; così, nessuna restrizione sul fatto di rendere proprietario un sorgente ottenuto tramite distribuzione open source.
Quindi vediamo come queste filosofie di distribuzione sovvertano i concetti a cui siamo abituati. Alle volte più libertà può significare maggiori vincoli, altre volte pochi vincoli potrebbero portare alla negazione della libertà.
La discussione tra la comunità open source e quella del software libero è aperta e spesso vivace. Per quel che mi riguarda, l'importante è che sia sempre costruttiva: in fondo, entrambe lavorano per il riconoscimento della libertà di tutti.




  • SCHEMA RIASSUNTIVO
Riassumiamo allora i concetti, in modo molto basilare ed approssimato
  • Software proprietario: quello a cui ci hanno abituato, si compra e si usa esclusivamente da utilizzatore; non si può copiare, distribuire, modificare, ecc...
  • Shareware: come sopra, me per un breve periodo possiamo provarlo senza acquistarlo
  • Freeware: è gratis, ma vigono tutte le altre restrizioni
  • Open source: un programma distribuito assieme al suo codice sorgente
  • Libero: un programma (ma come abbiamo visto, il concetto è allargabile a qualsiasi opera intellettuale) che, oltre ad essere open source, è rilasciato sotto una licenza di tipo copyleft


  • E FINALMENTE... GNU/Linux!
Siamo arrivati finalmente alla conclusione più pratica di tutto ciò: il sistema operativo GNU/Linux, rilasciato sotto licenza GNU/GPL. Ho schematizzato con i diagrammi tanto cari al signor Venn una possibile rappresentazione dei rapporti tra gli elementi che solitamente entrano in gioco quando volgarmente si parla semplicemente di Linux.
Storicamente nasce prima il progetto GNU, grazie al solito Stallman. Richard fece il 'contorno' ma la bistecca, il sistema HURD, si sta facendo ancora attendere.
Nel frattempo uno studente di nome Linus Torvalds iniziò, con un semplice upload FTP ed un post in un forum, lo sviluppo comunitario del kernel Linux.
L'unione fa la forza, e così come mostra lo schema in figura, il kernel Linux divenne il cuore dell'OS GNU, andando a costituire quello che è appunto il sistema operativo completo GNU/Linux. Quindi, in effetti, parlare del solo Linux è improprio ma, di fatto, è una contrazione ormai accettata... purchè sia chiara la differenza ;)



  • DISTRIBUZIONI
Ovviamente col progredire del progetto e l'aumentare delle risorse tecnologiche si sono presentati vari bivi possibili. Non solo in ambito strettamente tecnico, ma come abbiamo visto anche per le diverse interpretazioni e messe in atto della filosofia Open.
Nascono dunque le distribuzioni linux (distro), ovvero sistemi e comunità che condividono lo stesso modo di vedere (il più possibile almeno). Le storiche sono Debian e Slackware, poi RedHat, SuSE, Gentoo e via così. Ad oggi sembra siano più di 300 (!), di cui 'usabili' (nell'ottica dell'utente medio) almeno un centinaio; di fatto, credo che le più diffuse siano una ventina.
Alle volte le differenze sono abbastanza marcate, altre volte impercettibili. Fondamentalmente è una questione di 'pelle' e di esigenze personali; soprattutto ultimamente le specifiche esigenze di prodotto (leggerezza per i netbook, compattezza per uso off-line, essenzialità e per installazioni da pen-drive, ecc...) sono quelle che hanno dato più fermento alla produzione di nuove distro e al remixaggio di quelle esistenti.
Le principali le trovate nel box dei link qui a fianco, quello chiamato appunto Distribuzioni Linux. ^^


  • DESKTOP ENVIROMENT
Il cerchio più ampio, quello che racchiude gli altri e li protegge dal mondo esterno, fornendo quindi l'interfaccia per l'utente, è quello dei DE- Desktop Enviroment. Questi sono, come dice il nome, gli ambienti desktop a disposizione. In Linux ne esistono diversi, solitamente ogni distro assume il suo; perchè, come si sa, anche l'occhio vuole la sua parte ^__-
Ma non è solo questione d'estetica. Gli utenti, sempre più abituati alle interfacce grafiche, tendono a legarsi al modus operandi di queste. Ogni DE ha le sue metodologie di gestione delle risorse, configurazione delle cartelle, dei programmi, ecc... Deve essere chiaro che, in realtà, questi sono solo i particolari di cose che vengono gestite dagli strati sottostanti, che fanno poi la reale differenza.
Purtroppo succede che certi utenti appena approdati al mondo GNU/Linux rimangano sfavorevolemnte impressionati dalla semplice differenza nel posizionamento di un programma o di un'opzione; ma è anche normale, se tanti non sanno nemmeno che è possibile cambiare DE!
I più famosi sono: Gnome (Ubuntu, Debian, ecc...), KDE (RedHat, Slackware, Kubuntu, ecc...). XFCE (Xubuntu, ecc...), OpenBox, FluxBox, ecc...


  • SHELL: AMORE E ODIO
La linea di comando incute ai più un terrore atavico. Eppure è un validissimo strumento che con GNU/Linux non è stato snaturato. Anzi, teoricamente (ma anche in pratica per molte distro), il sistema è usabile anche senza l'ausilio dell'interfaccia grafica; semplicemente con un bello schermo nero e un cursore lampeggiante, come ai vecchi tempi :P
Per questo nello schema un pezzettino di GNU spunta fuori: quella è la shell, capace di fornire un'interfaccia senza passare dal DE. Ma anche i DE stessi forniscono una shell (che poi fa da interfaccia con quella reale sottostante), a riprova di quanto sia ancora fondamentale l'approccio da linea di comando.


  • RICAPITOLANDO
Il sistema operativo è GNU/Linux; Linux è il kernel, GNU il resto. Se lo chiamate solo Linux può andare bene, ma tenete sempre a mente la differenza!
Questo OS viene fornito da varie distro, ovvero 'impacchettature' con una determinata coerenza (di soluzioni tecniche, grafica, filosofia di rilascio, ecc...)
Spesso ogni distro ha un certo Desktop Enviroment, ma comunque si può sempre scegliere tra diversi DE, ovvero l'interfaccia grafica con la quale s'interagisce.
Tuttavia, tenete presente che il DE non è indispensabile, la shell sa fare tutto (e anche di più) e più velocemente, anche se di solito meno intuitivamente.