Aspetti Tecnici del Software Libero.
Aggiornamento Tecnologico
Il software libero è una
fucina di migliaia di progetti. Siti come
savannah.gnu.org,
www.freshmeat.net,
www.sourceforge.net sono
palcoscenici dove nuovi progetti vengono annunciati, si riuniscono
gruppi di interesse, vengono creati team di sviluppo e di testing.
Molte funzioni non ancora presenti, citate come novità o
possibili solo con costosi software in altri sistemi hanno
realizzazioni libere immediatamente disponibili. Nel breve elenco che
segue desidero mettere in luce alcune caratteristiche utili in un
ambiente scolastico.
- Multiutenza reale. Con ambienti di lavoro distinti per ogni
utente non ci possono essere interferenze o danneggiamenti. Ogni utente,
per esempio ogni studente o professore, specificando il proprio nome
utente e una password segreta accede alla propria area di lavoro con i
propri documenti e programmi e la propria configurazione. Questa
caratteristica è presente solo nei sistemi operativi
professionali (e.g. Windows NT, 2000) di solito considerati troppo
costosi per essere utilizzati nelle scuole. La multiutenza è una
caratteristica tipica di UNIX e quindi di Linux dalla primissima
versione. Nei laboratori scolastici realizzati con strumenti impropri
(Windows 95, 98, ME) viene perso moltissimo tempo perché
l'ambiente di lavoro di ogni P.C. è condiviso fra tutti gli
utenti, possono quindi venire installati o cancellati programmi
cambiata la disposizione delle icone. Tra l'altro virus trasferiti su
una macchina scolastica da un utilizzatore poco accorto verranno
trasferiti a tutti i programmi degli utilizzatori successivi. E' una
sorta di convivenza forzata nello spazio virtuale di un P.C., ognuno ha
le sue preferenze e queste finiscono prima o poi per collidere senza
parlare degli innumerevoli scherzi spesso compiuti da studenti relativi
a sfondi di scrivania, animazioni del cursore o definizioni di home
page "poco qualificanti".
- Distribuzioni di software. Sono collezioni molto ampie di
applicazioni. Consentono ai gestori dei sistemi di poter installare le
applicazioni in modo comodo e sicuro, di poter avere i programmi sempre
aggiornati, allineati senza interferenze. (Gli ultimi applicativi
Microsoft da poco tempo vengono installati con pacchetti MSI, molti
costruttori di programmi non hanno però ancora previsto questa
possibilità. Nel software libero le distribuzioni esistono
almeno dal 1994.)
- Manutenzione remota del software. Per gestire grandi parchi
macchine occorrono meccanismi di esecuzione remota, scripting. Nei
sistemi Windows occorrono costosi software per gestire, aggiornare e
mantenere allineati laboratori di grandi dimensioni. Di fatto nei
laboratori Windows oggi, anche coi sistemi operativi professionali,
occorre quasi sempre l'intervento umano su ogni stazione di lavoro per
l'installazione di applicazioni.
- Riconfigurabilità del sistema. Tutte le applicazioni ma
anche il kernel stesso di Linux (ma anche di Hurd e degli altri sistemi
liberi) sono completamente riconfigurabili sulle esigenze dell'utente.
E' possibile anche scegliere fra diverse interfacce grafiche (che
possono essere anche contemporaneamente presenti sul sistema, ogni
utente potrà usare quella che preferisce).
- Affidabilità. E' indubbio che i sistemi GNU-Linux,
equipaggiati con kernel di produzione e non sperimentali, sono
più affidabili dei sistemi Windows. Lo potete verificare
cercando in rete le testimonianze di amministratori di sistema. Se poi
conoscete un amministratore di sistema che abbia sotto il suo controllo
macchine GNU-Linux e macchine Windows professionale chiedete la sua
testimonianza sulla frequenza di "panic" di Linux rispetto agli schermi
blu di Windows. (sono i modi nei quali i rispettivi sistemi operativi
si bloccano definitivamente ed è necessario il reset completo
della macchina per riattivarli).
Sicurezza
Occorre prima di tutto mettere in
chiaro alcuni principi fondamentali relativi alla sicurezza informatica:
- Non esistono sistemi completamente sicuri. Più volete un
sistema sicuro più occorre investire (e il rapporto è
meno che proporzionale, raddoppiare un parametro di sicurezza significa
quasi sempre spendere molto più del doppio). Occorre commisurare
l'investimento al valore del bene protetto.
- Un sistema più è semplice più è
sicuro. Tutti i programmi possono contenere errori. La
probabilità di errore è più che proporzionale
rispetto alla complessità del programma.
- Le componenti di un sistema sicuro sono: Hardware, Software,
Humanware. Nessun sistema è sicuro se non è corredato
di un impegno in forza lavoro quotidiana. Non possono esistere
scatolette magiche per la sicurezza informatica.
- Sicurezza = Conoscenza. Potete verificare, migliorare, riparare
sistemi di sicurezza solo se sapete come sono costruiti.
- I Cracker sono criminali informatici che tentano di violare
l'integrità di sistemi e di dati, gli Hacker al contrario sono
studiosi appassionati di tecnologia che desiderano la piena conoscenza
dei sistemi e dei programmi.
Molti detrattori del Software Libero
indicano nella pubblica diffusione del programma sorgente una
fragilità: i cracker, dicono, possono trovare errori che
consentano l'accesso ai sistemi. Al contrario la publica
disponibilità dei sorgenti consente a molti esperti di poter
analizzare e correggere errori. Un programmatore di una grande software
house è anonimo agli occhi degli utenti finali (voi sapete chi ha
scritto per esempio Microsoft Word?) è un operaio intellettuale
di una catena di montaggio. Al contrario il creatore di software libero
firma il suo codice e tiene particolarmente alla qualità del
proprio lavoro. Questo fa la differenza.
Si veda per esempio il caso del Data Base Interbase: aveva una backdoor
(una porta di accesso non autorizzata) da sei anni e nessuno se ne era
accorto. Quando il software è stato rilasciato come Open
Source è stato scoperto l'inganno. (v.
slashdot).
I software proprietari contengono tante innocenti uova di pasqua
(funzionalità non documentate): Word 97 contiene un flipper e
Excel 97 un intero simulatore di volo. Questo mostra quale conoscenza
la casa produttrice possa avere sui propri prodotti. Oltre a innocenti
uova di pasqua ogni genere di backdoor o altre funzioni maligne possono
a nostra insaputa essere presenti nei programmi che utilizziamo.
Anche i software Liberi possono contenere errori e buchi di sicurezza.
Occorre però considerare che:
- Un software libero può essere modificato autonomamente. E'
possibile creare una soluzione o un palliativo per un problema di
sicurezza al fine di non dover sospendere completamente i servizi. Chi
non ha le competenze può affidare l'incarico ad un esperto
qualificato.
- Non c'è alcun motivo per mantenere riservato un problema
di sicurezza di un software libero, anzi la notizia viene divulgata
quanto più rapidamente possibile per consentire a tutti di non
correre pericoli. Al contrario le aziende produttrici di software
tendono a mantenere riservata ogni informazione fino a quando non sia
disponibile la pezza di rammendo (patch)
per il programma. Questo dà ai proprietari di sistemi con
software proprietario una falsa sensazione di sicurezza dovuta solo
alla cattiva informazione sui problemi reali. Il verme (una specie di
virus che si propaga lungo la rete) chiamato code-red, codice rosso, ha
compromesso più di 800000
macchine e non è ancora stato completamente debellato. Dal 25
gennaio 2003 un nuovo verme attacca i server SQL sempre della Microsoft
e anche in questo caso i danni sono stati notevolissimi (v. incidents.org)
Una considerazione a parte va fatta
per tutti i sistemi per personal computer come Windows 3.11, 95, 98, ME.
Questi sistemi non hanno alcuna protezione dei dati o di accesso ai
dispositivi periferici. Un programma in esecuzione può rovinare
accidentalmente o dolosamente ogni informazione contenuta nel sistema.
Questi sistemi dovrebbero essere utilizzati solamente per servizi non
affidabili quali stazioni per videogiochi per ragazzi.
Qualsiasi uso professionale è altamente sconsigliato, in modo
particolare là dove vengano trattati dati personali o dove vi sia
qualche criticità sulla continuità operativa.
Da questa intrinseca insicurezza nasce il divertimento per i creatori
di virus. In teoria esistono anche virus per Linux, UNIX o NT. In
pratica questi virus avrebbero pochissime possibilità di
diffondersi e al massimo potrebbero danneggiare la sola area di lavoro
di un utente, non l'intero sistema. Di fatto sistemi insicuri e nuovi
virus alimentano il mercato fiorente degli antivirus.
Penso possa fare riflettere che la National Security Agency del governo
statunitense utilizza GNU-Linux e ha partecipato a realizzare la
versione
security enhanced Linux.
Il Software Libero c'è....
anche dove non ve l'aspettate.
- Al dicembre 2002 il 66% di tutti i server WWW del pianeta usano
il programma Apache che è Libero.
- La NASA utilizza numerosi cluster di macchine GNU-Linux.
- Disney, Warner Brothers, DreamWorks, Pixar utilizzano cluster di
GNU-Linux per realizzare effetti speciali: Shreck, Scooby-Doo, Titanic,
Monsters sono solo alcuni titoli di film realizzati con effetti speciali
basati su Software Libero.
- Google, il più importante motore di ricerca, fornisce il
servizio per mezzo di un cluster di 4000 (dico quattromila) sistemi
GNU-Linux. Non mi risultano cluster di queste proporzioni realizzati con
altre tecnologie.
- C'è anche una ricetta per fare in casa una bevanda
chiamata OpenCola
che viene rilasciata al pubblico con la licenza GPL.