sabato 29 dicembre 2007

Navigare anonimi


La quantità di informazioni che il nostro browser trasmette quando navighiamo è enorme, e se non stiamo attenti possono contenere anche dati "sensibili".

Quando navighiamo, il nostro browser manda una serie di informazioni ad ogni pagina che apriamo, questo spesso per garantirci il corretto funzionamento del sito e la sua visualizzazione, alcuni esempi sono la risoluzione dello schermo, la lingua, il browser che state utilizzando, il sistema operativo, se state usando una connessione wireless,il fuso orario, una serie di impostazioni tecniche perlopiù sconosciute all'utente ma rilevanti per la macchina ( e per chi ne vuole conoscere lo stato).
inoltre si può rintracciarla vostra posizione non solo dal fuso orario e dalla lingua, ma , ancor più precisamente, tramite il vostro indirizzo IP, che può dire in che provincia state scrivendo.
Queste sono informazioni istantanee, che vengono trasmesse e dicono ciò che avete letto, esistono però anche i cookie, piccoli file di testo, che vi vengono assegnati dai siti mentre navighiamo, essi contengono informazioni varie, da l'ultima volta che siete stati sul sito xyz che ve l'ha assegnato, alle vostre preferenze sullo stesso sito, insomma tengono traccia delle vostre abitudini.
In genere i cookie immagazzinati sul vostro PC possono essere letti solo dai siti che gli hanno creati, perciò potrebbe importare poco se il sito abc.com si ricorda l'ultima volta che l'ho visto, e che sono andato nella sezione di musica, discorso diverso però è quando un cookie è assegnato da un motore di ricerca come google, msn o yahoo o qualsiasi altro, questi infatti sarà in grado di riconoscervi ogni volta che l'usate , ed userà un cookie per farlo, tracciando così le vostre ricerche.
Inoltre i javascript di cui molti siti fanno largo uso, possono essere si utili, ma possono essere usati anche per violare la vostra privacy, essendo uno strumento molto potente.

Qui potete vedere alcune informazioni mandate dal vostro browser

http://privacy.net/analyze/

Detto questo, c'è anche da specificare, che sebbene si possano tracciare le ricerche, le abitudini e la posizione approssimativa di un navigante, tutte queste informazioni difficilmente potranno essere ricollegate a voi come persona fisica, in quanto quando girate per la rete la vostra "faccia" è il vostro IP, e solo il service provider può ricollegarlo a voi.

In ogni caso dare tante informazioni quando navigate non è comunque una buona cosa, anche per il lato sicurezza, inoltre perché dare informazioni spesso non necessarie al fine di una buona navigazione? o meglio, perché darle indiscriminatamente?

Questo è un tutorial che spiega come salvaguardare la propria privacy mentre si naviga, utilizzando vari strumenti e cercando nella maniera più semplice possibile di spiegare i meccanismi da cui ci mette al riparo.

Iniziamo:

1) Il browser

Per navigare anonimi usiamo Firefox (Iceweasel su Debian), scarichiamolo e installiamolo ( per chi usa Linux non cè bisogno di dire di usare i gestori di pacchetti della propria distribuzione)

http://www.Mozilla-europe.org/it/products/Firefox/

Cominciamo con una prima configurazione di base

Modifica --> preferenze --> privacy

Nella sezione cookie selezioniamo "chiedi ogni volta" , questo farà si che ogni volta che un sito vorrà assegnarci un cookie questo ci venga chiesto, potremo rispondere accetta, respingi o accetta per la sessione.
Nei primi due casi Firefox si ricorderà la scelta e non ci chiederà più nulla, se comunque vogliamo modificare l'impostazione per un articolare sito, nella stessa pagina di configurazione in cui siete, cliccate su "eccezioni" e cercate il sito di cui volete modificare lo stato.

In genere è bene rifiutare i cookie, questi sono necessari solo in alcuni siti quando vi dovete loggare ad esempio, fate attenzione ai siti che autorizzate. il consiglio è dire sempre no, nel caso se si vedesse che qualcosa non funziona e sono necessari i cookie si potrà cambiare la propria scelta come detto sopra.

Sempre sulla stessa pagina di configurazione spuntate "elimina sempre i dati personali alla chiusura di Firefox", e poi cliccate su impostazioni, selezionare quindi cookie, e se desiderate anche altri punti come cronologia o cache ( che è sempre meglio ma non strettamente necessario).

Ora installiamo le estensioni che garantiranno la nostra privacy, (ecco perché abbiamo scelto Firefox come browser).
andate in

Strumenti --> componenti aggiuntivi

Qui è dove vengono gestitele estensioni e i temi di Firefox

In "estensioni" cliccate su scarica estensioni, verrete riportati alla pagina del sito di Mozilla in cui sono raccolte tutte le estensioni create.
Nella barra "cerca" inserite i nomi delle estensioni che vi elenco e installatele, il procedimento è talmente banale che evito di descriverlo.

Estensioni da installare :

Noscript
Adblock plus
Configuration mania
Fasterfox
Imglikeopera
Refcontrol

Ora non resta che configurarli.

- Noscript

Questa estensione blocca l'esecuzione degli script nelle pagine web tranne quelle autorizzate espressamente (perché fidate) da voi.
Di base questo plugin blocca solo i javascript, meglio fargli bloccare anche i plugin flash.

Cliccate sulla S in basso a desta

Opzioni --> avanzate --> non fidato

Qui spuntate la casella "macromedia flash"

Fatto.

Quando siete su un sito a cui volete permettere di eseguire script ( in genere ve lo dice lui di abilitare i javascript) basta cliccare sempre sulla S e dirgli di abilitare gli script per la pagina in questione (anche temporaneamente).
Ricordate fatelo solo su siti fidati.

- Adblock plus

Questa estensione blocca tutti i banner e le pubblicità fastidiose (ok non centra con la privacy, ma è comunque comodo).
Cliccate sul cartello rosso "abp" in basso a destra

Filtri --> aggiungi sottoscrizione --> selezionate dal menu a tendina una sottoscrizione

Ripetete il passaggio almeno un altra volta in modo da avere un paio di sottoscrizioni.
Queste sono gli elenchi di cose da bloccare fatte da altri, perciò un paio di sottoscrizioni sono meglio di una.

- Imglikopera

Questo plugin ci permette di scegliere quale immagini caricare e quali no, noi lo useremo per non caricare tutte le immagini che non sono del sito che stiamo visitando.
Questoleverà pubblicità (che in genere è esterna al sito), ma ci proteggerà contro alcuni attacchi statistici basati sull'apparizioni delle immagini, facendoci anche risparmiare banda per non caricare immagini spesso inutili.

In basso a destra ce il tastino per configurare questo plugin, fermandovi sopra col mouse apparirà il nome "imglikeopera".
Cliccate sulla freccina nera che c'è nel tastino si aprirà un menù da cui selezionare "pagina delle impostazioni", selezionatele e qui sotto "regola predefinita" selezionate "carica immagini solo per il sito web di origine".

- Configuration mania

Andiamo a cambiare l'user-agent del nostro browser, cioè la stringa in cui il nostro browser informa che programma usiamo per navigare e il sistema operativo.

Strumenti --> scheda browser

Selezioniamo user-agent e qui selezioniamo custom e mettiamo quello che ci pare (anche quack quack, oppure lasciate anche vuoto), i siti non riconosceranno l'user-agent e agiranno in ogni caso come se non l'avessimo mandato, altrimenti possiamo fingere di avere un altro browser e un altro sistema operativo, ma a volte crea problemi su alcuni siti.

- Resrefer

Questa estensione blocca i refer, cioè quello che dice ai siti in cui navighiamo il sito da cui proveniamo

Strumenti --> opzioni di refcontrol --> modifica --> selezioniamo "blocca - non inviare alcun refer"

- Fasterfox

Questa estensione serve a velocizzare la nostra navigazione, non centra con la privacy, ma è utile nel caso si usi un proxy o una rete come tor (che verrà spiegata più avanti), in ogni caso navigare più veloce non è certo un male.

Sempre in basso a destra cliccate sul pulsante di fasterfox col tasto destro.

Selezionate opzioni e qui selezionate caricamento turbo, poi fate ok.

Bene ora navigherete senza lasciare troppe informazioni in giro per la rete, i siti che visiterete non potranno più approfittarne ( stando ovviamente attenti a quali siti dare fiducia attivando i cookie e gli script), ma questo non mette al riparo del tutto, esiste una violazione della privacy che può venire dall'analisi del traffico di rete e dai log dei provider, che come detto sono quelli che possono collegare le vostre navigazioni a voi.

2) Tor

TOR è una rete di tunnel virtuali che serve a rendere anonima la navigazione nascondendo il vostro IP ai siti, e impedendo al provider di vedere gli IP ( e quindi i siti ) in cui navigate.

TOR ha la stessa funzione di un proxy anonimo ( http://it.wikipedia.org/wiki/Proxy ).

Qui trovate un descrizione di cosa è TOR e da cosa protegge

http://tor.eff.org/overview.html.it

Qui la sua pagina principale

http://tor.eff.org/index.html.it

Il sito spiega perfettamente tutto, compreso il modo per installare e configurare il programma.

Aggiungo solo il link di privoxy che mi pare non sia segnalato nel sito

http://www.privoxy.org/

Al posto di privoxy si può utilizzare anche un altro web-proxy, polipo ( http://www.pps.jussieu.fr/~jch/software/polipo/ )
che dalla versione 1.x può essere utilizzato con tor, rispetto a privoxy polipo rientra nella categoria dei proxy-cache, cioè più che filtrare i contenuti "velocizza" la connessione (importante su una rete come tor).
NB: non ho provato personalmente l'ultima configurazione ( Firefox --> polipo --> tor).

Privoxy è il proxy predefinito nel sito di tor per le sue funzioni, che però sono ampiamente svolte dai plugin che avete installato e quindi potete permettervi di usare un proxy che svolga funzioni di caching (il perché vi serva un proxy locale è spiegato sul sito di tor).

Ultima nota personale, tor è ancora in sviluppo, sebbene ultimamente sia migliorato parecchio (sopratutto in usabilità) ogni tanto soffre di intasamenti di banda, rallentando parecchio la connessione, detto questo è sicuramente da installare anche solo per dargli un occhiata.
Come detto sul sito , tor on garantisce ancora un anonimato forte, perciò se ne avete bisogno per scopi lavorativi rivolgetevi ad aziende specializzate.

Questo tutorial è stato scritto il 25/8/2007, e tutto è stato testato su una Debian Etch, anche se i vari programmi funzionano anche su Windows.

venerdì 28 dicembre 2007

Iniziare con GNU/Linux


Questo tutorial è indirizzato a chi per vari motivi è deciso a provare Linux: per vedere, ad esempio, se possa essere adatto ai propri scopi e risultare un sistema operativo più efficiente e sicuro rispetto a quello che si sta utilizzando in questo momento; questa guida non ha la pretesa di dimostrare nulla, ma solo di informare un eventuale utente interessato a questo sistema operativo.

1) Le basi

Linux è solo il kernel del sistema operativo, cioè il cuore a cui si interfaccia tutto il resto, ma il modo più corretto per chiamare questo sistema operativo opensource è GNU/Linux: il progetto GNU ha infatti scritto una serie di programmi che insieme al kernel Linux formano un sistema operativo funzionante ( molto basilare, lontano da quello che normalmente siamo abituati a pensare essere un sistema operativo ). Successivamente altri progetti seguendo un modello di sviluppo opensource ( che prevede la completa trasparenza e condivisione del codice con chiunque voglia studiarlo e migliorarlo ), hanno scritto altri programmi (server grafico, programmi video, per masterizzare, server mail etc etc) creando quello che si può chiamare un sistema operativo GNU/Linux.

Da Wikipedia:

Linux è un termine che può assumere più di un significato. A seconda del contesto infatti può indicare il kernel originariamente sviluppato da Linus Torvalds, oppure il sistema operativo basato su tale kernel. Il nome Linux a dispetto dell’assonanza tra il nome dell’ideatore e quello del sistema (Linus - Linux) è 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.

Siccome il sistema operativo basato su kernel Linux include molto software GNU, la Free Software Foundation insiste nell’affermare che per indicarlo bisognerebbe usare il termine “GNU/Linux”, tuttavia l’accezione della parola “Linux” come nome dell’intero sistema operativo è ormai entrata da tempo nell’uso comune, sia in ambito tecnico/scientifico che in ambito popolare. Per indicare il sistema operativo basato su kernel Linux, si possono quindi utilizzare indifferentemente il termine “GNU/Linux” o il termine “Linux”.

Molto conosciuto nell’uso server, Linux gode del supporto da società come IBM, Sun Microsystems, Hewlett-Packard, 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.

Da Wikipedia:

GNU è un acronimo ricorsivo e significa GNU is Not Unix (ovvero “GNU non è Unix”).

Il Progetto GNU, lanciato nel 1983 da Richard Stallman, si basa su una gestione particolare dei diritti d’autore sul software, secondo la definizione di software libero (contrapposta a software proprietario).

Scopo ultimo del Progetto GNU è la creazione di un sistema operativo completamente libero, chiamato Sistema GNU; per arrivare a questo risultato, all’interno del progetto vengono creati programmi per coprire ogni necessità informatica: compilatori, lettori multimediali, programmi di crittografia… Nel 2005 il sistema non è ancora stato sviluppato completamente (il kernel HURD non è ancora pronto per poter essere utilizzato), ma grazie al lavoro di Linus Torvalds è possibile usare il Sistema GNU con il kernel Linux, ovvero il sistema GNU/Linux.

Attualmente esistono delle alternative al kernel Linux, fra cui Darwin che è anche alla base di Mac OS X, ma nessuna è diffusa come il kernel Linux.

Fulcro di tutta l’attività del Progetto GNU è la licenza chiamata GNU General Public License (GNU GPL), che sancisce e protegge le libertà fondamentali che, secondo Stallman, permettono l’uso e lo sviluppo collettivo e naturale del software. Un’altra licenza, la GNU Free Documentation License (GNU FDL), è stata scritta per coprire la documentazione, ed è usata anche dal progetto Wikipedia. Per poter gestire alcuni casi, ad esempio lo sviluppo di librerie, il Progetto GNU ha creato anche la GNU Lesser General Public License (GNU LGPL), che permette di integrare software libero all’interno di software proprietario, specialmente per ragioni di compatibilità e portabilità.

Da Wikipedia:

In informatica, open source (termine inglese che significa sorgente aperto) indica un software rilasciato con un tipo di licenza per la quale il codice sorgente è lasciato alla disponibilità di eventuali sviluppatori, in modo che con la collaborazione (in genere libera e spontanea) il prodotto finale possa raggiungere una complessità maggiore di quanto potrebbe ottenere un singolo gruppo di programmazione. L’open source ha ovviamente tratto grande beneficio da internet. Alla filosofia del movimento Open Source si ispira il movimento Open content: in questo caso ad essere liberamente disponibile non è il codice sorgente di un programma ma contenuti editoriali quali testi, immagini, video e musica.

2) Le distribuzioni

Premessa:

Quella che segue è un introduzione al mondo GNU/Linux con alcuni cenni storici, che richiede il possesso di alcuni concetti basilari di informatica.
Si potrebbe dire che il computer sia semplice come un tostapane, e che non si possa pretendere di dover studiare per poterlo usare, ma per adesso non è così, esso è uno strumento potente e complesso e il possesso di alcuni concetti basilari è necessario per comprendere ed utilizzare consapevolmente la propria macchina.

Il tutto verrà spiegato in maniera semplice, in quanto è necessario comprendere solo i concetti basilari, che stanno dietro ad alcune situazioni cui ci si troverà davanti.
Prerequisito necessario è comprendere cosa sia un sistema operativo (e verrà spiegato tra poco), ma per farlo dovete prima sapere cosa sia un programma.

Un programma in informatica è una sequenza di operazioni che il computer deve eseguire, scritta in un linguaggio che lui può comprendere, detto linguaggio di programmazione.

I linguaggi di programmazione ( ne esistono molti ) sono dei linguaggi di intermezzo tra uomo e macchina, l’uomo scrive i propri programmi usando questi linguaggi, che sono tipicamente informatici, ma che comunque sono comprensibili e leggibili dal programmatore, infatti non si può scrivere un programma direttamente nella lingua dei computer che è il “binario”, cioè lunghe sequenza di uno e di zeri.
Così i programmi vengono scritti usando questi linguaggi di programmazione e poi “compilati”, cioè tradotti in binari (zeri ed uno) eseguibili dal computer.

Da Wikipedia:

Nell’informatica, un programma per calcolatore, o semplicemente programma, è la descrizione di un algoritmo in un linguaggio adatto a essere eseguito da un computer o da una macchina virtuale. È una sequenza logicamente ordinata di operazioni o comandi di istruzioni, un insieme di istruzioni che produce soluzioni per una data classe di problemi.

Un programma scritto in linguaggio macchina, e direttamente eseguibile da un computer (normalmente inteso come unione di hardware e sistema operativo), è detto anche programma eseguibile o programma binario. Un programma scritto in linguaggio assembly o in un linguaggio di programmazione ad alto livello, per contro, può essere eseguito solo utilizzando un compilatore o un interprete (o entrambi) e viene detto programma sorgente.

Iniziamo:

Essendo Linux solo il kernel, da solo non può far nulla: fu così che nei lontani primi anni 90 cominciarono a nascere le distribuzioni.
I primi Linux hacker dovevano recuperare per la rete i vari programmi dovendoseli compilare (cioè renderli eseguibili, operazione che può richiedere anche ore per singoli programmi, prima di poter essere installati), il tutto per creare un sistema operativo funzionante e funzionale ( anche un sistema operativo basilare richiede un sacco di programmi ), perciò chi per esempio montava il suo sistema GNU/Linux poi impacchettava tutto e lo “distribuiva” (appunto), in modo che altri utenti potessero installare GNU/Linux facilmente.

Una sorta di rivoluzione fu introdotta nel ‘91 da Patrick Volderking, “il sistema di pacchetti”: i programmi venivano compilati (cioè trasformati in binari eseguibili dal codice sorgente) e impacchettati, e un gestore di pacchetti presente nel sistema operativo GNU/Linux distribuito da Volderking li poteva installare facilmente , per poi rimuoverli in maniera altrettanto semplice e pulita, sollevando l’utente dal dover andare a cancellare tutti i file che il programma installava per le varie directory del sistema.

Questo sistema è presente tutt’oggi nelle moderne distribuzioni: i programmi infatti si installano usando i gestori di pacchetti, non esistendo gli .exe come su Windows.
Con gli anni però i gestori di pacchetti sono migliorati, anche se questi rendevano più semplice e veloce la gestione del sistema, installare un programma in una distribuzione GNU/Linux era comunque tedioso, in quanto molti programmi avevano bisogno di altri programmi per funzionare (chiamati “dipendenze”), e a risolvere queste era l’utente che doveva sapere quali erano le dipendenze che richiedeva un programma e doveva procurarsele per la rete, e nel caso non fossero impacchettate per la propria distribuzione doveva farlo lui. Inoltre molte dipendenze erano intricate e difficili da risolvere, insomma un lavoro impietoso.

I gestori di pacchetti furono così migliorati e al giorno d’oggi con un comando ( o un clic se li usa da interfaccia grafica) installano il programma prescelto risolvendo loro le dipendenze e scaricando tutto dai repository, cioè server dove sono presenti tutti i “pacchetti” ( cioè programmi come spiegato sopra), messi a disposizione da chi cura la distribuzione.

Esistono diversi gestori di pacchetti, e vari tipi di pacchetti, ogni gestore può in linea di massima gestire solo i programmi impacchettati per lui.

da Wikipedia:

Sistema di gestione dei pacchetti è una collezione di strumenti che automatizzano il processo di installazione, aggiornamento, configurazione e rimozione dei pacchetti software di un computer. Il termine è più comunemente utilizzato in relazione a sistemi Unix-like (tipo Unix), particolarmente Linux, dato che questi sistemi poggiano molto più pesantemente su di esso, con migliaia di pacchetti in una sola normale installazione.
In tali sistemi, il software è distribuito in pacchetti, generalmente incapsulati in un singolo file. I pacchetti spesso includono anche altre importanti informazioni, come il nome completo, versione, e fornitore del software, informazioni sul checksum, ed una lista di altri pacchetti, conosciuti come dipendenze, che sono necessarie al software per funzionare correttamente.
I sistemi di gestione dei pacchetti sono incaricati del compito di organizzare tutti i pacchetti installati in un sistema e mantenere la loro usabilità. Questi sistemi raggiungono questo scopo usando varie combinazioni delle seguenti tecniche:

* Verifica del checksum dei file per evitare differenze tra le versioni locali ed ufficiali di un pacchetto;
* Semplici strumenti per l’installazione, l’aggiornamento, e la rimozione;
* Gestione delle dipendenze per la distribuzione del software funzionante da un pacchetto;
* Controllo degli aggiornamenti per fornire le ultime versioni dei software, che spesso includono riparazioni di difetti ed aggiornamenti di sicurezza;
* Raggruppamento di pacchetti a seconda della funzione per aiutare l’utente ad eliminare la confusione durante l’installazione ed il mantenimento.

Da Wikipedia:

Una distribuzione Linux, detta anche distro, è una distribuzione software che include un kernel Linux e un insieme variabile di altri strumenti e applicazioni software, siano esse freeware, open source o commerciali. Queste distribuzioni includono anche strumenti software che guidano l’utente nel processo di installazione del sistema. Recentemente hanno cominciato a diffondersi anche distribuzioni cosiddette live, che non richiedono installazione, e il cui bootstrap può avvenire direttamente da un supporto come CD o DVD.

Società come Red Hat, Novell (per SUSE), Mandriva e Ubuntu, e progetti di comunità come Debian, Slackware e Gentoo, assemblano e testano le varie componenti software rilasciando distribuzioni personalizzate e variegate, per la maggior parte gratuite. Ci sono a questo momento più di 300 progetti di distribuzioni linux in attivo sviluppo, revisione e miglioramento che si differenziano per scelte progettuali, come i vari software di mantenimento del sistema per l’installazione, la rimozione e la configurazione del software.

Tornando a noi; sapendo cosa sono ora le distribuzioni, ci si può chiedere: “cosa le distingue l’una dall’altra?”.
Prima di tutto il gestore di pacchetti utilizzato, poi la politica adottata nell’introduzione dei programmi da includere nella distribuzione: alcune inseriscono le ultime versioni dei programmi, altri invece rilasciano ogni 2 anni, inserendo solo programmi testati e definiti, altre differenze invece sono solo di carattere estetico.

Esistono infatti più di 400 distribuzioni, ma molte sono derivate da altre e cambiano ben poco da esse e in genere i programmi installati di default, magari migliorano la localizzazione linguistica per uno specifico paese.
Le distribuzioni”maggiori” sono una decina.

3) Caratteristiche GNU/linux

Premessa : il sistema operativo è composto da quelle componenti che gestiscono l’hardware e lo interfacciano alle applicazioni

da Wikipedia:

In informatica, un sistema operativo (abbreviato in SO, o all’inglese OS, operating system) è il programma responsabile del diretto controllo e gestione dell’hardware che costituisce un computer e delle operazioni di base. Si occupa dei processi che vengono eseguiti e della gestione degli accessi degli utenti. Compito del sistema operativo è inoltre quello di virtualizzare le risorse hardware e software nei confronti dei programmi applicativi.

Una distribuzione GNU/Linux non è solo un sistema operativo perché fornisce anche molte applicazioni, che sono formalmente da escludere dalla definizione corretta ; di seguito si parlerà di sistema come l’insieme di quest’ultimo e delle applicazioni che possano girare su di esso, intendendo in pratica tutto il software necessario a compiere un lavoro, anche se non tutto fa parte del sistema operativo vero e proprio.

Ora che si hanno le basi si può cominciare a parlare dei pro e dei contro di un sistema GNU/Linux ( i principali infatti sono comuni a tutte le distribuzioni ).

Partiamo dal presupposto che il computer è una macchina che serve a determinati scopi, perciò la qualità di un sistema operativo dovrebbe essere data dalla capacità di esso di eseguire compiti che portano al raggiungimento del nostro scopo.

Caratteristiche fondamentali di un sistema, indipendentemente dall’uso che se ne si fa, sono: stabilità, velocità, intuitività, semplicità, supporto hardware, sicurezza.

Queste son le caratteristiche che caratterizzano un sistema ( inteso come sistema operativo più i programmi che ci sono installati).

Come viene valutato un sistema GNU/Linux rispetto a questi punti?

In realtà la risposta non è univoca, per via del sistema di distribuzioni che lo contraddistingue, infatti politiche di sviluppo diverse portano a risultati diversi, avendo distribuzioni più stabili ma meno intuitive, o più intuitive ma meno stabili etc…

Visto che però un confronto tra tutte le distribuzioni risulterebbe lungo, mi limiterò a confrontare gli aspetti comuni a tutte le distribuzioni, rispetto al sistema operativo più usato, windows, che è in genere quello da cui si pensa eventualmente di passare a un sistema GNU/Linux.

- Stabilità

Ovviamente se il sistema risulta instabile, non mi permette di lavorare, quindi questo è il primo prerequisito che dovrebbe avere, dovrebbe essere ben scritto e ben testato, in modo che non compia mai errori, che non crashi, non si spenga, non rallenti a causa di bug ( errori di programmazione ) etc…
Insomma deve funzionare bene e fare quello per cui è stato scritto.
In generale le distribuzioni GNU/Linux sono più stabili e meno buggate di Windows , il sistema di sviluppo opensource permette di condividere codice e informazioni su di esso, avendo come risultato un sistema stabile.
Questo vale anche per i driver, che in Windows spesso sono causa di problemi di stabilità. In GNU/Linux i driver sono opensource come qualsiasi programma, perciò godono della stessa stabilità e qualità.

- Velocità

Deve essere anche veloce, perché non si può attendere molto per fare un lavoro: se per esempio voglio scrivere una mail e il client di posta ci mette 5 minuti ad aprirsi non è un buon sistema.
Per fare questo le risorse hardware richieste dal sistema operativo devono essere proporzionate alla macchina su cui è installato; in assoluto si potrebbe desiderare che esso sia il più ” leggero” possibile, in modo da andare anche su macchina obsolete ed economiche.
Alcune distribuzioni possono essere installate in modo minimale, avendo solo la riga di comando, potendo girare su hardware con solo 8 Mb di ram.
Parlando di lato desktop in genere le distribuzioni sono più leggere, spesso Windows si presenta pesante con mille processi attivi di cui non se ne capisce la ragione.
GNU/Linux invece anche nelle installazioni desktop si presenta più scattante, inoltre la qualità del codice ne slennisce l’esecuzione.
GNU/linux può essere installato da zero, installando solo quello che è necessario risparmiando così risorse preziose.

- Intuitività

Ciò dovrebbe avere una curva di apprendimento ripida, non dovrebbe richiedere particolari conoscenza per poterlo usare, il massimo sarebbe mettermi alla macchina e poter fare tutto quello che desidero senza alcun conoscenza tecnica o specifica, il sistema dovrebbe di volta in volta indicarmi la strada o il modo di ottenere ciò che desidero, senza che io debba conoscerlo per studio o per esperienza.
Windows è dominante su questo punto, il suo sistema punta-e-clicca ha fatto storia, ha introdotto il PC in milioni di case, è un risultato apprezzabile e indiscutibile.
GNU/Linux invece essendo nato da un sistema per server, ed essendo sempre stato usato da utenti “smanettoni”, ha sempre peccato su questo punto; negli ultimi anni però molte aziende hanno cominciato ad investire su questa realtà, la stessa comunità ha cambiato la sua mentalità, e si è cominciato a lavorare per rendere più “intuitivo” l’installazione e l’uso di un sistema GNU/Linux. Molto è stato fatto, infatti ormai tutte le distribuzioni hanno raggiunto Windows su questo punto.

- Semplicità

Questa si confonde spesso con la voce precedente, in realtà, non si riferisce alla facilità di utilizzo di un sistema ( che è più propriamente detta “intuitività” ) , quanto alla sua struttura interna e alla facilità nel comprenderla e modificarla. In genere questo parametro è importante quando si vuole fare qualcosa di molto particolare o se si è sviluppatori.
Può essere intesa con che qualità logica è sviluppato il sistema e quanto risulta pulito e funzionale.
La semplicità di un sistema GNU/Linux non è paragonabile con quella di Windows, il sistema è più pulito e ordinato, costruito con più logica, e quindi più facile da comprendere nei meccanismi.
Windows invece è un insieme di patch e workaround che non rendono certo la vita facile a chi cerca di capirlo, creando problemi agli sviluppatori e a chi ha necessità di usarlo per operazioni particolari.

- Supporto hardware

Se il sistema non supporta alcuni periferiche o componenti della mia macchina, mi impedisce di fatto di svolgere il mio lavoro, quindi è un punto importante nella valutazione di un sistema.
Windows in questi anni ha stretto accordi commerciali con tutte le case produttrici, così facendo ha sempre avuto supporto per qualsiasi hardware.
Una nota negativa sul supporto hardware per Windows è data dal fatto che sebbene supporti tutto, i driver e i firmware sono sviluppati dalle case produttrici e spesso sono closedsource, così capita che possano causare problemi anche di sicurezza.
In un sistema GNU/Linux tutto quello che è legato al supporto hardware è legato al kernel, perciò versioni più recenti hanno più possibilità di supportare più componenti, se un determinato rilascio di una distribuzione include una versione di Linux (il kernel) che non supporta una data periferica, l’unico modo per farla andare e backportare (cioè prendere un kernel più recente e installarlo sulla versione della distribuzione in uso) o installare i driver necessari. Quest’ultima operazione non è spesso possibile a causa della strutture di Linux,in quanto non possiede delle API (interfacce) stabili su cui produttori possano lavorare per scrivere driverclosed ( infatti i driver open vengono subito inclusi nel kernel) ( ultimamente questo è cambiato in quanto è in lavorazione una serie di API stabili che non dovrebbero cambiare da versione a versione di Linux, in modo da facilitare lo sviluppo di driver e esterni al kernel).
Il fatto che i driver vengano trattati come programmi e che siano opensource fa si che siano più stabili e sicuri rispetto alle controparti closedsource.
E’ vero che un sistema GNU/Linux non supporta spesso componenti molto recenti, in quanto molti produttori di hardware non collaborano con gli sviluppatori della comunità per creare driver opensource, rallentandone così lo sviluppo.
Una critica spesso mossa ai sistemi GNU/Linux è che siano “difficili”, che richiedano l’intervento da righa di comando per andare: in realtà questo è falso, spesso sui forum o in rete si vedono problemi risolti in questo modo perché sono problemi di incompatibilità hardware che vengono aggirati con operazioni alla base del sistema (perciò si usa la riga di comando), ma solo perché i produttori non collaborano per far andare i loro prodotti con un sistema GNU/Linux (prodotti che si è pagato ).

- Sicurezza

Questo parametro in realtà non sarebbe da inserire in quelli caratteristici di ogni sistema, perché se non si hanno scambi di informazioni con altri apparecchi (via rete o anche per supporti ), questa voce non incide.
Tuttavia siccome al giorno d’oggi qualsiasi macchina è collegate ad internet, ritengo che sia un parametro molto importante, indipendentemente dall’uso che ne si fa.
Se la una macchina non è sicura qualcuno potrebbe entrarci, potrebbe rubarmi password e dati, e quindi se utilizzo il sistema per avere un mezzo di comunicazione sicuro con la mia banca , il sistema non ha svolto il suo compito, potrebbe anche rallentare a causa dell’intervento di altri nel mio pc, magari installano chissà cosa, costringendomi poi a formattare.
Insomma la sicurezza è un parametro vitale di un sistema.
La situazione di Windows sul lato sicurezza è nota ai più, diciamo che è estremamente carente; per la versione di vista appena uscita, non ho ancora dati oggettivi ma la percezione che si ha è che sebbene qualcosa sia migliorato, sia come una goccia nel deserto.
Diciamo però che a volte la colpa di falle di sicurezza è data dai driver e programmi esterni ( su cui Microsoft non ha alcun controllo), però a noi questo non interessa perché analizziamo tutto il sistema nella sua interezza e funzionalità, perciò la conclusione è che Windows è un sistema insicuro, ma molto si può fare con buon antivirus, firewall e altri accorgimenti.
GNU/Linux è praticamente immune da qualsiasi virus o bot della rete, per via della sua struttura, inoltre usando un sistema di sviluppo opensource le falle di sicurezza vengono corrette più rapidamente.
Un esempio che viene portato in genere per confutare la sicurezza dei sistemi GNU/Linux è dato dal fatto che esso sia poco diffuso ( circa 3-4%), e che quindi non essendo un bersaglio appetibile, non crea interesse nei cracker.
In realtà ciò può essere ribattuto col fatto che Firefox detiene ormai il 40 % del mercato browser, e si dimostra più sicuro di Explorer, con la correzione di bachi in minor tempo ( c’è da dire inoltre che i browser e in generale i programmi open installati su sistemi open saranno virtualmente ancora più sicuri e stabili perché meglio integrati, è i meccanismi su entrambe le facce di comunicazioni saranno chiari e puliti).

-Note sullo stato attuale di alcune lacune di un sistema GNU/Linux

Le cose di cui ci si lamenta più spesso quando ci si interfaccia su questo sistema è nell’apprendere che:

- I giochi non vanno; in realtà molti si possono utilizzare sfruttando programmi come Wine ( programma che può far girare programmi Windows sotto Linux con prestazioni native, in quanto non è un emulatore, e che ha fatto passi da gigante), o anche usando sistemi di virtualizzazione che stanno raggiungendo livelli di prestazioni sempre più vicine a quelle native.

- Mancanza di alcuni software professionali; in particolare AutoCAD e Photoshop, entrambi hanno alternative libere come Gimp e molti programmi del tutto simili ad AutoCAD, bisogna provarli per vedere se in effetti hanno tutte le funzionalità di cui si hanno bisogno; in alternativa si possono provare ad eseguire con Wine.

- Supporto Hardware; come detto sopra molti produttori rifiutano di dare supporto per i propri prodotti, così che la scrittura di driver viene rallentata, allo stato attuale perlopiù si hanno problemi con schede wi-fi ( che vanno con installazione di driver closed o utilizzando i driver Windows con alcuni smanettamenti), con alcune smartcard, modem USB e altre periferiche “esotiche”, le normali componenti di un PC sono ormai totalmente supportate.

4) Quale distribuzione scegliere

Se si pone questa domanda su un qualsiasi forum di Linux, si riceveranno mille risposte diverse, la verità è che ognuno suggerirà quella con cui si è trovato meglio, infatti alcune distro ( termine abbreviato che sta per “distribuzione”) sono più adatte di altri ad alcuni utilizzi.

Una considerazione comunque la vorrei fare, nell’ultimi anni si sono attestati 2 tipi di politiche di rilascio per le varie distribuzioni.
Tutte le maggiori distro rilasciano versioni semestrali e biennali.

Le versioni semestrali sono in genere sempre free (inteso sia come gratis che come libere), sono dedicate all’utenza desktop, infatti sebbene siano fixate e abbiano supporto alla sicurezza spesso mostrano segni di un prematuro rilascio; queste distro sono consigliate se avete voglia di sperimentare l’universo GNU/Linux volendo provare sempre le ultime novità, senza però dover smanettare troppo ( tra queste aggiungo anche la Debian testing che a dispetto del nome risulta essere stabile se non di più delle altre distribuzioni semestrali).

Le versioni biennali, sono in genere versioni enterprise, per server o desktop aziendali, spesso sono a pagamento ( Mandriva, Red Hat, Suse) alcune sono gratuite ( Debian stable, Ubuntu LTS), queste distro sono effettivamente “stabili”, se avete necessità che il vosto computer funzioni usate queste, sono quelle che consiglio per uso desktop quotidiano, molto affidabili; per contro possono avere un minor supporto hardware perchè meno aggiornate delle semestrali, ma questo punto è aggirabile tramite facili backport di alcune componenti; inoltre se avete necessità di avere l’ultima versione di un programma potete sempre installarlo da repository non ufficiali, che propongono magari versioni che nella release ufficiali non sono incluse.

In parole povere dovete provare per giudicare, il consiglio che dò è di cominciare con una delle distribuzioni maggiori, qui elencate in ordine alfabetico (il secondo nome indica la versione free della distribuzione):

Arch
Debian
Gentoo
Mandriva
Red Hat/Fedora
Slackware
Suse/Opensuse
Ubuntu

L’utilizzo di un motore di ricerca per trovare informazioni su di esse e i relativi siti ufficiali è sempre molto apprezzato dagli utenti dei vari forum, che in genere si ritrovano spesso a rispondere a domande che hanno una facile risposta dopo una piccola ricerca in rete.

Ricordate che comunque nessuno vi vieta di cambiare distro in qualsiasi momento, perciò divertitevi nell’esplorarle e ha scoprire quella più adatta a voi, l’unica cosa che è importante è che sia Free ;)

Free as Free speech not as free Beer