Per una recensione degli 'Appunti di informatica Libera'
Conobbi Daniele Giacomini nell'anno 1997, fui invitato ad una conferenza presso una scuola di Treviso in quanto già amministratore di un server presso un'altra scuola della stessa provincia.
GNU/Linux allora era agli albori, girava con kernel 1.2.13, le distribuzioni più importanti erano la Red Hat, la Debian e soprattutto la Slackware. La prima impressione fu di una persona allora molto schiva, un po' eccentrica, con un modo di fare naive.
Mi ricordava più un professore di Analisi Matematica, che un esperto di Informatica e di Unix.
Capii immediatamente che anch'egli trovò Linux non per caso, ma per necessità, per praticità, lontano ancora da discorsi squisitamente filosofici e oggigiorno politici.
Gli Appunti di Informatica Libera, già AppuntiLinux, è il suo hobby preferito, ogni esperienza descritta è frutto di una accurata analisi del software, dei file di configurazione e delle procedure di installazione e di una lunga fase di prove.
L'opera è suddivisa in quattordici tomi, sessantasei parti, trecentotre capitoli e diciannove appendici. L'introduzione all'opera è corredata da spunti esoterici, richiami al lavoro svolto intorno alla definizione e diffusione del software libero, dall'architettura BSD a quella GNU/Linux.
Successivamente si entra nel mondo Linux spiegando le procedure di installazione per le distribuzione Red Hat, Slackware e come gestire l'aggiornamento e l'installazione dei relatvi pacchetti. Merita anche citare come alla gestione dei pacchetti Debian venga dato particolare rilievo.
Il tomo II spiega l'architettura del sistema operativo Linux, problemi di configurazione, parametri e moduli del kernel, gestione dei processi, dispositivi hardware, file system, console di sistema, gestione utenti. Uno studio approfondito ed indispensabile soprattutto per i neofiti di Informatica, Linux è considerato difficile perché costringe l'utente ad interagire a basso livello con il sistema operativo con i livelli e con i processi. I tomi III e IV avviano il lettore a familiarizzare con l'interfaccia a carattere, ad usare la shell, i comandi Linux, le procedure di login e logout; spiega le memorie di massa e la gestione dei file system e dei file system virtuali.
Particolare rilievo viene dato ai file e alla loro natura: archivi, file di testo, eseguibili ed interpretabili. Concetti oramai alienati da altri sistemi e spesso ignorati dai lettori e da utenti anche esperti. I comandi non vengono solamente citati, bensì vi è un richiamo alle opzioni e documentati con esercizi pratici.
Il tomo VI affronta l'interfaccia grafica, il protocollo X e gli applicativi standard della distribuzione. L'autore si spinge oltre, affronta problematiche legate alla frequenza dei segnali video. Nella sezione relativa ai Window Manager vi è una breve introduzione sui tre storici: twm, fvwm, Afterstep. Non vi è traccia dei nuovi prodotti GNOME e KDE, come l'installazione e configurazione di XFree non è aggiornata alla 4.x. Da notare l'inserimento di una paragrafo relativo a Gnumeric ed Abiword, applicativi d'ufficio per l'ambiente GNOME.
I tomi VI e VII, studiano la rete e la connettività via modem e connessione punto-punto. Ogni servizio di rete è suddiviso in lato server e lato client: al solito descrizione di tutte le opzioni, esercizi pratici anche con comandi a basso livello. L'opera non vuole essere un manuale sui prodotti, non si trova una guida di Apache, però una descrizione esaustiva del servizio e l'approccio per installare ed avviare correttamente il servizio.
L'autore guida il lettore anche nella diagnostica di tutti i servizi spiegati.
La sezione relativa al Fax studia il pacchetto efax, mentre non cita l'equivalente mgetty-fax; nella sezione PPP si trovano script comprensibili ed inusuali per l'uso del servizio. Accenna a problemi relativi al pppd ed una incompatibilità con il servizio PAM oramai superata.
Punto di forza dell'opera sono i tomi VIII, IX, X dove vengono trattati gli strumenti per l'editoria, i linguaggi di programmazione e quelle di script.
L'autore sviscera completamente l'editoria elettronica, fornendo nozioni anche di tipografia e di sistemi di codifica dei caratteri. Chi non si è mai avvicinato al LaTeX o all'SGML (linguaggio con cui è scritta l'opera) troverà in questi tomi spiegazioni dettagliate. Non viene ovviamente tralasciato nè l'HTML nè l'XML; la parte XXXIII viene documentato Alml, l'analizzatore lessicale usato dall'autore per scrivere gli Appunti di Informatica libera. E' uno strumento molto potente scritto dall'autore stesso.
I linguaggi di programmazione trattati comprendono il: C, Perl, Java, Pacal, Lisp, Basic. Non è una guida ai linguaggi di programmazione, ma un introduzione alle struttura del linguaggio e alla sua sintassi. Ogni capitolo termina con esempi pratici
L'autore non si sofferma sull'uso dei compilatori, forse un capitolo che trattasse questo aspetto non guasterebbe. Da evidenziare che nel tomo X viene trattato lo RDBMS PostgreSQL. La programmazione CGI-Perl si trova nel tomo successivo dove sono approfondite le configurazioni sui servizi di rete: FTP, HTTP, SMTP, CVS. Non viene menzionato, purtroppo, il linguaggio di script PHP.
Il tomo XI è il punto di svolta dell'opera, dove il lettore più smaliziato viene guidato passo-passo attraverso i servizi più comuni. I demoni di posta trattati sono due: Sendmail ed Exim; il secondo è spiegato in dettaglio, il primo solo superficialmente, per esempio non vi è traccia dei domini virtuali. L'introduzione ad Apache è invece completa, purtroppo non affronta gli script ASP con server Apache (l'installazione non è alla portata di tutti), come alternativa al PHP e Perl.
Anche gli strumenti di analisi del traffico web non vengono menzionati.
Il tomo XII tratta la sicurezza: filtri, proxy, ridirezione e analisi del traffico IP, sicurezze dei servizi e delle porte. Viene introdotto e studiato il NAT, il mascheramento e strumenti semplici di controllo per verificare intrusioni nei server. Si trovano suggerimenti per usare le tecniche di proxy trasparente in unione con un proxy cache tipo squid; ma come sempre gli argomenti hanno uno squisito approccio teorico che li rendono adattabili ad ogni prodotto e soprattutto ad ogni Sistema Operativo simile allo unix. Per ora gli esempi sono riferiti al kernel 2.2.x, non vi è ancora nota alle procedure per il kernel 2.4.
Anche l'autenticazione degli utenti viene minuziosamente presentato con esempi, ma manca una trattazione sull'autenticazione con il servizio PAM e Kerberos.
Storia della sicurezza dei protocolli, delle backdoor, cavalli di troia e virus.
Il tomo termina con i problemi legati alla crittografia, alla sicurezza della firma elettronica e lo strumento GnuPG (GNU Privacy Guard). Consiglio la lettura dei capitoli relativi all'OpenSSL e l'OpenSSH e ai loro utilizzi per rendere più sicuro l'accesso alla rete in locale.
Ai più affezionati lettori, non dimentichino il capitolo cfengine relativo all'amministrazione di più workstation e server in una stessa rete, dove l'eterogeneità dell'amministrazione e della configurazione è purtroppo inevitabile. Da provare!
Il tomo XIII toglie quel tocco di austerità che ha uniformato l'opera fino ad ora, propone esempi di uso pratico e introduce ai problemi di recovery e backup del sistema, applicativi per un laboratorio didattico, multimedia, ecc... Premetto che l'autore si limita nel proporre strumenti da lui stesso provati, senza la pretesa di imporli come soluzioni unica. Esempio: viene dato risalto a Octave, ma non a Scilab: entrambi strumenti "cloni" di Matlab e molto diffusi in ambiente scientifico; non viene però menzionato spice il simulatore di circuiti elettronici gettonatissimo da studenti di elettronica. Anche nella sezione relativa alla masterizzazione viene menzionato X-CD-Roast: valido ma oramai superato da prodotti con Koncd o eroaster per altro compatibili con KDE e GNOME rispettivamente. Da apprezzare come l'autore guidi il lettore alle compilation audio, però non citi un prodotto come cdrdao, lo standard defacto per masterizzare audio in ambiente Linux. Termina con degli accorgimenti che sono più che altro degli approfondimenti sul come mantenere le distribuzioni Red Hat e Debian: upgrade, utenti, stampa, configurazione dei file di sistema, installazione di pacchetti non ufficiali...
Le ultime parti (comprese le appendici) spiegano lo scopo e la filosofia del Software Libero, dei metodi di licensing (la stessa opera è sotto licenza GPL). L'autore impegna il lettore a rendere fruibile quest'opera e le sue conoscenze a qualsiasi persona, dove non ci siano utenti di serie A e B: l'Open Source ha permesso anche al sottoscritto di poter studiare, leggere e mettere in opera la propria esperienza informatica dopo anni di "clandestinità". L'Open Source ha creato una collettività di menti, ha reso ognuno di noi propenso a continuare il lavoro ed a migliorare il genio e la creatività di altre persone.
Cosa sarebbe quest'opera senza la volontà di Daniele Giacomini di renderla indispensabile per chi usa Linux; come potrebbe avvantaggiarsi della possibilità di aggiornarla periodicamente, senza la GPL e senza poter provare e studiare i prodotti da lui ritenuti indispensabili?
Umberto Zanatta