Una distribuzione Linux con scopi pedagogici: analisi e progettazione

Transcript

Una distribuzione Linux con scopi pedagogici: analisi e progettazione
Università degli Studi di Parma
Facoltà di Scienze Matematiche Fisiche Naturali
Corso di Laurea in Informatica
Tesi di Laurea Triennale in Ingegneria del Software
Una distribuzione Linux
con scopi pedagogici:
analisi e progettazione
Relatore
Chiar.mo Prof. Roberto Alfieri
Corelatore
Ing. Prof. Giulio Destri
Anno Accademico 2007/2008
Candidata
Chiara Gandolfi
A tutti quelli che questa tesi la useranno:
a Mattia che la sua copia la potrà distruggere per sfogare la fatica di una lunga attesa,
a mia madre che ci piangerà un po’ su
e a mio padre che sorriderà sotto i baffi tenendola in mano,
a mia sorella che secondo me ne parlerà
e alla mia nonna che la vorrà vedere,
ad Alessandro che riuscirà a farmela arricchire anche dopo anni,
a chi la riceverà come progetto vero, da realizzare
e a chiunque altro si troverà a leggere queste pagine,
anche se non mi azzardo ad ipotizzarne il motivo...
Ringraziamenti
Le persone che vorrei ringraziare sono davvero tante: chi mi ha sostenuta, chi
mi ha sfidata, chi ha creduto in me e chi non l’ha fatto, chi si è fidato, chi mi ha
dato incredibili opportunità e chi, nel segreto, ha pensato un po’ anche a me.
Motivi? Almeno altrettanti.
E di nomi ne farò solo alcuni, quelli che proprio non possono passare sotto
silenzio: il mio relatore Prof. Roberto Alfieri che ha avuto la pazienza di starmi
a sentire per sei anni e metterà questa tesi tra le altre; il mio corelatore Prof.
Giulio Destri che mi ha armata di strumenti potenti per il lavoro che mi piacerebbe fare; la Prof.ssa Silvana Marchi per una lunga serie di buonissime ragioni;
Filippo Borghi e Giulio Vaccari di HelpICare e Massimiliano Malavasi e tutte
le persone che lavorano all’Ausilioteca di Bologna che mi hanno dedicato molto
più tempo di quanto avessi sperato e molta più accoglienza; il Prof. Alessandro
Efrem Colombi, perchè la dedica non era abbastanza, e i ragazzi di Acab con i
quali ho ben lavorato e spero di farlo ancora, magari proprio su questa tesi.
Un ringraziamento speciale, infine, a chi, come Franca e Sergio Cacciari e la
loro grande famiglia, la mia famiglia e molti cari amici, ci terrà a gioire con me.
Sommario
Il progetto qui presentato nasce dall’osservazione della situazione della scuola
primaria italiana, che si trova ad essere non sempre adeguata a preparare i
bambini ad affrontare un mondo sempre più “tecnologico” che porta in sè tante
potenzialità quanti pericoli.
In collaborazione con il committente (un pedagogista esperto) ho portato
avanti il lavoro attraverso le segueti tappe:
• un primo approfondimento riguardante il contesto scolastico e gli obiettivi
che ci si poneva, riassumibili attraverso le parole chiave “autoapprendimento”, “consapevolizzazione”, “usabilità”, “accessibilità”, “sicurezza”,
“economicità”, “flessibilità”, “personalizzabilità”, “eticità”, “attualità”;
• la raccolta dei requisiti funzionali e non, che è servita soprattutto ad
individuare tutte le problematicità ed i punti critici;
• una ricerca riguardante lo stato dell’arte del panorama nel quale si era
deciso di porsi a causa delle caratteristiche che si desiderava ottenere, cioè
quello delle distribuzioni Linux e delle infrastutture ad esse correlate, che
mi ha portata ad individuare le soluzioni messe in atto attualmente a
riguardo dei punti precedentemente definiti;
• l’attività di analisi, svolta in seguito ad una ulteriore riflessione riguardante il sistema che ci si proponeva di realizzare;
• la progettazione, che ha dato come risultati da una parte una serie di
linee guida per la realizzazione e dall’altra ha evidenziato le necessarie fasi
successive di lavorazione;
• la stesura delle conclusioni nelle quali vengono riportati sı̀ i risultati, ma
anche le possibili evoluzioni di un tale ambito di ricerca e sviluppo.
Indice
Introduzione
iii
1 I requisiti: tra analisi dei bisogni e idee innovative
1.1 Il punto di vista pedagogico: obiettivi e desiderata . .
1.2 La raccolta dei requisiti: le linee guida per il progetto
1.2.1 Requisiti funzionali . . . . . . . . . . . . . . . .
1.2.2 Altri requisiti . . . . . . . . . . . . . . . . . . .
1.2.3 Vincoli . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
4
4
8
9
2 La foresta delle distribuzioni
2.1 La struttura logica di una distribuzione . . . . . . . . . . .
2.2 Il kernel: struttura e caratteristiche funzionali . . . . . . . .
2.2.1 I principali sotto-sistemi del kernel . . . . . . . . . .
2.2.2 La modularità . . . . . . . . . . . . . . . . . . . . .
2.3 Il livello utente: l’aspetto del sistema e le applicazioni . . .
2.4 Il sistema di gestione dei pacchetti . . . . . . . . . . . . . .
2.5 Il software repository: la distribuzione di una distribuzione
2.6 Le modalità di fruizione per un sistema Linux . . . . . . . .
2.6.1 Evoluzioni recenti . . . . . . . . . . . . . . . . . . .
2.7 Il Linux Standard Base: la ricerca verso l’interoperabilità .
2.8 Una tassonomia per le distribuzioni esistenti . . . . . . . . .
2.8.1 Le tre grandi famiglie . . . . . . . . . . . . . . . . .
2.8.2 Le famiglie minori . . . . . . . . . . . . . . . . . . .
2.8.3 I “solitari” . . . . . . . . . . . . . . . . . . . . . . .
2.9 Approcci alla creazione di una nuova distribuzione . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
13
14
15
18
19
22
24
31
34
38
38
39
47
48
50
3 Analisi e progettazione
3.1 Analisi: Casi d’Uso e descrizione del sistema . . .
3.1.1 Definizione e descrizione dei Casi d’Uso .
3.1.2 Il meccanismo dell’improving . . . . . . .
3.2 Progettazione: le linee guida per la realizzazione
3.2.1 Il punto di partenza . . . . . . . . . . . .
3.2.2 Stile dell’ambiente . . . . . . . . . . . . .
3.2.3 Le applicazioni . . . . . . . . . . . . . . .
3.2.4 I messaggi . . . . . . . . . . . . . . . . . .
3.2.5 La gestione dei pacchetti . . . . . . . . . .
3.2.6 Le modalità di fruizione previste . . . . .
3.2.7 Cosa ci sarà nella “confezione” . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
51
51
51
59
61
62
63
64
68
68
70
71
i
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ii
INDICE
3.2.8
Le fasi successive . . . . . . . . . . . . . . . . . . . . . . .
71
4 Conclusioni
73
4.1 Risultati ottenuti . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.2 Possibili sviluppi . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
A Glossario
75
B Prima intervista al committente
77
C Esempio di pianificazione del percorso di improving interno ad
un’applicazione incrementale
83
D Elenco delle distribuzioni citate
89
Introduzione
Quando il committente (professore associato di didattica, amministratore di
una società di concepting e socio fondatore di una cooperativa, che si occupa
in ciascuna di queste realtà di tecnologie e didattica) mi ha chiesto di collaborare a questo progetto come analista-progettista e supervisore allo sviluppo,
mi sono sentita onorata di poter lavorare per un progetto che ponesse grande
attenzione all’educazione dei bambini d’oggi e che costituisse una proposta di
miglioramento del livello tecnologico della scuola primaria italiana.
Si è anzitutto avviata una riflessione riguardante il contesto scolastico: la
scarsa disponibilità di tecnologie moderne e, in certi casi, l’opposizione al cambiamento (anche a fronte di un risparmio economico); il livello di competenze e
conoscenze degli insegnanti a riguardo dell’Informatica e delle tecnologie, spesso
basso e a volte unito a resistenze e paure; la necessità incalzante di rendere i bambini capaci e consapevoli nell’uso di strumenti potenti, ma anche potenzialmente
pericolosi, come quelli modeni.
Questi elementi hanno contribuito ad ideare un sistema che accompagnasse i bambini, e gli insegnanti con loro, alla scoperta graduale delle possibilità
fornite da un computer ben equipaggiato, secondo il concetto antico ma sempre moderno di “autoapprendimento”. Tale sostegno all’apprendimento viene
pianificato attraverso un percorso detto “di improving” che porta l’utente a
passare da funzionalità e ambiente più “semplici” ad un’offerta sempre più ricca, avvalendosi sia dell’introduzione progressiva di applicativi “completi” che
dell’evoluzione interna a programmi cosiddetti “incrementali” (cioè programmi
inizialmente forniti in una versione di base e arricchiti con l’aumentare del numero di utilizzi), seguendo cammini formati da una serie di “livelli” e diversificati
a seconda dell’ambito d’utilizzo del sistema.
Per andare incontro alle esigenze delle scuole, invece, oltre al contenimento
dei costi, si è pensato di proporre diverse possibili modalità di fruizione che
permettano anche un passaggio graduale da macchine obsolete a dispositivi
moderni, senza che ciò possa incidere sul percorso dell’utente, portando cosı̀
gradualmente bambini ed insegnanti ad un uso sempre più assiduo di strumenti
tecnici e tecnologici, quali quelli prodotti in quantità e qualità sempre in crescita
dall’industria dell’IT e che tanto stentano a decollare proprio nel mondo della
scuola soprattutto in Italia.
Obiettivo primo, quindi, non è il supporto all’apprendimento di nozioni, ma
l’acquisizione di consapevolezza e padronanza, declinabili in modo duplice a
senconda che si pensi a quelli che verranno definiti “adulti di riferimento” o ai
bambini: il superamento della paura per gli uni e l’evoluzione personale per gli
altri.
Per le finalità che ci si propone ed il dominio applicativo col quale si ha
iii
iv
INTRODUZIONE
a che fare, “usabilità” ed “accessibilità” divengono parole chiave del progetto,
cosı̀ come “personalizzazione” ed “individualizzazione”, sia per quanto riguarda
il percorso di “improving” che per quanto concerne l’ambiente desktop stesso.
Guardando invece il target, anche il tema della “sicurezza” non dovrà assolutamente essere dato per scontato, sia dal punto di vista della protezione dei dati
e del sistema (perseguita anche prevedendo un sistema di autenticazione basato sull’uso di dispositivi hardware) che da quello della comunicazione e della
navigazione attraverso Internet da parte dell’utente.
A causa di tutte le caratteristiche che si desiderava ottenere e della ricerca
di valori etici precisi, ci si è subito orientati verso il mondo Linux, un mondo
complesso ma ricco di possibilità nel quale avremmo trovato tutto quello di cui
avevamo bisogno.
È stato quindi necessario, dopo aver raccolto in modo informale i requisiti,
un approfondimento sia documentale che pratico dell’orizzonte entro il quale ci si
voleva porre: ho quindi svolto ricerche bibliografiche il più possibile accurate ed
adeguate, provato alcuni software, applicato conoscenze derivatemi dagli studi
universitari e dall’esperienza personale, al fine di fissare punti di riferimento che
potessero poi aiutarmi nella definizione successiva delle linee di progetto.
Durante questa fase sono riuscita a raccogliere informazioni sufficienti a delineare una panoramica dello stato dell’arte riguardante le distribuzioni Linux
e le infrastrutture ad esse correlate, concentrandomi in particolar modo sugli
aspetti interessanti dal punto di vista del progetto stesso: struttura di una distribuzione, modularità del kernel, specializzazioni, gestione di aggiornamenti
e installazione/rimozione programmi, possibili modalità di fruizione, approcci
alla creazione di una nuova distribuzione. Ho inoltre descritto una tassonomia
basata sull’analisi di un “albero genealogico” delle distribuzioni attive, al fine
di capire come poteva essere vantaggioso collocare al suo interno il sistema in
progetto.
Terminata tale fase di ricerca, ho quindi realizzato i documenti di analisi e
progettazione, coinvolgendo nuovamente il committente. È stata accolta la mia
proposta di basarci sulla distribuzione Ubuntu 8.04, dovendo però operare una
selezione attenta degli applicativi da inserire e ritenendo necessario un “restyling” completo dell’ambiente desktop. Si sono cosı̀ anche resi evidenti aspetti che
necessitano di ulteriori fasi di definizione da portare avanti con la collaborazione
di esperti in campi diversi come sviluppatori, sistemisti, grafici, ricercatori (che
si occupino soprattutto della stesura di una guida alle risorse utilizzabili on-line)
ed insegnanti (che verranno coinvolti al fine di ottenere consigli e suggerimenti).
A conclusione del progetto, quindi, ho cercato di pianificare le fasi successive
del lavoro, di riprendere i risultati ottenuti e di indicare alcuni possibili rami di
sviluppo futuri.
La struttura di questa Tesi segue il percorso della realizzazione del progetto
attraverso quattro capitoli dei quali: il primo cerca di definire gli obiettivi e
descrivere il contesto pedagogico, per passare poi alla raccolta dei requisiti; il
secondo presenta il risultato delle ricerche riguardanti lo stato dell’arte; il terzo
contiene i documenti di analisi e progettazione; l’ultimo riporta le conclusioni.
Sono inoltre presenti alcune appendici: un glossario, la trascrizione della prima
intervista al committente, un esempio di pianificazione di percorso di improving
interno ad un’applicazione incrementale e l’elenco di tutte le distribuzioni citate
durante la trattazione (completo, per ognuna, di breve descrizione e riferimenti);
chiude la bibliografia.
Capitolo 1
I requisiti: tra analisi dei
bisogni e idee innovative
La pedagogia è la “disciplina che studia le teorie, i metodi e i problemi relativi
all’educazione dei giovani e alla formazione della loro personalità”1 .
Si tratta di un campo di studio complesso e strutturato, all’interno del quale
trova spazio anche la ricerca riguardante le tecnologie che potrebbero supportare il lavoro di insegnanti, educatori e formatori che si trovano a dover preparare
bambini e ragazzi ad affrontare il mondo non solo con un buon bagaglio di conoscenza, ma anche con un certo livello di consapevolezza e altrettanta padronanza
degli strumenti, tanto potenti quanto potenzialmente pericolosi, che la società
moderna mette loro a disposizione.
È in questo contesto che si inquadra la collaborazione tra un professore associato di Didattica appassionato di tecnologia e una studentessa di Informatica
appassionata di pedagogia con in comune anche l’“attenzione attiva” al mondo
che li circonda.
1.1
Il punto di vista pedagogico: obiettivi e desiderata
Come il committente stesso fa notare nell’intervista rilasciata all’inizio del percorso (e riportata integralmente in Appendice B), il destinatario del progetto
che ci si accinge a stilare
potrebbe facilmente venire indicato come il bambino digitale contemporaneo, quel bambino ormai post-televisivo che fa dell’interazione con la macchina una parte assolutamente fondamentale della
propria quotidianità e che non possiamo sperare di consegnare come alcuni anni or sono semplicemente nelle mani del piccolo (o di
qualsivoglia) schermo. Un bambino che sa molte più cose di quante
ne sapessero i suoi coetanei dieci anni fa, che subisce i videogiochi
soprattutto per colpa di adulti ignoranti e poco preparati a mediare
nell’utilizzo dei media, che vorrebbe sapere molte più cose di quante
1 cfr.
Dizionario di Italiano Garzanti 2008
1
2CAPITOLO 1. I REQUISITI: TRA ANALISI DEI BISOGNI E IDEE INNOVATIVE
riescano ad insegnargli con metodi tradizionali e volumi a stampa,
solo che a volte non sa neppure di avere tale necessità, sempre a
causa del ritardo evolutivo degli adulti (in tale caso non soltanto i
genitori) di riferimento.
In questo senso, allora, quelli che vengono definiti “adulti di riferimento” rientrano anch’essi in una fascia di utenti particolare: si troveranno infatti a dover gestire il lavoro del bambino non sempre avendo ricevuto una adeguata
preparazione da un punto di vista sia tecnico che, a volte, anche didattico.
Da queste riflessioni deriva l’idea di riprendere il concetto di autoapprendimento 2 nato con Socrate, portato avanti dalle cosiddette “scuole attive”3 ed
ulteriormente ampliato da Bruner, con l’introduzione del concetto di “idee organizzatrici”4 , per inserirlo in un percorso che possa accompagnare bambini ed
insegnanti nell’uso sempre più assiduo di strumenti tecnici e tecnologici, quali
quelli prodotti in quantità e qualità sempre in crescita dall’industria dell’IT, che
tanto stentano a decollare proprio nel mondo della scuola (e dell’educazione in
generale) soprattutto in Italia.
Obiettivo primo diviene quindi non il supporto all’apprendimento di nozioni,
che diventerà tuttalpiù a sua volta strumento, ma l’acquisizione di consapevolezza e padronanza, declinabili in modo duplice a senconda che si pensi agli
adulti o ai bambini: il superamento della paura per gli uni e l’evoluzione personale per gli altri, ponendo anche attenzione ad una “maggiore accessibilità
per studenti normodotati e con bisogni educativi speciali ” (come si legge ancora
nell’intervista).
A questo di affianca inoltre, per i bambini, un secondo grado di consapevolezza che si vuole contribuire a formare, cioè quella “conoscenza di sè” che troppi
giovani oggi faticano ad avere: si tratta della capacità di analizzare, capire e
soddisfare non tanto bisogni quanto desideri e gusti personali, capacitá che può
essere sviluppata grazie all’approccio con un ambiente in cui si è sı̀ liberi di scegliere, ma anche guidati nel percorso di personalizzazione ed individualizzazione
dell’esperienza.
Per quanto riguarda il panorama della scuola Italiana, poi, sicuramente si
vorrebbe permettere anche “maggiore coerenza con lo stato dell’arte tecnologico”.
2 cfr.
glossario in appendice A per chiarimenti.
tratta di scuole che incentrano l’attività educativa non sull’apprendimento nozionisticoteorico e sulla veicolazione indiretta di contenuti emittente-ricevente ma sull’esperienza diretta
e concreta, che pongono al centro la formazione della personalità individuale e la relazione
anziché il solo accrescimento delle conoscenze. In Italia sono presenti diverse tipologie di
scuola attiva, ognuna delle quali ispirata più o meno liberamente al lavoro di diversi pedagogisti: Montessori, Agazzi, Boschetti Alberti. Una moderna declinazione del concetto attivo di
scuola è reperibile nel modello di apprendimento per progetto o project based learning, dove
la soluzione diretta di un problema scelto dal mondo reale permette di sedimentare nozioni
e saperi attraverso percorsi attivi e dal senso chiaramente intellegibile non soltanto rispetto
all’ottenimento di un voto o alla “copertura” di un particolare aspetto del curricolo ufficiale.
4 Bruner sostiene, all’inizio degli anni ’60, la necessità di andare al di là di una concezione educativa che, come l’attivismo, privilegia gli interessi immediati e l’esperienza di vita
del bambino. La scuola, secondo lui, non deve limitarsi ad assicurare una continuità con
la vita, ma deve introdurre nuovi orizzonti di esperienza e nuovi traguardi, per favorire lo
sviluppo delle potenzialità intellettuali di ogni individuo. A questo scopo Bruner propone
nella scuola l’apprendimento delle “strutture” o “idee organizzatrici” interne a ogni materia,
che costituiscono un efficace mezzo per ampliare e soprattutto organizzare le conoscenze dello
studente.
3 Si
1.1. IL PUNTO DI VISTA PEDAGOGICO: OBIETTIVI E DESIDERATA 3
A tal fine l’affidarsi al mondo del Software Libero5 può avere vari lati positivi
(non solo dal punto di vista tecnico, del quale si parlerà in seguito), alcuni dei
quali cosı̀ descritti dal committente nell’intervista:
Un obiettivo etico e culturale di fondo, che non può che afferire
a un discorso a tutti gli effetti pedagogico ma che non per questo
vuole apparire semplicemente filosofico o comunque lontano da problemi reali come spesso indicato dai critici del sistema formativo:
un obiettivo che sottolinea la necessità di sviluppare nuovi modelli
economici condivisi, nuove regole per il mercato, nuove modalità con
cui descrivere sviluppo, progresso, evoluzione (non solo) tecnologica.
Per la medesima necessità di coerenza con l’esistente, non si può evitare di
considerare anche le possibilità diverse dai metodi tradizionali di utilizzo del
computer (desktop e spesso anche vecchio) a scuola: si pensi ad esempio alla
disponibilità di nuovi dispositivi economici, leggeri e versatili come i netbook,
di un’ampia gamma di piattaforme per videogiochi con potenzialità che vanno ben oltre la loro attuale applicazione o di tutti quegli strumenti “digitali”
(come ad esempio fotocamere, videocamere, cellulari, ecc.) che permetterebbero, con meno spreco di risorse di un tempo, un approccio alla realtà multicanale e multi-disciplinare che, se ben sfruttato e organizzato, può divenire
un’importante risorsa educativa.
Da questo deriva l’idea di una distribuzione Linux che da un lato metta insieme quanto di meglio sia disponibile all’interno della rete del software libero
e dall’altro vi introduca anche a sua volta elementi di novità: un’attenzione
realmente concentrata sugli utenti di prima scolarizzazione (e sui loro “adulti
di riferimento”) che si concretizzi nella realizzazione di “un complesso di attività incrementali legate sia al sistema operativo sia alle applicazioni più utili e
tipicamente utilizzate” all’interno di “una distribuzione che ‘cambi’ anche solo
leggermente ma che lo faccia davvero e per adattarsi ad utenti alle prime armi,
che propone suggerimenti in forma autonoma e non offre soltanto un aiuto su
richiesta, che ripropone tale attitudine anche all’interno dello spettro operativo
delle principali applicazioni ”.
Per gli obiettivi che ci si pone ed il dominio applicativo col quale si ha a che
fare, “usabilità” ed “accessibilità” divengono parole chiave del progetto, cosı̀
come “personalizzazione” ed “individualizzazione”.
Da un punto di vista più tecnico, invece, si dovrà considerare fondamentale:
una certa flessibilità rispetto a canali diversi di fruizione (comprese piattaforme
hardware con caratteristiche anche molto diversificate); la probabile convivenza
con altri sistemi; un ottimo livello di sicurezza (da un lato rispetto alla protezione
dei dati degli utenti e dall’altro rispetto all’utilizzo di strumenti, come Internet,
potenzialmente pericolosi da parte loro); la possibilità di gestire molteplici profili
utente con caratteristiche di personalizzazione che potranno riguardare anche
aspetti sostanziali del sistema.
Da queste premesse, attraverso l’avvio di un’attività di analisi ed un assiduo
confronto con il committente e i suoi collaboratori, è possibile prendere il via
per una raccolta dei requisiti (funzionali e non) che divenga la trama sulla quale
lavorare in seguito.
5 cfr.
nota 2 del capitolo 2
4CAPITOLO 1. I REQUISITI: TRA ANALISI DEI BISOGNI E IDEE INNOVATIVE
1.2
La raccolta dei requisiti: le linee guida per
il progetto
Definito a grandi linee nella sezione precedente il sistema che ci si propone di
realizzare, si cerca ora di raccogliere in modo schematico i requisiti che si richiede
esso cerchi di soddisfare. Pur ricercando la completezza, fissate le linee guida
si approfondiranno i dettagli più specifici in sede di progetto (o addirittura di
sviluppo, a seconda del livello di conoscenze tecniche specifiche richieste), come
concordato con il committente stesso. Sarà inoltre prevista una fase di test
durante la quale il sistema verrà sottoposto al giudizio di un gruppo di insegnanti
interessati e capaci, le cui critiche ed i consigli dei quali si riveleranno preziosa
risorsa per il perfezionamento che precederà la pubblicazione dell’offerta.
1.2.1
Requisiti funzionali
Si elencano ora tutte le richieste riguardanti gli aspetti legati all’uso del sistema
da parte degli utenti.
• I programmi che si considerano come “inclusi” nella distribuzione possono
essere inseriti fisicamente all’interno del sistema in momenti diversi: mentre una parte sarà presente fin dal primo accesso dell’utente, il resto verrà
aggiunto durante il percorso di improving ma è comunuqe da considerarsi
come parte integrante della distribuzione stessa.
• Gli applicativi che verranno inclusi all’interno della distribuzione saranno
di due tipologie: completi ed incrementali. Mentre per i secondi verrà studiata un’interfaccia che, pur sfruttando le funzionalità realizzate dagli sviluppatori del programma, ne nasconderà (non disabiliterà, ma maschererà
completamente, rendendone invisibile la presenza all’utente) inizialmente
una parte e le renderà progressivamente disponibili attraverso un percorso di improving dell’utente, per i primi non saranno previsti mutamenti
durante l’utilizzo.
• I programmi completi, a loro volta, si suddivideranno in due categorie: per
utenti e per amministratori. Quelli appartenenti al secondo tipo saranno
accessibili solo agli amministratori del sistema, riconosciuti tramite un
sistema di autenticazione (che verrà descritto in seguito).
• Per ciò che riguarda il percorso di improving, esso in realtà sarà formato
da diversi cammini costituiti dal passaggio attraverso un certo numero
di livelli. Ogni cammino riguarderà un ambito d’utilizzo del sistema, sia
esso un certo programma incrementale o una successione di programmi
completi o una combinazione delle due cose. I cammini specifici verranno definiti in sede di progetto, quando cioè saranno stabiliti i programmi
specifici che si sceglierà di inserire nella distribuzione. Il fattore scatenante per l’avvio di una procedura di avanzamento di livello sarà (almeno
nella prima versione della distribuzione) il conto del numero di volte che
verrà aperto un certo programma: nella maggior parte dei casi, dopo 15
volte dall’ultimo avanzamento, ne verrà proposto uno ulteriore. Nel caso
in cui l’utente rifiuti, la proposta verrà ripetuta dopo altri 5 utilizzi del
programma. Nel caso invece in cui l’utente accetti, allora verrà installato
1.2. LA RACCOLTA DEI REQUISITI: LE LINEE GUIDA PER IL PROGETTO5
il software previsto per il nuovo livello e successivamente verrà avviato un
tutorial che illustri le novità introdotte (cosı̀ come un tutorial sarà avviato
alla prima apertura di ogni applicazione e del sistema stesso).
• Tutti i tutorials ed aiuti previsti potranno essere richiamati dall’utente
per ripeterne la visione.
• I programmi completi per gli amministratori, tutti ovviamente presenti fin
da subito, comprenderanno: un programma di gestione dei pacchetti, un
programma per l’aggiunta/rimozione di interi programmi, un programma
per richiedere la versione completa dei programmi incrementali, tutti i
programmi per la personalizzazione e la gestione del sistema tipici di una
distribuzione Linux completa, un terminale, un editor di testo classico,
un filtro per il controllo della navigazione su Internet, un filtro anti-spam,
un filtro sulla comunicazione in tempo reale (messaggistica istantanea e
similari), un gestore di file e dati (che comprenda la gestione dei backup),
un programma per la gestione delle chiavi per l’autenticazione di utenti
ed amministratori (cfr. seguito).
• I programmi completi per gli utenti presenti fin dal primo accesso comprenderanno: una suite di giochi per esercitare la coordinazione occhio-mano
pensati per la famigliarizzazione con l’uso di mouse e tastiera e che possano essere usati anche per i momenti di pausa, una suite di giochi semplici
per l’apprendimento (riguardanti matematica, italiano, inglese, geografia,
ecc.), un riproduttore multimediale semplice (solo con le funzioni di base), un programma per il controllo del volume di sistema (che quindi sarà
un programma di gestione del sistema non ad appannaggio esclusivo dell’amministratore), un editor di testo comprendente alcune fuzioni per la
formatazione e l’abbellimento del testo, un programma semplice di disegno
(come ad esempio Tuxpaint 6 ), un sistema autore semplice per la programmazione visuale (come ad esempio Squeak Etoys 7 ). Durante il percorso di
improving, verrà poi suggerito l’inserimento di altre applicazioni complete:
– Dopo alcuni utilizzi (in numero da valutare in base ai programmi che
saranno effettivamente selezionati nella fase di progettazione o sviluppo) dei giochi riguardanti l’apprendimento della matematica, verrà
suggerita l’aggiunta di una calcolatrice semplice (senza l’opzione per
il passaggio alla versione scientifica).
– In una fase da valutare successivamente, verrà suggerita l’introduzione di un programma semplice per la realizzazione di mappe mentali8
(come ad esempio Labyrinth 9 ), eventualmente seguito, nel percorso
6 Sito
Internet del progetto: http://www.tuxpaint.org/
Internet del progetto: http://www.squeakland.org/
8 Una mappa mentale è una forma di rappresentazione grafica del pensiero teorizzata dal
cognitivista inglese Tony Buzan, a partire da alcune riflessioni sulle tecniche usate per prendere
appunti. Le mappe mentali fanno leva soprattutto sulle capacità creative personali e di gruppo,
sulle risorse mentali inconsce, sulle sinestesie create con colori e immagini, sui processi che
spontaneamente ristrutturano le informazioni e che ogni volta lasciano aperta più di una
chiave interpretativa. Per queste ragioni le mappe mentali sono particolarmente efficaci come
strumenti di annotazione e di apprendimento, come supporto all’elaborazione del pensiero e
alla creatività.
9 Sito Internet del progetto: http://www.gnome.org/∼dscorgie/labyrinth.html
7 Sito
6CAPITOLO 1. I REQUISITI: TRA ANALISI DEI BISOGNI E IDEE INNOVATIVE
di improving, da uno per le mappe concettuali10 (come ad esempio
Freemind 11 , che permette di realizzare mappe sia mentali che concettuali), anche se questa seconda possibilità sarà bene sia analizzata con
attenzione nella fase di testche coinvolgerà anche alcuni insegnanti.
– Dopo un certo numero di utilizzi del programma di disegno semplice, sarà prevista la possibilità di introdurre un’applicazione di disegno più avanzata, che metta a disposizione dell’utente un numero
maggiore di strumenti.
– Sarà inoltre utile valutare nella fase di test di sui sopra la possibilità
di introdurre gradualmente giochi che abbiano risvolti educativi ed
un livello di complessità maggiore dei semplici monoattività.
– Dopo un buon numero di utilizzi del sistema autore semplice, si potrà infine prevedere l’introduzione di un’applicativo più complesso e
completo (come Squeak 12 ).
• I programmi incrementali presenti, nella loro forma di base, fin dal primo accesso comprenderanno: un programma per la personalizzazione dell’ambiente grafico desktop; uno per creare presentazioni (che serva ad
introdurre l’uso di programmi complessi ma con una modalità d’utilizzo
tra essi analoga come quelli cosiddetti “da ufficio”); uno per la messaggistica istantanea che preveda, partendo da un utilizzo vocale semplice
inizialmente solo per comunicazioni “a tu per tu”, l’introduzione successiva delle stanze, della modalità testuale, della condivisione di files ed infine
dell’uso collaborativo di applicazioni, dapprima limitando l’interazione ai
dispositivi appartenenti alla medesima rete locale, poi aprendo all’esterno
ma sempre ponendo limitazioni precise (come ad esempio la possibilità di
comunicare solo con altre scuole dotate dello stesso sistema oppure introducendo la possibilità di accedere alla rete di contatti anche da casa); un
browser; un programma per la gestione dei file dell’utente, che nei sistemi
linux comprende solitamente il sistema di accesso alle risorse di sistema e
rete locale ed una funzione per la ricerca; un editor audio che permetta
inizialmente solo la creazione di tracce semplici realizzate grazie all’uso di
strumenti virtuali. Durante il percorso di improving, verrà poi suggerito
l’inserimento di altre applicazioni incrementali:
– Dopo un certo numero di utilizzi dell’editor di testo di cui al punto precedente, verrà suggerita l’introduzione di un programma per
la videoscrittura che sarà inserito non necessariamente nella versione base: poiché i programmi tipicamente appartenenti alle “suite da
ufficio” presentano molte funzioni analoghe ed un’interfaccia molto
simile, i livelli di improving di ognuno di essi potranno essere messi
in relazione con quelli degli altri e sarà quindi possibile, nel momento
in cui vengono agginte nel sistema applicazioni appartenenti a quel
gruppo, aggiungerle non nella forma di base, ma in quella prevista
10 Le mappe concettuali sono uno strumento grafico per rappresentare informazione e conoscenza, teorizzato da Joseph Novak, negli anni ’70. Servono per rappresentare in un grafico le proprie conoscenze intorno ad un argomento secondo un principio cognitivo di tipo
costruttivista.
11 Sito Internet del progetto: http://freemind.sourceforge.net/wiki/index.php/Main Page
12 Sito Internet del progetto: http://www.squeak.org/
1.2. LA RACCOLTA DEI REQUISITI: LE LINEE GUIDA PER IL PROGETTO7
dal livello “parallelo” a quello raggiunto nell’uso degli altri. Lo stesso
discorso vale, oltre che per l’aggiunta di un nuovo programma, anche
per l’avanzamento all’interno di ognuno di questi: nel momento in
cui il passaggio ad un livello successivo di improving viene accettato,
verrà effettuato anche in tutti gli altri, previa comunicazione all’utente. Questo punto sarà comunque da approfondire e verificare nella
fase di test che coinvolgerà anche gli insegnanti.
– Giunti ad un buon punto di avanzamento nel percorso legato al programma di messaggistica istantanea, verrà suggerita l’introduzione di
un programma per la posta elettronica presentato dapprima in forma semplificata. Per l’invio e ricezione di e-mails saranno applicati
filtri e controlli molto stretti fissati e gestiti dall’amministratore del
sistema locale.
– Dopo l’introduzione della calcolatrice, sarà prevista l’introduzione di
un’applicazione per la creazione e modifica di fogli di calcolo. Il livello
iniziale sarà individuato applicando quanto detto per il programma
di videoscrittura prevedendo, inoltre, fin da subito la possibilità di
realizzare grafici.
– Dopo un certo numero di utilizzi del programma di disegno “avanzato”, verrà suggerito l’inserimento di un photoeditor (inizialmente
molto semplice) e, giunti ad un buon livello nel suo utilizzo, sarà
prevista l’introduzione di un videoeditor.
• Nel caso in cui un amministratore richieda esplicitamente l’aggiunta di
un programma del quale è prevista l’introduzione nel sistema ad una fase più avanzata di improving rispetto a quella in cui si trova il relativo
utente, verrà visualizzato un messaggio che notifichi la situazione all’amministratore e che gli chieda conferma o annullamento dell’operazione. Lo
stesso avverrà nel caso in cui venga richiesta la versione completa di un
programma incrementale prima del tempo.
• L’utente potrà salvare i suoi files in una sola posizione all’interno del filesystem e ad ogni richiesta di disconnessione gli verrà suggerito di ricopiare
quella cartella su di un supporto removibile che gli permetta di utilizzare
il materiale realizzato anche su altre macchine.
• L’interfaccia desktop dovrà prevedere testo, icone e menù con una dimensione di default maggiore rispetto a quella solitamente prevista dai
più diffusi desktop environment (come Gnome e KDE). Mentre per un
amministratore saranno previsti i menù tipici di ogni ambiente desktop,
gli utenti troveranno inizialmente solo icone sul desktop (una per ogni
applicazione che potranno utilizzare ed una per la cartella dei loro files,
più eventualmente una per ogni supporto removibile a loro disposizione). Quando le icone diventeranno piú di un certo numero (da fissare in
base alle caratteristiche dell’ambiente grafico), verranno visualizzate icone corrispondenti a “contenitori”: cliccando su una di esse verrà in un
qualche modo (da concordare col grafico) visualizzato l’insieme delle icone delle risorse raggruppate in quel “contenitore”. Dopo un certo tempo
dall’introduzione di questa novità, allora verranno inseriti anche i menù.
8CAPITOLO 1. I REQUISITI: TRA ANALISI DEI BISOGNI E IDEE INNOVATIVE
• Dovranno essere realizzati elementi grafici dedicati ed in particolare: logo,
sfondi (almeno due, uno più femminile ed uno più maschile), set di icone
di sistema. Lo stesso vale per i suoni di sistema.
• Nel caso in cui un’operazione venga effettuata in modo scorretto, all’interno dell’ambiente desktop o di un’applicazione, verrà visualizzato un
messaggio chiaro che lo segnali. Allo stesso modo se verranno effettuate
operazioni in modo più complicato di quanto sia possibile verrà visualizzato un suggemento, cosı̀ come nel caso in cui venga ripetutamente effettuata un’operazione per la quale sia possibile impostare una scorciatoia.
Mediante lo stesso meccanismo, saranno infine evidenziate le operazioni
“delicate” come ad esempio la cancellazione di launchers di programmi.
I dettagli verranno concordati nelle fasi di progetto, sviluppo e test, cosı̀
come dovrà essere il grafico a scegliere se visualizzare tutti questi suggerimenti e messaggi in una semplice finestra oppure in un elemento grafico
particolare.
• L’accesso al sistema prevederá una fase iniziale di autenticazione basata
sull’uso di dispositivi hardware dedicati. Ogni utente ed ogni amministratore verrà dotato, quindi, di un supporto removibile (la cui tipologia
verrà concordata sulla base della/e tipologia/e di fruizione del sistema
richiesta/e dall’acquirente e delle osservazioni fatte dai futuri amministratori del sistema locale) sul quale sarà presente una chiave d’autenticazione
personale, che verrà registrata al momento della consegna del sistema (almeno quella dei un amministratore). Durante la fase di accesso al sistema,
una schermata cosiddetta “di autenticazione” richiederà il collegamento
di tale supporto da parte dell’utente (anche per rendere maggiormente
consapevole l’utente stesso dell’utilità della chiave d’autenticazione).
• All’interno del repository dovrà essere presente una serie di applicazioni
per l’accessibilità e nel programma per l’aggiunt/rimozione del software
dovrà essere presente una categoria che racchiuda questi applicativi ed i
programmi per il supporto di dispositivi tipici della tecnologia assistiva13 .
1.2.2
Altri requisiti
Segue l’elenco dei desiderata legati ad aspetti non funzionali.
• Per questioni legate a licenze, costi, etica, sicurezza e caratteristiche di usabilità e flessibilità, si richiede di focalizzare l’attenzione sul mondo Linux
e di realizzare un progetto che si inquadri in quel contesto tecnico.
• Si dovrà prestare particolare attenzione al tema della sicurezza dei dati
degli utenti e delle comunicazioni tra il sistema ed Internet, sia durante la navigazione e l’invio/ricezione di messaggi da parte degli utenti che
per quanto riguarda la comunicazione tra sistema di gestione dei pacchetti e repository, all’interno del quale, inoltre, i pacchetti dovranno essere
protetti dalla possibile intrusione di materiale malevolo.
13 Cioè la tecnologia realizzata per la riduzione di alcuni handicaps, come ad esempio
l’utilizzo del pc per un nonvedente o per una persona con disabilità motorie particolari.
1.2. LA RACCOLTA DEI REQUISITI: LE LINEE GUIDA PER IL PROGETTO9
• Sia per ragioni di sicurezza che per osservazioni riguardanti le condizioni
di solitudine nelle quali spesso i bambini si trovano ad utilizzare materiale
tecnologico al di fuori dell’edificio scolastico, si richiede che il sistema sia
pensato principalmente per un utilizzo integrato all’interno della struttura
scolastica e che i bambini vengano gradualmente preparati ad un utilizzo autonomo successivo, ad esempio aprendo alla navigazione in Internet
in modo graduale (ad esempio impedendolo inizialmente e “simulandolo”
sfruttando l’infrastruttura di una rete locale)14 .
• Il sistema dovrà essere predisposto alla connessione con una rete locale
(wired o wireless) dotata comunque di sistemi sicuri per la comunicazione
interna e con l’esterno.
• Dovranno essere previsti ambienti di utilizzo che vadano dai laboratori equipaggiati con vecchi pc a soluzioni più avanzate che tecnologia e
programmi didattici innovativi possono mettere a disposizione delle scuole: netbook affidati ai bambini, dispositivi di gioco, dispositivi “mobile”,
lavagne interattive multimediali15 , ecc..
• Anche se si rivelasse necessaria la creazione di più edizioni diverse per
diversi hardware e architetture, queste differenze dovranno essere invisibili
all’utente.
• Dovrà infine essere prevista l’interoperabilità di questo sistema con altri
sia dal punto di vista dello scambio di files che da quello della convivenza
sullo stesso hardware.
• Insieme alla distribuzione verrà fornita una breve guida per gli insegnanti
che raccolga riferimenti ad applicazioni, database di materiali didattici e
altre risorse utilizzabili on-line e che possano servire da completamento al
materiale incluso nel sistema.
1.2.3
Vincoli
Si riportano infine i vincoli che il sistema dovrà soddisfare.
• Il basso costo entro il quale dovrà rimanere quello della realizzazione del
sistema non è dovuto solamente a ragioni etiche e sociologiche, ma anche
“tecniche”, poichè le scuole hanno dei limiti precisi alle spese che possono
sostenere, determinati anche da un complesso sistema di normative statali
e regionali.
• Comprendere macchine vecchie tra l’hardware da supportare è necessario anche perchè spesso la scuola è restia o impossibilitata all’acquisizione di nuovo materiale: non sarà quindi possibile evitare di prendere in
considerazione questo scenario.
14 Potrà essere valutata in un momento successivo la possibilità di realizzare un’edizione del
sistema specifica per l’utilizzo a casa.
15 Si tratta di particolari dispositivi aventi le dimensioni e l’aspetto delle classiche lavagne
didattiche, collegati ad un computer del quale possono riprodurre lo schermo e coi quali si
interagisce utilizzando “pennarelli virtuali”. Tali dispositivi uniscono quindi le modalità d’uso
tipiche di una lavagna didattica classica con la possibilità di utilizzare applicazioni di qualsiasi
genere in modo condiviso.
10CAPITOLO 1. I REQUISITI: TRA ANALISI DEI BISOGNI E IDEE INNOVATIVE
Capitolo 2
La foresta delle
distribuzioni
Ogni distribuzione (spesso abbreviato in distro) è una declinazione diversa dello
stesso Linux. Concretamente, si tratta di un insieme di software (solitamente
organizzato in pacchetti) comprendente un kernel Linux1 , le librerie di sistema, almeno una interfaccia utente, alcuni drivers, alcuni programmi di utilità,
un sistema di installazione, un gestore dei pacchetti, una scelta di programmi
applicativi, una serie di servizi aggiuntivi (come documentazione e supporto).
Al mondo ad oggi esistono diverse centinaia di distribuzioni che si differenziano per scelte tecniche (ad esempio che hardware supportare e quale no, che tipo
di pacchettizzazione usare, come gestire la manutenzione), per filosofia di fondo
(ad esempio ci sono distribuzioni che comprendono solo Free Software2 e altre
che comprendono anche software proprietario), per possibili domini applicativi
o scopi principali di utilizzo (ad esempio esistono distribuzioni appositamente
studiate per chi si occupa di editing audio o pensate per l’utilizzo nelle scuole).
Sono talmente tante che esistono strumenti per la scelta che vanno dalle
guide testuali ai questionari aperti ai test a risposta chiusa ai sistemi che combinano questo con la rilevazione automatica delle caratteristiche hardware della
macchina dell’utente.3
Per farsi un’idea della foresta di cui si sta parlando, si può osservare la
seguente figura che mostra i loghi delle distribuzioni Linux ad oggi indicate dal
sito DistroWatch.com4 come “attive”.5
1 Con questo si sottintende anche che saranno escluse dalla trattazione successiva tutte le
distribuzioni basate sul Sistema Operativo nato all’Università di Berkeley come variante di
Unix, BSD, oltre a tutte le altre distribuzioni basate su altre varianti di Unix diverse da Linux
come ad esempio Solaris.
2 Il software libero (in Inglese Free Software) è software rilasciato con una licenza che permette a chiunque di utilizzarlo e che ne incoraggia lo studio, le modifiche e la redistribuzione;
per le sue caratteristiche, si contrappone al software proprietario ed è differente dalla concezione Open Source, incentrandosi sulla libertà dell’utente e non solo sull’apertura del codice
sorgente.
3 Un esempio di strumento per la scelta un po’ particolare è il “Linux Distribution Chooser”
messo a disposizione all’indirizzo Internet http://www.zegeniestudios.net/ldc/
4 Si tratta di un sito Internet che cerca di mantenere un censimento delle distribuzioni
esistenti completato da diverse informazioni utili riguardo ad ognuna.
5 I riferimenti relativi a tutte le distribuzioni citate nel presente capitolo sono riportati
nell’Appendice D.
11
12
CAPITOLO 2. LA FORESTA DELLE DISTRIBUZIONI
Figura 2.1: Le distribuzioni Linux indicate da DistroWatch.com come “attive”.
2.1. LA STRUTTURA LOGICA DI UNA DISTRIBUZIONE
2.1
13
La struttura logica di una distribuzione
Per meglio comprendere come si struttura una distribuzione Linux dal punto di
vista logico, si può pensare all’immagine della piramide a gradoni mostrata in
figura.
Figura 2.2: Struttura logica di una distribuzione.
Alla base sta un kernel, responsabile di tutte le astrazioni tipicamente messe
in atto dal Sistema Operativo (sul quale si tornerà in seguito).
Al di sopra si trovano le librerie di sistema e i programmi di utilità di sistema, che si occupano della gestione della comunicazione tra livello utente e
livello kernel. In particolare, le librerie di sistema da una parte definiscono un
insieme standard (definito dal progetto Gnu6 ) di funzioni grazie alle quali le
applicazioni possono interagire con il kernel e dall’altra realizzano gran parte
dei servizi solitamente forniti da un Sistema Operativo che non necessitino di
tutti i privilegi del kernel. La più importante di queste librerie è sicuramente la
Gnu C Library (glibc) (della quale si parlerà nuovamente in seguito), che fornisce l’interfaccia per le system calls: tale interfaccia crea un collegamento con il
kernel e fornisce un meccanismo per passare dalla modalità utente alla modalità
kernel. I programmi di utilità di sistema, invece, eseguono singoli compiti legati
alla gestione del sistema stesso e si dividono in due categorie principali: ad una
appartengono tutti quelli che possono essere eseguiti al fine di inizializzare e
configurare un qualche aspetto del sistema ma che una volta portato a termine il loro compito terminano; all’altra appartengono i cosiddetti demoni, cioè
quei programmi che una volta avviati rimangono in esecuzione fino a quando
non viene esplicitamente ordinata la loro terminazione e si occupano di gestire
operazioni di vario genere, come ad esempio richieste di nuove connessioni ad
un certo servizio o aggiornamento di file di log. A questo gruppo di programmi
appartiene anche, per esempio, il window manager (o gestore delle finestre), cioè
quel programma che si occupa di gestire la posizione e l’aspetto delle finestre nel
contesto di un window system (cioè un sistema per la gestione dell’input/output
attraverso un’interfaccia grafica) in una GUI (Graphical User Interface). Un
esempio di window manager piuttosto diffuso è Metacity 7 , mentre un window
system assai usato è X Window System (o più semplicemente X, da qualche
anno noto anche come X11 )8 .
Un gradino più su si trovano le applicazioni, cioè tutti i programmi (anche
di utilità) eseguibili a livello utente (argomento sul quale si tornerà in seguito).
6 Si tratta di un progetto collaborativo per la produzione di software libero, fondato da
Richard Stallman nel 1983.
7 Si tratta del window manager utilizzato di default da Gnome.
8 Sito Internet del progetto, per approfondimenti: http://www.x.org/
14
CAPITOLO 2. LA FORESTA DELLE DISTRIBUZIONI
Fanno poi parte della distribuzione anche la documentazione fornita insieme
al software e il supporto tecnico solitamente reperibile attraverso Internet.
Infine caratterizzano fortemente una distribuzione i sistemi di gestione dei
pacchetti e di installazione (che verranno approfonditi meglio in seguito).
La maggior parte del software incluso in una distribuzione solitamente appartiene alle famiglie del Free Software 9 o dell’Open Source10 , ma può essere
presente anche software cosiddetto proprietario 11 .
È poi utile ricordare come la gestione della sicurezza all’interno dei sistemi
Linux, attuata soprattutto attraverso meccanismi di autenticazione e controllo
dei permessi, permetta di proteggere le parti vitali del sistema stesso.
2.2
Il kernel: struttura e caratteristiche funzionali
Il kernel è il cuore del Sistema Operativo Linux che sta alla base di tutte le
distribuzioni. Esso, pur essendo assai esteso e complesso, è strutturato in layers
e sotto-sistemi che comunicano tra loro attraverso varie interfacce, il che lo rende
un sistema ben organizzato.
Si osservi anzitutto nuovamente alla struttura di un sistema Linux.
Figura 2.3: Architettura di una distribuzione.
Al di sopra di tutto si nota lo spazio o livello dell’utente (user space), detto
anche spazio delle applicazioni. Qui, come detto, vengono eseguite le applicazioni utente. Al di sotto, poi, si trova lo spazio del kernel (kernel space). Come
già sottolineato in precedenza, tra questi due livelli si pone la GNU C Library
che fornisce l’interfaccia per le chiamate di sistema (System call interface) cioè
un meccanismo per gestire la comunicazione tra le applicazioni del livello utente
e il kernel. Questo servizio è fondamentale, visto che le applicazioni utente ed
9 cfr.
nota 2
nota 2
11 cfr. nota 2
10 cfr.
2.2. IL KERNEL: STRUTTURA E CARATTERISTICHE FUNZIONALI 15
il kernel occupano spazi differenti di indirizzi protetti ed inoltre mentre il kernel occupa un solo spazio di indirizzi, ogni applicazione invece ne occupa uno
proprio.
Il fatto che il kernel occupi un solo spazio di indirizzi, e che quindi da questo
punto di vista il suo codice e le sue strutture dati (non solo quelli di base, ma
tutti quanti) formino un unico blocco monolitico, è un grande vantaggio dal
punto di vista delle prestazioni: non vi sarà necessità alcuna di un cambio di
contesto quando un processo invocherà una funzione del sistema operativo o nel
caso in cui vengano generati dei segnali d’interruzione.
Un tale grado di coesione non esclude, però, che possa esserci spazio per la
dinamicità: il kernel, infatti, è in grado di caricare (o scaricare) dinamicamente componenti dette moduli durante l’esecuzione (si tornerà sull’argomento in
seguito).
Il kernel Linux può poi essere a sua volta logicamente suddiviso in tre macrolivelli:
• al livello più alto si trova la System Call Interface (SCI ) che implementa
le funzioni di base come ad esempio la funzione read e la funzione write;
• al di sotto si trova il codice del kernel vero e proprio che possiamo meglio
definire come il codice del kernel indipendente dall’architettura e che è
la parte di codice comune a tutti i sistemi Linux, a prescindere dalla
particolare architettura supportata;
• infine si trova il codice dipendente dall’architettura, che forma il cosiddetto BSP (Board Support Package, cioè pacchetto di supporto per la
piattaforma).
Una tale struttura permette di raggiungere un alto grado di portabilità: la
presenza di una larga parte di codice indipendente da una specifica architettura e la caratteristica di modularità garantiscono la possibilità di adattare il
kernel a qualunque piattaforma senza troppo sforzo, a volte essendo sufficiente
compilare il codice sorgente del kernel sul particolare hardware che si desidera
equipaggiare.
Oltre a tutto questo, infine, una recente innovazione permette di utilizzare il
kernel Linux come un “Sistema Operativo per altri Sistemi Operativi” (detto, in
Inglese, hypervisor ). La modifica apportata al kernel è detta Kernel-based Virtual Machine (KVM ) e fornisce un’interfaccia allo spazio utente che permette
ad altri Sistemi Operativi (non solo altre istanze di Linux) di essere eseguiti “sopra” ad un kernel abilitato, avendo come unico vincolo il fatto che il processore
in uso supporti le nuove istruzioni per la virtualizzazione.
2.2.1
I principali sotto-sistemi del kernel
La figura che segue mostra i principali sotto-sistemi del kernel e verrà usata
come guida per la successiva descrizione.
System call interface
La SCI, come detto, è uno strato di software che si occupa di codificazione e
decodificazione di chiamate e risposte che vadano dallo spazio utente a quello del
16
CAPITOLO 2. LA FORESTA DELLE DISTRIBUZIONI
Figura 2.4: Schema dei principali sotto-sistemi del kernel Linux.
kernel e viceversa. Questa interfaccia può essere dipendente dall’architettura (ci
possono addirittura essere differenze anche tra processori della stessa famiglia).
Gestione dei processi
In Linux la differenza tra processi e threads in realtà non esiste: semplicemente
solitamente si chiamano “thread” i processi eseguiti in modalità kernel, mentre si chiamano “processi” quelli eseguiti in modalità utente. Il kernel fornisce
un’API (Application Program Interface) attraverso la SCI per creare un nuovo processo (fork, exec, o funzioni POSIX 12 ), fermarlo (kill, exit) e per
rendere possibile la comunicazione e la sincronizzazione tra processi (signal o
meccanismi POSIX).
Nella gestione dei processi c’è poi, ovviamente, la necessità di condividere la
CPU tra più processi attivi: il kernel Linux implementa un nuovo algoritmo di
scheduling che ha costo O(1) in termini di tempo a prescindere dal numero di
processi attivi contemporaneamente, chiamato O(1) scheduler. Tale algoritmo
supporta anche architetture multiprocessore simmetriche.
Gestione della memoria
Un’altra importante risorsa gestita dal kernel è la memoria. Linux a tal fine
sfrutta un meccanismo di paginazione basato su pagine solitamente di 4KB,
fornendo poi spesso astrazioni costruite sulla base dei buffer di 4KB, una delle
quali è lo slab allocator, studiate al fine di ridurre la frammentazione da una
parte ed evitare gli sprechi dall’altra. Allo stesso modo viene fornito un sistema
detto semplicemente swapping che, quando la memoria raggiunge il limite di
utilizzo, si occupa di spostare le pagine dalla memoria al disco.
12 POSIX (Portable Operating System Interface) è il termine col quale si indica la famiglia
di standard fissati dalla IEEE per definire l’API (Application Programming Interface) insieme
all’interfaccia shell e a quella di alcune utilità per rendere compatibile il software dei vari
Sistemi Operativi derivati da Unix, anche se ovviamente lo standard può essere applicato
a qualunque Sistema Operativo. Formalmente la famiglia degli standard POSIX è indicata
come IEEE 1003 mentre come standard internazionale è ISO/IEC 9945.
2.2. IL KERNEL: STRUTTURA E CARATTERISTICHE FUNZIONALI 17
Virtual file system
Il Virtual file system (VFS ) è un’astrazione fornita dal kernel che realizza un’interfaccia comune per diversi file systems “fisici”, creando uno strato intermedio
tra la SCI e i file systems supportati dal kernel stesso (cfr. figura seguente).
Figura 2.5: Il Virtual file system.
Al di sopra del VFS si trova una API che astrae le funzioni comuni come
open, close, read e write. Al di sotto, invece, si trovano le astrazioni dei
diversi file systems presenti nel sistema: si tratta di plug-ins che forniscono
l’implementazione di quelle funzioni.
Più in profondità si trova la buffer cache, che fornisce al livello superiore un
insieme di funzioni comuni, indipendenti dal particolare file system, e che ha lo
scopo di ottimizzare gli accessi ai dispositivi fisici sottostanti.
Alla base stanno i drivers, che implementano le interfacce fornite dal livello
superiore per ogni dispositivo fisicamente presente.
Network stack
Lo schema della pila di rete nel kernel Linux segue il modello di quella propria dei
protocolli di rete in generale: il protocollo IP è il cuore della struttura e il livello
al quale opera si trova appena al di sotto di quello al quale opera il protocollo di
trasporto (solitamente il protocollo TCP ); al di sopra di tutto si trova infine il
livello dei sockets al quale si può accedere attraverso la SCI. Il livello dei sockets
realizza l’API standard per i diversi sotto-sistemi di rete e fornisce un’interfaccia
comune per un gran numero di protocolli di rete, uniformando le modalità di
gestione delle connessioni e del trasferimento di dati.
Il kernel realizza quindi i servizi di rete per mezzo di tre strati di comunicazione:
18
CAPITOLO 2. LA FORESTA DELLE DISTRIBUZIONI
• l’interfaccia a socket, che fa da tramite tra le applicazioni che richiedono
servizi di rete e i livelli sottostanti;
• i driver dei protocolli, che si occupano di elaborare le richieste provenienti
dallo strato superiore e passarle al corretto driver dello strato inferiore ed
altresı̀ le risposte provenienti dallo strato inferiore e passarle al corretto
socket di quello superiore;
• i driver dei dispositivi di rete.
A causa di alcune sue importanti caratteristiche (come ad esempio il fatto
di essere Open Source), Linux è poi un’ottima base per eseguire test per nuovi
protocolli o aggiornamenti di quelli esistenti. È anche per questo che supporta
un largo numero di protocolli di rete, tra i quali, ad esempio sono presenti sı̀ il
tipico TCP/IP, ma anche sue estensioni per reti ad alta velocità o il protocollo
SCTP (Stream Control Transmission Protocol ) che aggiunge diverse features al
TCP.
Device drivers
La maggior parte del codice sorgente del kernel Linux consiste in device drivers,
ognuno dei quali rende possibile l’utilizzo di un particolare dispositivo hardware.
Codice dipendente dall’architettura
Pur essendo buona parte del kernel indipendente dalla particolare architettura sulla quale il sistema viene eseguito, ci sono elementi che devono tenerla
in considerazione per eseguire alcune operazioni e per mantenere una certa
efficienza.
2.2.2
La modularità
Come accennato in precedenza, il kernel Linux è in grado di caricare e scaricare
su richiesta proprie parti di codice. Questi moduli caricabili sono eseguiti in
modo privilegiato come tutto il resto del codice del kernel e ognuno di essi
tipicamente contiene la codifica di un driver di dispositivo (nella maggior parte
dei casi), di un file system o di un protocollo di comunicazione (come ad esempio
un protocollo di rete).
Il meccanismo dei moduli permette quindi in primo luogo al sistema Linux
di funzionare grazie ad un kernel minimale standard: i necessari driver dei
dispositivi si possono caricare in modo esplicito nella fase d’avviamento del
sistema o possono essere “montati” automaticamente dal sistema su richiesta e
“smontati” dopo l’uso.
Questo meccanismo permette al sistema, inoltre, di essere “predisposto alla
novità”: scrivere o anche solamente integrare un nuovo modulo non richiederà la
costruzione di un nuovo kernel e sarà anche permessa l’integrazione di software
rilasciato con licenza diversa da quella del kernel stesso13 .
13 Il
kernel Linux è rilasciato sotto licenza GPL, la quale impone, tra le altre cose, che
software distribuito insieme a codice precedentemente rilasciato con questa licenza venga a
sua volta rilasciato sotto la medesima licenza. Se non esistesse la modularità e ad esempio
ogni nuovo driver dovesse essere integrato all’interno del codice del kernel e compilato insieme
ad esso, allora sarebbe possibile integrare nel sistema solamente driver rilasciati sotto licenza
2.3. IL LIVELLO UTENTE: L’ASPETTO DEL SISTEMA E LE APPLICAZIONI19
Gli elementi principali che realizzano la struttura a moduli del kernel sono i
seguenti:
• la gestione dei moduli, che permette il caricamento dei moduli in memoria
e la loro comunicazione con il resto del sistema;
• la registrazione dei driver, che permette di comunicare al resto del kernel
la disponibilità di un nuovo driver;
• la risoluzione dei conflitti, che è un meccanismo grazie al quale un driver può riservarsi l’uso di certe risorse fisiche proteggendole da un uso
accidentale da parte di un altro driver.
2.3
Il livello utente: l’aspetto del sistema e le
applicazioni
Quello delle applicazioni è il livello che più condiziona l’utente nella scelta di una
distribuzione, soprattutto se non possiede preparazione tecnica. Bisogna quindi
evitare di sottovalutare l’aspetto della scelta delle applicazioni da inserire, tra
le quali si trovano, oltretutto, anche i cosiddetti Desktop environment, cioè quei
programmi che permettono di utilizzare il proprio sistema sfruttando la metafora
grafica della scrivania: due esempi piuttosto famosi di questo particolare tipo
di programma sono GNOME14 e KDE15 .
In base all’utente target e allo scopo principale d’uso, sono quindi due i campi
riguardo ai quali operare delle scelte: l’interfaccia che il sistema presenterà e i
programmi applicativi che l’utente troverà presenti fin da subito.
Per avere un quadro più chiaro delle applicazioni utente usualmente considerate nella costruzione di una distribuzione, Desktop environment a parte, si può seguire il seguente schema di tipologie (utilizzato spesso anche per
l’organizzazione dei menù nell’interfaccia grafica del sistema):
• Applicazioni che comprendono: Accessori (cioé un’ampia gamma di strumenti di utilità tra i quali spesso si trova un terminale, un editor di testo,
una calcolatrice e molto altro); Accesso universale (che comprende il software per l’accesso facilitato e la riduzione dell’handicap); Audio e Video;
Giochi ; Grafica; Rete e Internet (cioè applicativi per la fruizione di servizi
di rete o Internet, come browser, programmi per la messaggistica istantanea, per la posta elettronica e cosı̀ di seguito); Istruzione; Programmazione; Strumenti di sistema (comprendente software vari per la gestione di
servizi presenti sul sistema come ad esempio database, antivirus, macchine
virtuali e sistemi di virtualizzazione in genere); Ufficio; Emulazione (cioè
sistemi come Wine16 ); Altro (come ad esempio software relativo ad altri
sistemi necessario a causa di dipendenze di pacchetti installati, un applicativo per aggiungere o rimuovere programmi e tutto ciò che, pur essendo
un applicativo utente, non rientra in nessuna delle precedenti tipologie);
GPL il che escluderebbe, per esempio, la possibilità di usufruire tempestivamente di nuovi
dispositivi i cui driver nativi fossero costituiti da software proprietario.
14 Per avere notizie a riguardo, il sito Internet del progetto è http://www.gnome.org/
15 Per avere notizie a riguardo, il sito Internet del progetto è http://www.kde.org/
16 Per avere informazioni a riguardo: http://www.winehq.org/
20
CAPITOLO 2. LA FORESTA DELLE DISTRIBUZIONI
• Risorse: Gastione/accesso cartelle e file utente (comprendente solitamente un applicativo per la ricerca di file nel computer, l’accesso ai file usati
di recente e un file manager); Computer (cioè l’accesso alle varie risorse
hardware come lettore CD/DVD, altre partizioni sul disco rigido, ecc.);
Rete (cioè l’accesso alle varie risorse della rete locale);
• Sistema che solitamente si riferisce a: Personalizzazione (comprendente
tutti i programmi che permettono di agire sul sistema o su di una sua componente per indicare delle preferenze dell’utente nella modalità di utilizzo
o nell’aspetto); Amministrazione (cioè applicativi per la gestione “tecnica”
del sistema, come ad esempio il gestore dei processi, quello dei pacchetti
software, quello degli aggiornamenti, ecc.); Documentazione.
Per quanto riguarda l’interfaccia, sarà sicuramente l’utente target l’elemento che principalmente influenzerà la scelta: se ad esempio ci si volesse rivolgere
ad amministratori di rete, probabilmente si prenderebbe in considerazione anche la possibilità di non inserire un ambiente grafico, ma solo uno a linea di
comando; se invece si pensasse a dei bambini sarebbe scontata la necessità di
un aspetto gradevole con un alto grado di usabilità. Da quest’ultima osservazione ne discende immediatamente un’altra: la scelta dell’interfaccia non è
solo una decisione riguardo a quale impatto visivo avrà il sistema, ma anche riguardo all’organizzazione delle applicazioni, alle modalità d’accesso ad esse e ai
documenti dell’utente, al grado di personalizzazione permessa, ai possibili Eye
Candy 17 , al grado di accessibilità18 e, in definitiva, al livello di user-friendness
del sistema stesso.
Tutto ciò sicuramente influirà in parte anche sulla scelta dei singoli programmi applicativi. In questo, però avrà altresı̀ fondamentale importanza lo scopo
che si desidera abbia la distribuzione: se ad esempio si pensa di realizzare un
sistema che venga utilizzato principalmente per l’elaborazione di tracce audio,
sarà necessario inserire tra le applicazioni tutti i migliori programmi utilizzabili
a tale fine. Seguendo questa idea, sono nate molte distribuzioni particolari, spesso costruite come “specializzazione” di un sistema “general purpose” che avesse
raggiunto una buona stabilità e diffusione. Gli obiettivi che si pongono queste
distribuzioni possono essere raggruppati all’interno delle seguenti categorie:
• educational o “for kids”, che raggruppa tutte le distribuzioni nate con intenti pedagogici, studiate in alcuni casi anche per essere utilizzate da bambini in età prescolare, come ad esempio eduKnoppix, Edubuntu, Skolelinux
e Qimo (un sistema studiato per bambini dai 3 anni in su);
• scientific (all’interno della quale si possono notare diverse sfumature a
seconda della disciplina predominante) come Scientific Linux, Poseidon
Linux, Bio-Linux;
• studio, contenente distribuzioni ottimizzate per l’editing audio e/o video
e/o grafico, come Musix e Ubuntu Studio;
17 Si dicono Eye Candy tutti quei “dettagli” inseriti in un sistema solo perchè gradevoli
alla vista, come quei piccoli programmi, detti spesso Widgets o Desklets, che rimangono in
esecuzione per tutta la sessione di lavoro e che “decorano” l’ambiente desktop ad esempio
visualizzando il quadrante di un orologio analogico sincronizzato con quello di sistema.
18 Per grado di accessibilità si intende l’attenzione che il curatore del sistema pone nel
renderlo utilizzabile da persone disabili fin dal primo avvio.
2.3. IL LIVELLO UTENTE: L’ASPETTO DEL SISTEMA E LE APPLICAZIONI21
• media, cioè con il proposito di utilizzare il computer come una “media
station”, come GeeXboX;
• gestionali, per industrie, aziende, centri amministrativi pubblici e privati,
spesso dette enterprise soprattutto nel caso di utilizzo aziendale, come ad
esempio Red Hat Enterprise Linux, CentOS, Impi Linux;
• server, come SME Server o Ubuntu Server Edition19 ;
• mini, cioè con una quantità minima di applicazioni di uso generale, come
ad esempio Puppy Linux;
• filosofico-religiose, come ad esempio Buddhabuntu;
• per dispositivi particolari (categoria all’interno della quale si trovano distribuzioni nelle quali sono ovviamente state fatte anche scelte importanti
da altri punti di vista oltre a quello delle applicazioni e delle interfacce
utente): ad esempio le distribuzioni per rooter o firewall come Gibraltar e
Coyote Linux, quelle per Xbox come Xebian e Gentoox, per Nintendo DS
come DSLinux, per PlayStation come PSUbuntu, per dispositivi “mobile”
come Ubuntu Mobile o Symbian OS;
Sicuramente per alcune di queste categorie lo scopo applicativo non influirà
solo sulla scelta delle applicazioni, ma anche sull’ottimizzazione di livelli più
profondi del sistema: l’una cosa non esclude l’altra. Esistono, inoltre, altri casi
in cui è necessario operare scelte particolari a diversi livelli: a parte un’ampia
gamma di sistemi ottimizzati per certe architetture o supporti ma di fatto general purpose dal punto di vista applicativo (come ad esempio quelle installabili
su Flash Cards o su Chiavetta USB), ci sono tutta una serie di distribuzioni che
si focalizzano sull’eleganza o sulla facilità di comprensione dell’ambiente grafico,
altre ottimizzate per l’uso in una certa lingua (solitamente che non utilizza per
la scrittura i caratteri latini, come per esempio il Cinese, l’Arabo, il Russo, il
Giapponese, ecc.), altre ancora che ottimizzano l’inserimento di software proprietario o l’interazione con esso20 e altre che lo impediscono tassativamente21 ,
ed infine quelle nelle quali le applicazioni utente sono completamente assenti
(come ad esempio le distribuzioni studiate per divenire sistemi embedded in
hardware che non prevede interazione diretta con l’utente).
Senza assolutamente pensare che la precedente categorizzazione sia realmente esaustiva, sicuramnete da essa si può intuire quanto le scelte che vengono fatte
riguardo al livello utente siano in grado di determinare la fortuna o meno di una
distribuzione che cerchi di emergere dal mare magnum fin qui descritto. Si aggiunga una certa attenzione alla “gradevolezza” (uno sfondo predefinito per il
desktop esteticamente curato, icone carine, barre dei menù ad effetto, suoni di
sistema musicalmente elaborati) e al marketing e si otterranno tre ingredienti
importanti per la ricetta del successo.
19 Si
tratta di una versione particolare della distribuzione Ubuntu.
ad esempio gOS.
21 Come ad esempio Ututo.
20 Come
22
CAPITOLO 2. LA FORESTA DELLE DISTRIBUZIONI
2.4
Il sistema di gestione dei pacchetti
Ogni distribuzione Linux consiste concretamente, come già accennato, di un
insieme di pacchetti software (in Inglese software packages)22 . Ogni pacchetto
solitamente contiene il codice di una singola applicazione o di un singolo servizio
e si presenta sotto forma di archivio, spesso con un formato particolare adatto ad
un particolare sistema di gestione dei pacchetti (o package management system).
All’inizio questi pacchetti erano semplici file compressi contenenti codice
compilato o sorgente. In seguito il modello si è evoluto e ad oggi insieme al codice, solitamente già compilato, si trovano normalmente anche altri elementi, come ad esempio la documentazione relativa all’applicazione, e meta-informazioni
riguardanti la descrizione del software contenuto nel pacchetto stesso: la sua
versione, il vendor, il checksum, le sue dipendenze (cioè l’indicazione di quali altri pacchetti devono essere presenti nel sistema per permettere al software
contenuto in quello in esame di essere eseguito correttamente). Il sistema di
gestione dei pacchetti è in grado di valutare queste meta-informazioni e di utilizzarle al fine di ottenere una corretta installazione e manutenzione del relativo
software. Nel caso in cui il pacchetto contenga software Open Source, all’interno
dello stesso pacchetto si può trovare anche il codice sorgente del software stesso.
Per facilitare l’installazione di gruppi di applicativi logicamente correlati,
spesso vengono poi utilizzati i cosiddetti meta-pacchetti, cioè pacchetti che contengono solo meta-informazioni riguardanti i pacchetti contenenti il software
necessario alle applicazioni considerate.
Un sistema di gestione dei pacchetti consiste di una collezione di strumenti
che permettono di automatizzare il processo di installazione, aggiornamento,
configurazione e rimozione di pacchetti software23 .
Per tutti i package manager il procedimento di base è il medesimo: prima
di tutto scaricano le informazioni (che sono analoghe ai meta-dati contenuti nei
singoli pacchetti) relative ai pacchetti disponibili da un repository (del quale
si parlerà in seguito) e successivamente utilizzano queste informazioni per decidere quali pacchetti devono essere scaricati ed installati ad esempio al fine di
aggiornare software già presente nel sistema.
Altri compiti di un sistema di gestione dei pacchetti sono i seguenti:
• inserire i meta-dati contenuti in un pacchetto, nel momento in cui viene installato, all’interno del database locale dei pacchetti (perché possano essere
usati dal sistema di gestione stesso ad esempio per controllare automaticamente e periodicamente se siano stati rilasciati degli aggiornamenti);
• al momento dell’acquisizione di un nuovo pacchetto, verificarne l’integrità
attraverso il controllo del checksum e verificarne l’autenticità attraverso
un meccanismo che varia a seconda del gestore stesso (si accennerà a questi
meccanismi in seguito);
• raggruppare i pacchetti a seconda della funzione per aiutare l’utente durante le operazioni di installazione e mantenimento;
22 Da
non confondere con i moduli del kernel.
si confonde questo sistema con un semplice installatore: è un errore comune, ma
da quanto detto si evince quanto il sistema di gestione dei pacchetti possa essere più complesso
nella struttura e nei compiti da svolgere, oltre al fatto che mentre l’uno è parte integrante
di una distribuzione (o addirittura di un Sistema Operativo, in ambienti diversi da quello di
Linux) l’altro è specifico di un singolo software e viene distribuito insieme ad esso.
23 Spesso
2.4. IL SISTEMA DI GESTIONE DEI PACCHETTI
23
• in alcuni casi, durante un aggiornamento, mettere in atto dei controlli
legati alla corretta riconfigurazione del software24 ;
• gestire le dipendenze tra pacchetti, specie nel caso in cui si potrebbero
verificare dei conflitti, ad esempio nel caso in cui due software dipendano
da una stessa libreria ma in due versioni diverse (in questo caso una delle
attenzioni che il sistema avrà sarà quella di aggiornare la libreria senza
cancellare le vecchie versioni).
Si noti che controllare le dipendenze di un pacchetto non significa saperle anche risolvere: non tutti i package managers prevedono la risoluzione automatica
delle dipendenze e mentre in alcuni di questi si appoggiano a programmi specializzati per farlo, in altri casi semplicemente segnalano all’amministratore quali
pacchetti sia necessario installare ed egli dovrà provvedere autonomamente.
Spesso il sistema di gestione si appoggia anche ad alcuni strumenti che si
assicurano che il sistema rimanga in uno stato consistente nel caso in cui l’amministratore aggiunga software “localmente” (compilando codice sorgente o installando codice già compilato), cioè reperendolo esternamente rispetto al sistema
di gestione. Questi strumenti talvolta si occupano anche dell’integrazione di
questi pacchetti all’interno del sistema di gestione al fine di assicurare ad esso
maggiore controllo sulla situazione.
I sistemi di gestione possono infine essere configurati dall’amministratore al
fine di definire quale comportamento è preferibile sia messo in atto in determinate situazioni: è possibile ad esempio stabilire che certi pacchetti non vengano
mai aggiornati o che alla rimozione di un pacchetto vengano rimossi automaticamente anche tutti i pacchetti che dipendono da esso e dal quale esso dipende,
nel caso in cui sia l’unico pacchetto a sfruttarli (“rimozione a cascata”).
Esistono molti sistemi di gestione: ognuno di essi sfrutta le caratteristiche di
un particolare formato dei pacchetti e solitamente i sistemi più complessi usano
al loro interno sistemi più semplici per le funzionalità di base. Ne è un esempio il
sistema di gestione yum che si appoggia al sistema rpm usandolo come backend
ed estendendone le funzionalità con l’aggiunta di semplici features. Un esempio
più articolato è quello di Synaptic Package Manager, che fornisce un’interfaccia
grafica al sistema apt (Advanced Packaging Tool ), il quale a sua volta usa dpkg
per le funzionalità di base.
Vista, poi, l’esistenza di questa diversificazione, esiste persino un programma, Alien, che si occupa della conversione tra la maggior parte dei formati
diversi dei pacchetti.
Si riportano ora alcuni esempi di strumenti di base per la gestione dei
pacchetti utilizzati da alcune distribuzioni Linux:
• dpkg: creato originariamente per la distribuzione Debian, ora viene usato
in tutti i sistemi che sfruttano i pacchetti con formato .deb (ad esempio
24 La maggior parte delle distribuzioni installano i pacchetti con una configurazione predeterminata. Alcuni, però, poi richiedono, oppure semplicemente permettono, alcuni aggiustamenti nella configurazione stessa. Questa operazione è ovviamente una seccatura per gli
amministratori del sistema. In generale, inoltre, al momento dell’aggiornamento i file di configurazione vengono semplicemente sovrascritti, ma solo nel caso in cui nome ed estensione non
cambino nella nuova versione. Risulta quindi chiaro come l’operazione di configurazione sia
un punto delicato della gestione dei pacchetti ed è per questo che alcuni sistemi cominciano
ad introdurre, durante le operazioni di installazione, alcune domande poste esplicitamente
all’amministratore al fine di ottenere informazioni necessarie ad una corretta configurazione
del software
24
CAPITOLO 2. LA FORESTA DELLE DISTRIBUZIONI
Ubuntu e tutti i suoi derivati) ed è stato il primo al quale sia stato associato
uno strumento efficiente e completo per la risoluzione delle dipendenze
(apt).
• RPM Package Manager : creato da Red Hat, adesso, come nel caso precedente, viene usato da molte distribuzioni, anche perché il formato rpm
dei pacchetti è stato scelto come standard per i sistemi Linux (cfr. Linux
Standard Base in seguito). Su questo sistema, inoltre, si basano anche
molti altri strumenti di utilità come apt4rpm, up2date di Red Hat, urpmi
di Mandriva, YaST di openSUSE e YUM, usato da Fedora, Yellow Dog
Linux e molti altri.
• tgz package system: si tratta di un gestore molto semplice che, di base,
combina gli standard tar e gzip. Usato soprattutto da Slackware Linux,
esistono alcuni strumenti che sfruttano il formato tgz dei pacchetti, come
ad esempio slapt-get, slackpkg, zendo, netpkg e swaret.
• Pacman: creato per Arch Linux, usa codice precompilato distribuito in
archivi tgz.
• Ipkg: ispirato a dpkg, è un gestore molto leggero studiato per sistemi Linux legati fortemente all’hardware particolare sul quale vengono installati,
come per esempio dispositivi embedded o computer palmari.
• Nix Package Manager : sistema che permette di installare versioni e varianti multiple di uno stesso pacchetto.
• Portage: creato per Gentoo Linux, a differenza di tutti i precedenti non
si occupa di pacchetti binari (cioè contenti codice precompilato), ma, ispirandosi al sistema di “porte” usato da BSD25 , usa degli script detti ebuild
per compilare e installare il software contenuto nei pacchetti.
• apt-build : è un sistema che, analogamente al precedente, si occupa sia della
compilazione che dell’installazione del software e usa i pacchetti sorgenti
(cioè di codice non compilato) che si trovano nei repository di pacchetti
.deb.
Dal punto di vista di chi si propone di creare una nuova distribuzione è
infine interessante osservare che esistono anche strumenti per la creazione di
pacchetti nativi per Linux detti meta-packager. Uno di questi, ad esempio, è
epm, sviluppato da Easy Software Products26 , che permette di creare pacchetti
nativi non solo per Linux ma anche per tutti i sistemi operativi Unix-based.
2.5
Il software repository: la distribuzione di
una distribuzione
Un software repository è un’archivio di pacchetti software, organizzato in un
albero di cartelle, accompagnato da uno o più file contenenti informazioni rigurdanti i pacchetti stessi, realizzato attraverso l’uso di un server HTTP o FTP
25 Sistema
26 Per
non considerato in questa sede.
informazioni: http://www.easysw.com/
2.5. IL SOFTWARE REPOSITORY: LA DISTRIBUZIONE DI UNA DISTRIBUZIONE25
(nel caso di repository accessibili attraverso la rete)27 . In generale in qualunque
tipo di repository è presente almeno un file di indice, contenente le informazioni
necessarie ai package managers per conoscere il contenuto del repository stesso.
Solitamente ogni distribuzione permette l’utilizzo di più repository che categorizza a seconda della licenza legata al software contenuto nei pacchetti presenti, oppure a seconda della “provenienza” (distinguendo tra codice scritto dal
team di sviluppo della distribuzione o da terzi ed in questo caso la suddivisione
è indicata come “repository ufficiali” vs “repository non-ufficiali”), oppure entrambi, oppure a seconda di altri criteri particolari. In ogni sistema, inoltre, gli
indirizzi dei repository utilizzati vengono indicati (solitamente in ordine decrescente di importanza e con una ben determinata sintassi) all’interno di un file
particolare che nel caso di Debian e derivate, ad esempio, è /etc/apt/sources.list.
Ad ogni repository, poi, solitamente viene associata una rete di mirrors (cioè
di copie risiedenti soprattutto su altri server), ognuno dei quali solitamente posto
nelle vicinanze di un nutrito gruppo di utenti al fine di velocizzare le loro operazioni di package management. Per le stesse ragioni in certi casi sono addirittura
previsti dei repository locali, specie all’interno di reti LAN particolarmente articolate, che vengono alimentati da un determinato mirror. Sarà dall’anello ad
esso più vicino della catena che ogni client preleverà i pacchetti che di volta in
volta avrà necessità di scaricare.
Nel caso di distribuzioni non commerciali spesso i mirrors sono realizzati
grazie a banda e spazio su server forniti volontariamente da individui, aziende, imprese e organizzazioni varie. Ovviamente uno dei punti deboli della sicurezza di un sistema Linux sta nel presupposto che la copia venga eseguita
tempestivamente e correttamente ed i dati non subiscano mutamenti durante
il trasferimento. È anche per tutelarsi dalla possibilità di copie “imperfette”
che alcune distribuzioni commerciali (ad esempio SUSE Linux Enterprise e Red
Hat Enterprise Linux) non usano mirrors pubblici ed in alcuni casi viene anche
utilizzato il protocollo SSL per proteggere la comunicazione tra clients e repository per aggiungere una protezione ad attacchi di tipo “man-in-the-middle”.
Un approccio intermedio viene invece applicato ad esempio da un distribuzione
non-commerciale come OpenSUSE che mantiene i file contenenti le informazioni
necessarie alla gestione solo nel repository centrale mentre permette di creare
mirrors solo per i pacchietti: questo metodo non assicura la protezione del software (non proteggendo la comunicazione tra client e server), ma certamente si
tratta di un buon compromesso.
Un sistema di controllo sull’attendibilità del contenuto dei pacchetti viene
anche messo in atto attraverso l’uso di firme digitali (che vengono apposte dal
curatore del repository e controllate dal package manager) poste sui file di indice,
su file di descrizione dei pacchetti previsti da alcune distribuzioni o sui pacchetti
stessi. Apt, ad esempio, come molti altri, pone la firma sui primi files ricevuti
dal package manager locale, cioè i file di indice.
Anche se negli ultimi tempi è cominciato un percorso di critica e modifica
di queste strategie, esse sono ancora largamente usate soprattutto da sistemi
destinati all’utilizzo su personal computers.
Per meglio comprendere come possa essere realizzata una tale infrastruttura,
si porta ora l’esempio della situazione della distribuzione Debian, che come si
27 È possibile utilizzare anche repository locali che non sfruttino una connessione di rete
come ad esempio quelli contenuti in CD e DVD di installazione
26
CAPITOLO 2. LA FORESTA DELLE DISTRIBUZIONI
spiegherà in seguito si rivela essere un’ottima candidata per essere punto di
partenza per lo sviluppo della distribuzione che si intende realizzare (e se non
proprio Debian, comunque una sua derivata, che in quanto tale avrà anche un
sistema di gestione di pacchetti e repository simile).
Debian distingue tra repository ufficiali e non ufficiali e mentre l’organizzazione dei secondi può essere decisa dal creatore dell’archivio, per i primi viene
stabilita dai curatori basandosi unicamente sulla licenza del software contenuto:
• main per il software libero che si appoggia a sua volta solo su altro software
libero;
• contrib per software libero che però dipende anche da pacchetti rilasciati
con licenza di diverso tipo;
• non-free per software non libero ma comunque gratuito.28
Oltre ai normali repository ufficiali esistono, poi, due ulteriori tipologie ufficialmente riconosciute che riguardano però un tipo particolare di pacchetti.
Si tratta dei repositories volatile e volatile/sloppy che vengono utilizzati per
contenere aggiornamenti per quei programmi, come anti-virus e anti-spam, che
hanno bisogno di nuove informazioni molto spesso, ma che raramente nei sistemi
“stable” vengono modificati o corretti nelle loro parti funzionali29 .
Al proprio interno ogni repository è suddivisibile in sezioni e spesso vengono
utilizzate le seguenti categorie:
• dists, ramo in cui sono contenuti i file di controllo, che permettono il
funzionamento del sistema di pacchettizzazione (sono ad esempio presenti
i file che descrivono i pacchetti presenti nell’archivio divisi per release di
appartenenza);
• doc, che raccoglie la documentazione di base (segnalazioni di bug, faq ed
altro);
• indices, che contiene l’indice di tutti i file contenuti in tutti i pacchetti
(informazioni usate da apt-file);
• non-US, realizzata a causa di problemi legali dovuti al divieto di esportazione di matariale per la difesa (tra cui materiale crittografici, utilizzati
anche ad esempio in SSH), problemi per ovviare ai quali i pacchetti sono
28 Una derivata importante come Ubuntu, invece, categorizza i repositories utilizzabili dalla
distribuzione in questo modo:
– main, per il software ufficialmente supportato e libero;
– restricted, per il software supportato ma non rilasciato sotto una licenza “completamente
libera”;
– universe, per il software libero manutenuto dalla “Comunità”, cioè da sviluppatori che
non fanno parte del progetto Ubuntu ed il cui lavoro non viene quindi supportato in
modo “ufficiale”;
– multiverse, per il software non libero.
29 La
distinzione riguarda proprio questo: mentre i repository del primo tipo contengono
solamente pacchetti che si occupano dell’aggiornamento dei dati ma non del software, quelli del
secondo tipo contengono aggiornamenti che pur riguardando soprattutto i dati toccano anche
in qualche modo solitamente non sostanziale le parti funzionali del programma, introducendo
cosı̀ anche dei rischi per la sua stabilità.
2.5. IL SOFTWARE REPOSITORY: LA DISTRIBUZIONE DI UNA DISTRIBUZIONE27
stati posti in una sezione a parte, la cui distribuzione è legata a server non
statunitensi.
• pool, che è l’archivio vero e proprio, dove sono contenuti i pacchetti,
solitamente raggruppati per lettera iniziale;
• project contenente materiale per sviluppatori;
• tools contenente strumenti per la creazione di dischetti di boot, partizionamento e avvio del sistema.
In generale, i repository Debian sono costituiti da almeno una cartella contenente alcuni pacchetti (in formato .deb se binari e .dsc se sorgenti) e da due
files particolari: Packages.gz che si occupa dei pacchetti binari e Sources.gz che
si occupa di quelli sorgente.
In particolare:
• Package.gz contiene nome, versione, dimensione, decrizione breve e lunga
e dipendenze di ogni pacchetto binario (più alcune altre informazioni);
• Sources.gz contiene nome, versione e dipendenze per la complazione di
ogni pacchetto sorgente (più alcune altre informazioni).
I due files sono i cosiddetti “files di indice” e vengono usati da strumenti diversi
contenuti in apt.
Può poi essere presente un file detto “di release” contente informazioni
riguardanti l’archivio in generale, soprattutto legate alla specificazione della
realease della distribuzione per la quale il repository è stato realizzato.
Al di là del contenuto, poi, i repository Debian si distinguono in semplici
e automatici : ciò che in buona sostanza differenzia queste due tipologie è la
modalità di selezione dei pacchetti relativi all’architettura sulla quale opera il
package manager (visto che numerose sono quelle supportate da Debian). Infatti
mentre per i primi non è possibile eseguire automaticamente tale operazione,
i secondi invece sono appositamente organizzati, semplificando cosı̀ la gestione
degli aggiornamenti da parte dell’amministratore del sistema locale.
Realizzare un repository del secondo tipo è più complicato, ma in certi casi
comunque preferibile. La struttura dell’albero delle cartelle in un repository di
questo tipo che segua lo standard fissato da Debian assomiglia a quella mostrata
nella figura 2.6 in cui: le cartelle stable, testing e unstable si riferiscono alle tre
release “in produzione”; le cartelle main, contrib e non-free (solitamente dette
“componenti”) possono contenere, oltre alle directories riportate nello schema,
anche i pacchetti della rispettiva categoria; ogni cartella binary- contiene un file
Packages.gz e opzionalmente un file di release; ogni cartella source contiene un
file Source.gz e opzionalmente un file di release.
In realtà non è obbligatorio che i pacchetti si trovino dove detto: i files di
indice contengono infatti sempre l’intero path di ogni pacchetto. Sono quelli
i files che devono tassativamente essere dove il gestore si aspetta di trovarli.
Inoltre anche i nomi delle cartelle relative alle release in produzione possono
essere chiamate in modo diverso.
La struttura di un repository di tipo “semplice”, invece, è decisamente più
asciutta, come si può capire anche dalla figura 2.7. Qui sono mostrate due
cartelle interne a quella che fa da radice, ma in realtà è possibile utilizzare
28
CAPITOLO 2. LA FORESTA DELLE DISTRIBUZIONI
Figura 2.6: L’albero standard delle cartelle di un repository automatico Debian.
2.5. IL SOFTWARE REPOSITORY: LA DISTRIBUZIONE DI UNA DISTRIBUZIONE29
l’albero che si preferisce, compreso quello costrituito dalla sola radice. In questo
tipo di repository, infatti, per ottenere un pacchetto è necessario specificare l’url
della radice ed il path completo dalla radice al pacchetto stesso.
Figura 2.7: L’albero delle cartelle di un repository semplice Debian.
Debian mette poi a disposizione due tools per la creazione dei file di indice
Packages.gz e Sources.gz. I due programmi lavorano nello stesso modo, prendendo come parametri la cartella contenente i pacchetti da indicizzare e il file
da sovrascrivere, ma si curano di pacchetti con estensioni diverse.
I file di release, invece, possono essere realizzati utilizzando un semplice
editor di testo e sono necessari solo nel caso in cui si voglia abilitare il Pinning 30
da parte degli utilizzatori.
Tornando al discorso delle directory, soprattutto nel caso di repository automatici è possibile creare un cosiddetto pool. Un pool è una cartella aggiuntiva
all’interno della radice del repository che contiene tutti i pacchetti (i binari per
tutte le architetture, releases e componenti e tutti i sorgenti). Questa soluzione
può essere vantaggiosa, se abbinata ad un meccanismo intelligente di creazione
dei files di indice, soprattutto perché spesso ci sono pacchetti che si ritrovano
identici per diverse architetture o utilizzati in diverse releases.
Ovviamente Debian mette a disposizione una serie di tools che permettono
di automatizzare diversi procedimenti, uno dei quali, ad esempio, si occupa della
gestione dei mirrors ed un altro della creazione di cache di pacchetti all’interno di
reti LAN. Attraverso l’uso di una combinazione di questi tools è anche possibile
creare ed amministrare repository locali “customizzati”, cioè nei quali siano
presenti solo pacchetti selezionati dagli amministratori.
Poichè l’infrastruttura appena descritta non prevede un uso ben organizzato
delle risorse distribuite, si porta ora l’esempio dell’RHN (Red Hat Network ),
una piattaforma per l’amministrazione di sistemi.
Questa piattaforma permette all’amministratore di un sistema informatico
di gestire l’aggiornamento e alcuni aspetti di manutenzione delle sue parti attraverso un’interfaccia web semplice ed in modo centralizzato ed è tra l’altro
possibile eseguire operazioni utili nel caso si preveda la possibilità di ampliare
l’infrastruttura.
Tre sono i modelli per l’architettura della rete tra i quali è possibile scegliere:
hosted, con satellite server e con proxy servers.
Il primo modello è quello di base e ne viene mostrato uno schema in figura
2.8: ogni singolo sistema locale si connette all’RHN attraverso la rete Internet
e scambia pacchetti ed informazioni direttamente con i server centrali. In questo caso le informazioni riguardanti i sistemi locali, le politiche fissate dai loro
amministratori ed i profili vengono inserite in un database centrale.
30 Se un utilizzatore di un certo repository installa un pacchetto che non vuole poi venga
aggiornato, può definire un pin, cioè una sorta di regola da imporre al gestore dei pacchetti
e che il gestore deve essere messo in grado di poter rispettare ottenendo dal repository le
informazioni necessarie.
30
CAPITOLO 2. LA FORESTA DELLE DISTRIBUZIONI
Figura 2.8: Modello Hosted della Red Hat Network.
Il secondo modello, mostrato in figura 2.9, prevede invece l’integrazione di
tutti i servizi della RHN localmente su di un server detto appunto Satellite ed
i sistemi amministrati si connetteranno ad esso. In questo caso, quindi, solo
il server Satellite comunica attraverso la rete Internet con i servers centrali,
ad esempio scaricando gli aggiornamenti e mantenendoli in un database locale
eventualmente customizzato. Un tale sistema permette perciò che la gestione
del sistema avvenga anche off-line. Questo modello prevede inoltre la possibilità
che l’amministratore invii pacchetti ed aggiornamenti ai sistemi gestiti senza che
siano loro a chiederlo. È infine predisposto per il boot dei sistemi via PXE (cfr.
sezione successiva).
Figura 2.9: Modello della Red Hat Network con Satellite server.
L’ultimo modello è in realtà una modifica che è possibile apportare ad entrambi i precedenti mediante l’aggiunta di proxy servers che permettono cosı̀
l’invio dei contenuti attraverso più servers e da luoghi differenti. I sistemi locali,
in questo caso, si connetteranno al server Satellite o ai servers centrali passando attraverso un server Proxy locale, che manterrà una cache dei dati e potrà
gestire alcuni processi autonomamente. Questo meccanismo non solo velocizza l’ottenimento dei pacchetti richiesti, ma permette anche di utilizzare meno
2.6. LE MODALITÀ DI FRUIZIONE PER UN SISTEMA LINUX
31
banda.
L’accesso all’Rhn è compreso nell’acquisto di una distribuzione Red Hat
Enterprise Linux per la quale è stata studiata.
2.6
Le modalità di fruizione per un sistema Linux
Ci sono quattro modi principali in cui è possibile permettere ad un utente di
sfruttare un sistema Linux: live, attraverso la rete (locale o Internet), avendolo installato fisicamente sulla sua macchina ed infine avviandolo da un altro
Sistema Operativo presente sulla macchina. Da alcune delle strade di seguito
descritte sono poi nate di recente due idee innovative delle quali si parlerà in
seguito.
Nel primo caso l’utente ha a disposizione un supporto di memoria (solitamente CD-ROM, DVD, chiave USB, Flash Card o similare) sul quale si trova il
sistema: imponendo che il computer all’avvio faccia il boot da quel dispositivo
(che dovrà quindi già essere collegato all’accensione della macchina), si potrà
sfruttare la distribuzione scelta senza che essa risieda fisicamente su alcuna macchina. Questo (soprattutto nel caso in cui in computer sia già pronto all’avvio
dal dispositivo utilizzato) agevola molto la fruizione da parte di utenti inesperti che potranno quindi entrare nel mondo Linux senza affrontare la procedura
di installazione, che spesso spaventa e preoccupa chi non comprende a pieno
quello che essa comporta. Per chi invece si appresta a scegliere una distribuzione da utilizzare in seguito, questa soluzione può rappresentare una grande
comodità, potendo essere paragonata ad una “prova senza impegno” e sapendo che la maggior parte delle distribuzioni prevede anche una versione “live”.
Ci sono poi altri utilizzi alternativi, come quello a scopo dimostrativo o quello
orientato alla diagnostica e recupero di dati da sistemi che non riescono più ad
eseguire un avvio corretto del Sistema Operativo (e per questa ragione molte
di queste distribuzioni contengono programmi d’utilità specifici per tale scopo).
È infine da notare come quasi tutte le versioni di questo tipo diano comunque
la possibilità all’utente di richiederne espressamente l’installazione sulla propria
macchina, che verrà quindi equipaggiata con la distribuzione cosı̀ com’era nel
supporto di memorizzazione.
La seconda possibilità può declinarsi in due modi: il primo riguarda il controllo di macchine remote attraverso una rete locale o anche attraverso la rete
Internet, nel caso in cui questo sia permesso dalla macchina alla quale si vuole
accedere, mentre il secondo prevede l’utilizzo di una rete locale nella quale un
server potente sia affiancato a thin-clients. Per poter sfruttare la prima metodologia, il computer che fornirà il sistema deve essere predisposto per farlo
attraverso l’attivazione di alcuni servizi, mentre le macchine locali devono avere installati dei programmi client che permettano di gestire il sistema remoto.
Esistono due famiglie di programmi (e relativi protocolli) per la realizzazione di
una infrastruttura di questo tipo: quelli che permettono il dialogo con la macchina remota attraverso un’interfaccia a linea di comando (come ad esempio
OpenSSH31 ) e quelli che invece permettono l’accesso in modo grafico, stile “De31 Per
informazioni: http://www.openssh.com/
32
CAPITOLO 2. LA FORESTA DELLE DISTRIBUZIONI
sktop remoto” (come ad esempio TightVNC32 ). In entrambi i casi da una parte
è possibile utilizzare la macchina remota come se effettivamente ci si trovasse
a lavorare su di essa e dall’altra è possibile trasferire dati da remoto a locale
e viceversa quasi senza accorgersi della rete sulla quale li si muove. In questo
modo è inoltre possibile che sulle macchine locale e remota risiedano Sistemi
Operativi diversi. Il secondo, invece, prevede di sfruttare l’infrastruttura di una
rete locale in cui si trovi una macchina server piuttosto potente alla quale si
colleghino una serie di thin clients, cioè macchine con caratteristiche tecniche
di basso livello (potrebbero addirittura essere senza hard-disk o con ridottissima potenza di calcolo). I clients faranno il boot dalla rete ed accederanno cosı̀
direttamente al server, dove verranno eseguite le applicazioni e risiederanno i
dati.
L’installazione locale può anch’essa avvenire in diversi modi:
• Quello più comune è sicuramente eseguendo l’avvio da un CD-ROM o un
DVD che contenga il programma di installazione e il software installabile. In questo caso spesso l’utente (o qualcun altro per lui) esegue prima
un partizionamento del disco per permettere a Linux di convivere sulla
stessa macchina insieme ad un Sistema Operativo diverso: in questo modo il sistema Linux utilizzarà solo una parte assegnata del disco. Come
precedentemente affermato, inoltre, questi CD o DVD potrebbero contenere una versione live della distribuzione che permette anche all’utente di
richiedere l’installazione. In questo caso uno degli installer più apprezzati è Anaconda, usato da distribuzioni come Red Hat Enterprise Linux e
Fedora.
• Una seconda possibilità è l’installazione via rete. Nel caso più simile ad
una installazione comune l’utente deve utilizzare un CD contenente una
quantità minima di software, necessaria alla gestione del trasferimeno dei
dati attraverso la rete da un repository al computer locale. Un modo più
automatizzato per eseguire un’installazione attraverso la rete è quello nel
quale si sfruttano file come KickStart (usato da Red Hat e derivati), FAI
(Fully Automatic Installation, usato da Debian) e AutoYaST (di Suse).
Questa soluzione permette di definire al boot un file da cui prelevare tutti i dati di configurazione che normalmente devono essere inseriti a mano
durante l’installazione e, pur potendo essere applicata anche ad una installazione del tipo descritto al punto precedente, viene più spesso abbinata
ad una procedura che sfrutti la funzionalità PXE (Pre Execution Environment) che alcune schede di rete hanno e che permette alla macchina
sulla quale si trovano di eseguire il boot da rete: questa operazione, indispensabile per thin-clients, può essere sfruttata per computer completi
per eseguire la procedura di installazione del Sistema Operativo via rete
alla prima accensione della macchina. Perché la funzionalità PXE possa
essere sfruttata in questo modo, però, devono essere adeguatamente configurate e predisposte le macchine che appartengono alla rete (sia server
che clients).
• Una soluzione la cui diffusione sembra essere in crescita è quella che prevede l’acquisto da parte dell’utente di un computer sul quale si trovi già
32 Per
informazioni: http://www.tightvnc.com/
2.6. LE MODALITÀ DI FRUIZIONE PER UN SISTEMA LINUX
33
un sistema Linux pre-installato. Inizialmente applicata solo a macchine
destinate ad essere usate come server, si è poi affermata anche nel campo
dei computer portatili e ultra-portatili per approdare negli ultimi tempi
anche nel mondo dei computer desktop.
• Nel caso di sistemi embedded, analogamente al caso precedente, solitamente il sistema si trova già installato nel firmware del dispositivo in questione
e può essere accessibile dall’utente oppure no.
• Esistono infine una serie di tools che permettono un’installazione dualboot completa, senza bisogno di supporto fisico, come CD o DVD, ed
eseguibili dall’interno del Sistema Operativo con il quale Linux dovrà
coesistere sullo stesso hardware. Alcuni di questi sono i seguenti:
– l’installer Wubi 33 , che permette agli utenti Windows di scaricare da
Internet e installare una distribuzione Ubuntu o derivata senza dover
prima partizionare il disco e senza bisogno di avere un CD d’installazione, poiché esso stesso si occuperà della creazione e configurazione
di un sistema dual-boot, curandosi di non perdere dati;
– Win32-loader 34 che si occupa invece dell’installazione di un sistema
Debian via rete dall’intrerno di un sistema Windows, ma presupponendo che il partizionamento sia già stato fatto in precedenza;
– UNetbootin, infine, che permette ad utenti sia Windows che Linux
di eseguire un’installazione di rete senza CD per una grande varietà
di distribuzioni Linux ed in aggiunta, fornisce uno strumento per la
creazione di “Live USB”.
L’ultima opzione considerata è quella dell’avvio da un altro Sistema Operativo già presente sulla macchina ed anche in questo caso gli scenari possibili
sono due. Da una parte, alcune distribuzioni permettono all’utente di installare Linux “sopra” al Sistema Operativo in uso sulle loro macchine: ne è un
esempio gOS, che si installa su una partizione sulla quale risiede un sistema ad
esempio Microsoft Windows e che può poi essere avviata da dentro il sistema
Windows stesso usando un browser web. Dall’altra anche le Virtual Machines
(delle quali si parlerà nuovamente in seguito) rendono possibile l’esecuzione di
Linux dall’interno di un altro Sistema Operativo: la macchina virtuale simula
l’architettura di una macchina fisica sulla quale è possibile installate una distribuzione qualsiasi ed una volta preparato il necessario, sarà possibile avviare la
macchina virtuale come se fosse un computer indipendente.
A parte nell’acquisto di un computer pre-installato, in tutti gli altri casi, prima di poter mettere in atto quanto descritto, l’utente deve entrare in qualche
modo in possesso del software che gli interessa utilizzare. Nella maggior parte
dei casi questo avviene scaricando il materiale da Internet ed in particolare o
da una pagina dedicata alla distribuzione scelta o da un repository della stessa,
attraverso il protocollo ftp o http. Nel caso dei CD e dei DVD ci sono poi anche
altre possibilità: l’utente può sı̀ scaricare da Internet un’immagine ISO e masterizzarla lui stesso, ma può anche acquistare il suporto già pronto (solitamente ad
un prezzo contenuto), oppure comprare una rivista con tale materiale allegato,
33 Per
34 Per
informazioni: http://wubi-installer.org/
informazioni: http://goodbye-microsoft.com/
34
CAPITOLO 2. LA FORESTA DELLE DISTRIBUZIONI
oppure ancora ottenerlo come parte di una confezione solitamente contenente
anche manuali e software commerciale. Nel caso di altri supporti, come chiavette USB e Flash Cards, difficilmente si troveranno canali diversi da quello di
scaricare da Internet il software da trasferire successivamente sul dispositivo.
2.6.1
Evoluzioni recenti
Si tratta di due novità nel campo delle modalità di fruizione basati sull’utilizzo
di tecnologie in continua crescita e che potrebbero rivelarsi preziosi spunti per
la definizione del progetto in esame.
Virtual Appliances
Una Virtual Appliance è una soluzione software pre-confezionata contenente
una o più macchine virtuali che viene impacchettata, mantenuta, aggiornata e
gestita come un’unica entità.
Si tratta di un modo nuovo di sviluppare, distribuire, impiegare e gestire il
software: all’interno della virtual appliance si troverà infatti, oltre al programma che si vuole distribuire, anche tutto il software necessario al suo corretto
funzionamento, compreso ad esempio il Sistema Operativo sul quale si è scelto
di eseguire il programma stesso. Dal punto di vista degli sviluppatori di software
questa può essere una risorsa importante, inquanto potrebbe ridurre i costi di
sviluppo e distribuzione, accelerare i tempi per la messa in opera e ampliare il
gruppo dei possibili fruitori. Questi benefici, in realtà, potrebbero essere validi anche per chi si occupa di hardware, inquanto potrebbero in questo modo
scegliere come equipaggiare le macchine da loro trattate potendosi preocupare
solo delle prestazioni e non anche delle applicazioni che gli utenti finali saranno
interessati ad avere ed eseguire. In ultima analisi, anche gli utenti potrebbero
avere dei vantaggi nell’impiego di una tale tecnologia, dotata di caratteristiche
quali alte “avviabilità”, scalabilità, portabilità e semplicità di backup.
Tecnicamente, come già accennato, una virtual appliance non è una semplice macchina virtuale. Una macchina virtuale (in Inglese “virtual machine”) è
un software che realizza un “contenitore” rigidamente isolato e creato per essere eseguito su una piattaforma di virtualizzazione. Esso fornisce l’“astrazione”
di quattro risorse fondamentali, cioè CPU, RAM, supporto di memorizzazione
non volatile e rete, ma per poter essere utilizzato è necessario dotarlo di un
Sistema Operativo (detto “Sistema Operativo Guest” o GOS, acronimo della
corrispondente locuzione inglese) ed installare all’interno del proprio Sistema
(detto “Sistema Operativo Host”) un’applicazione per la gestione della virtualizzazione. Una virtual appliance ha sicuramente in comune con le macchine
virtuali le quattro caratteristiche di compatibilità, isolamento, incapsulamento
e indipendenza. Essa, però, contiene un Sistema Operativo pre-installato e preconfigurato e una serie di applicazioni ottimizzate al fine di fornire uno specifico
insieme di servizi.
Non è solo questione di fornire un prodotto più completo: mentre, infatti,
se si installa all’interno di una macchina virtuale un Sistema Operativo general
purpose è poi possibile aggiungervi tutte le applicazioni che si desidera gestendole autonomamente, nel caso delle virtual appliances il pacchetto può invece
essere distribuito e gestito come un blocco monolitico di software. Questo aspetto potrebbe essere importante per un utente finale che si trovi più a proprio agio
2.6. LE MODALITÀ DI FRUIZIONE PER UN SISTEMA LINUX
35
con un sistema a “black box” che gli fornisca i servizi dei quali ha bisogno senza
doversi preoccupare di come questo possa avvenire.
Ciò non implica necessariamente che l’utente non possa mai personalizzare
le proprie virtual appliances. Ne esistono infatti due tipologie: aperte e chiuse.
Nel primo caso l’utente può modificare l’appliance o personalizzarla ad esempio
essendo stati installati Sistema Operativo e applicazioni come su di una normale
macchina virtuale gestibile dall’utente. Nel secondo caso, invece, la virtual
appliance viene impacchettata e distribuita come un unico programma che deve
essere gestito come unità indivisibile.
In ogni caso all’interno di ogni virtual appliance, come detto, deve essere
presente un Sistema Operativo Guest. Solitamente a tal fine viene impiegato
un JeOS (acronimo di Just enough Operating Systems), cioè una versione semplificata di un Sistema Operativo creata proprio con l’intento di supportare il
paradigma delle virtual appliances. Esempi di JeOS sono Ubuntu JeOS (distribuzione realizzata come derivazine di Ubuntu a partire dalla versione 7.0435 ) e
Lime JeOS della Novell36 .
Per garantire l’indipendenza da una specifica applicazione per la virtualizzazione, la DMTF (Distributed Management Task Force)37 ha sviluppato una
prima serie di specifiche che porteranno alla definizione di un formato di pacchetti portabile per le macchine virtuali, chiamato OVF (che sta per Open
Virtualization Format). Esso specifica un formato per i package delle virtual
appliances neutrale rispetto allo strumento usato per la loro creazione e che
permette di utilizzare il software su qualsiasi piattaforma di virtualizzazione.
Poichè dal punto di vista della realizzazione si tratta di una infrastruttura
complessa, esistono dei sistemi autore che permettono la creazione guidata di
virtual appliances, spesso direttamente attraverso un sito Internet, e guide dettagliate sulla creazione “da zero” (in Inglese “from scratch”). La scelta di uno
dei sistemi autore ha un vincolo importante nel GOS o JeOS che si desidera
utilizzare: deve infatti essere uno di quelli supportati dal sistema di virtualizzazione. Gli ambienti più utilizzati permettono di realizzare virtual appliances
VMware-ready (cfr. seguito) e sono: VMware Studio di VMware38 , Elastic Server di CohesiveFT39 , JumpBox40 , rBuilder di rPath41 , SUSE Studio di Novell42
e VirtualAppliances.net43 . Quasi tutti i sistemi di virtualizzazione, poi, offrono
una loro guida. Inoltre molti siti collegati a progetti di virtualizzazione forniscono una serie di virtual appliances già pronte per l’uso, scaricabili a volte anche
gratuitamente, cosı̀ come il resto degli strumenti legati a questo ambito.
Alcuni dei software per la virtualizzazione stessi sono distribuiti gratuitamente e si tratta anche spesso di software molto diffuso: cercando in questa
sede di progettare un sistema che si pone come obiettivo anche il basso costo
35 Ubuntu
numera le sue versioni con le ultime cifre dell’anno seguite dal punto e dal numero
del mese della data di rilascio. Avendo poi scelto di rilasciare una nuova versione ogni aprile
e ogni ottobre, i numeri che seguono il punto saranno “04” o “10”, salvo rare eccezioni (come
la famosa Ubuntu 6.06 “Dapper Drake”)
36 Società che si occupa del progetto Suse e di alcuni derivati.
Per informazioni:
http://www.novell.com/
37 Si tratta di un gruppo di società del settore IT. Per informazioni: http://www.dmtf.org/
38 Per maggiori informazioni: http://www.vmware.com/
39 Per informazioni: http://www.cohesiveft.com/
40 Per informazioni: http://www.jumpbox.com/
41 Società che sviluppa anche una distribuzione omonima.
42 cfr. nota 36
43 Per informazioni: http://virtualappliances.net/
36
CAPITOLO 2. LA FORESTA DELLE DISTRIBUZIONI
ed essendo disponibili applicativi free anche di ottimo livello, si presenta ora un
breve elenco dei migliori di questi.
• VMware Player : VMware è compagnia leader nel settore della virtualizzazione e questo é solo uno dei sistemi da essa sviluppato. In particolare si
tratta dell’unico gratuito. Installabile su Sistemi Operativi Host sia Linux
che Windows, è un’applicazione per la virtualizzazione su desktop che permette l’esecuzione di macchine virtuali anche create con alcuni programmi
non della stessa casa.44
• VirtualBox : Dedicato ai server, ai desktop e per uso embedded, é un
sistema professionale e anche Open Source. Alcune delle sue peculiarità
sono: la modularità, la descrizione delle macchine virtuali realizzata in
XML, software dedicato all’ottimizzazione delle prestazioni nel caso di
Sistema Operativo Host sia Windows che Linux, un sistema di cartelle
condivise.45
• Xen Hypervisor : Supporta una vastissima gamma di Sistemi Operativi
Host e di hardware ed ha caratteristiche interessanti dal punto di vista
funzionale, ma contempla solamente l’applicazione server.46
Web OS
I concetti di Web Desktop (o Webtop), Web OS e Cloud Computing Operating
System (o Cloud OS ) hanno ormai perso, nell’uso comune, le differenti sfumature delle origini47 e sono divenuti sinonimi tra loro. Con questi termini ci si
riferirà, in questa sede, a tutti quei sistemi che permettono di accedere ad un
ambiente del tutto simile ad un sistema desktop e di usufruire di tutti quei servizi e programmi applicativi tipici di un tale sistema, sfruttando la rete Internet
ed un programma per la navigazione come canale di comunicazione tra utilizzatore e sistema. Un tale sistema potrà eventualmente prevedere in aggiunta la
possibilità di essere sfruttato anche attraverso dispositivi “mobile”.
Si tratta, per ora, di sistemi sviluppati soprattutto utilizzando linguaggi tipici del mondo web (come PHP, Javascript, Flash e altri) o basati sulla tecnologia
delle macchine virtuali, ma si stanno avviando progetti che si pongono come
44 Per
approfondimenti: http://www.vmware.com/products/player/
approfondimenti: http://www.virtualbox.org/
46 Per approfondimenti: http://www.xen.org/
47 Agli inizi, i tre concetti erano distinti: con il termine Web OS, utilizzato per la prima volta
nel 1996 all’interno dei documenti di un progetto dell’Università di Berkeley, ci si riferiva ad
un “Sistema Operativo per applicazioni geograficamente distribuite” (come si legge nella presentazione del progetto ora passato alla Duke University); Web Desktop, invece, usato per la
prima volta nel 1994 dalla Santa Cruz Operation (SCO) che si proponeva di studiare un’interfaccia web per il proprio Sistema Operativo Unix-based, si riferiva ad un “network application
system” (quindi non ad un Sistema Operativo) che rendeva disponibile uno spazio di lavoro online simile nell’aspetto e nelle modalità d’uso ad un sistema desktop locale, fruibile attraverso
un browser e sviluppato utilizzando linguaggi e tecnologie tipiche della programmazione di rete; infine per Cloud Computing Operating System si intendeva un insieme di risorse (quindi non
un singolo sistema) apparentemente sviluppate con modalità standard e apparentemente omogenee (cioè ad esempio con una modalitá d’uso analoga e a volte con la possibilità di accedere ai
medesimi file dell’utente, anche se in realtà dietro l’interfaccia non ci fosse stato nulla di comune) fruibili utilizzando dispositivi di diversa natura (come palmari, portatili, comuter desktop)
attraverso la rete Internet. Per approfondimenti: http://www.cs.duke.edu/ari/issg/webos/
http://www.sco.com/ http://wiki.cloudcommunity.org/
45 Per
2.6. LE MODALITÀ DI FRUIZIONE PER UN SISTEMA LINUX
37
obiettivo il capire se non sia possibile tornare all’idea originale di Web OS e di
sviluppare quindi un Sistema Operativo vero e proprio (ad esempio basato sul
kernel Linux) che pur risiedendo su di un server remoto permetta all’utente di
utilizzare le applicazioni attraverso un browser. Questo non ha, però niente a
che vedere con approcci simili a quello della distribuzione gOS: in quel caso, infatti, il sistema è sı̀ accessibile dal browser, ma richiede comunque l’installazione
in locale.
Per meglio capire le caratteristiche di soluzioni come queste basta pensare
al fatto che uniscono l’eterogeneità di modalità di fruizione tipica del Cloud
Computing con l’accentramento dei dati, l’accessibilità di un servizio web e la
familiarità d’uso di un desktop. Ovviamente questo ha come risvolto importante
una grande attenzione al tema della sicurezza e della continuità del servizio.
Anche per permettere ad amministratori di sistema di gestire ciò (ed il resto)
in autonomia, alcuni di questi software possono essere scaricati ed installati su
server propri.
Di questa famiglia di sistemi fanno parte anche diversi progetti interessanti
(e gratuiti), alcuni dei quali anche basati su Linux da un punto di vista tecnico
e/o come stile e/o come filosofia di fondo:
• eyeOS : è un progetto di Free Software e permette anche l’installazione su
proprio server. Completo e curato, prevede anche un servizio di training e
ampia documentazione48 e nella pagina principale del suo sito Internet si
trova un’immagine che rende l’idea del concetto di Cloud Computing più
di molte parole, quindi la riporto.
Figura 2.10: L’immagine posta nella pagina principale del sito Internet di eyeOS
che cerca di schematizzare il concetto di Cloud Computing.
• g.ho.st: anch’esso ben documentato, permette anche l’accesso in prova pur
prevedendo la creazione gratuita di un account (per una disponibilitá di
memoria limitata). Dal lato “etico”, è interessante notare come il progetto
si avvalga del lavoro di un gruppo di sviluppatori e tecnici formato da
Israeliani e Palestinesi e finanzi una fondazione che si occupa appunto di
pace in Medio-oriente.49
• Glide OS : fornisce anch’esso accesso gratuito per una quantità limitata di
memoria disponibile, ma ha due punti d’accesso diversi a seconda che ci
48 Per
49 Per
approfondimenti: http://www.eyeos.org/
approfondimenti: http://g.ho.st/
38
CAPITOLO 2. LA FORESTA DELLE DISTRIBUZIONI
si voglia collegare con un computer o con un dispositivo “mobile”. Non è
facilmente raggiungibile la documentazione.50
• Cloudo: ancora alla versione beta, promette comunque di diventare un
ottimo sistema. Integrato al suo interno, tra l’altro, si trova un kit per
sviluppare applicazioni per il sistema stesso.51
• Desktoptwo: un altro prodotto Free Software, ma stavolta con il supporto
di Sun-microsystems. Non largamente documentato, ma comunque attivo,
grazie alla vivace comunità di sviluppo.52
2.7
Il Linux Standard Base: la ricerca verso l’interoperabilità
Al di là delle innovazioni tecniche, c’è poi un ramo di ricerca importante finalizzata alla definizione di uno standard. Il successo, infatti, di un Sistema
Operativo è indistricabilmente collegato al numero e alla qualità delle applicazioni che possono essere eseguite su di esso. Per Linux questo aspetto potrebbe
sicuramente essere migliorato se ci fosse interoperabilità tra i vari sistemi. Invece ci sono una serie di incompatibilità tra le distribuzioni che fanno sı̀ che
questo non sia possibile: si tratta per lo più di questioni come l’uso di versioni
diverse di certe librerie o l’archiviazione di file importanti in posizioni diverse
all’interno del filesystem. Il Linux Standard Base (LSB ) è stato creato dalla
Linux Foundation 53 per risolvere questi conflitti e rendere meno costoso per
gli sviluppatori di applicazioni occuparsi dell’eseguibilità dei loro prodotti su
piattaforme Linux, sia in fase di realizzazione che in quella di manutenzione.
La Linux Foundation, parallelamente alla definizione delle specifiche, sta
sviluppando anche una serie di tools che permetteranno di creare software conforme allo standard o validarne di già realizzato. Essi dovrebbero agevolare la
diffusione dello standard stesso nell’ambiente degli sviluppatori che potrebbero
in questo modo recepirlo con meno difficoltà.
La pubblicazione del documento definitivo è prevista per il 2009/2010, mentre nel frattempo vengono comunque rilasciate versioni provvisorie anche per
permettere agli addetti ai lavori di dare consigli ed esprimere critiche che possano
aiutare ad ottenere regole il più largamente condivise possibile.
2.8
Una tassonomia per le distribuzioni esistenti
Come già accennato in precedenza, ciò che maggiormente caratterizza una distribuzione rispetto alle altre è: la filosofia di fondo, la specializzazione, il tipo di
pacchettizzazione, le modalità scelte per la manutenzione. A questo si può aggiungere, in seconda analisi, anche molto altro: hardware supportato, strategie
adottate per la sicurezza, utente target, e cosı̀ di seguito.
Per non rischiare di “perdersi nella giungla”, si cercherà di utilizzare come
“mappa” per questa tassonomia lo schema temporale riportato in figura 2.11: si
50 Per
approfondimenti: http://www.glidedigital.com/
approfondimenti: http://cloudo.com/
52 Per approfondimenti: http://desktoptwo.com/
53 Per informazioni: http://www.linuxfoundation.org/
51 Per
2.8. UNA TASSONOMIA PER LE DISTRIBUZIONI ESISTENTI
39
tratta solo apparentemente di una foresta (nel senso matematico del termine),
poiché tutti gli alberi qui riportati hanno una radice comune nascosta costituita
dal primo rilascio del kernel Linux.
Di questo albero cercheremo di analizzare in modo particolare i rami principali, individuati in quelli che hanno portato a più ampie ulteriori ramificazioni,
anche perché solitamente le caratteristiche principali dei genitori vengono ereditate dai figli e quindi in quei casi si tratta dei capostipiti di grandi famiglie54 . Si
noti, inoltre, che anche se una distribuzione derivata prende vita da una particolare versione della genitrice, viene poi comunque spesso nuovamente influenzata
dal successivo sviluppo di questa.
È comunque possibile anticipare che ciò che maggiormente differenzia tecnicamente le famiglie è il sistema scelto per la gestione dei pacchetti ed il loro
formato, mentre le caratteristiche in ambito applicativo, modalità di fruizione,
architetture supportate, ecc. tornano in modo simile in tutti i rami maggiori ed
in alcuni dei minori.
Infine, prima di procedere, si precisa che gli esempi riportati e quelli presenti
nello schema in figura non coprono l’interezza dell’esistente in attività: si cerca
però di delineare una modalità d’analisi che potrà poi essere applicata anche
ad altre distribuzioni non esplicitamente descritte, divenendo in questo modo
possibile il loro ideale inserimento all’interno dell’albero.
2.8.1
Le tre grandi famiglie
Tutti e tre i progetti capostipiti muovono i primi passi nel 1993, cioè due anni
dopo la prima pubblicazione del kernel Linux scritto da Linus Torvald: ancora
oggi le impronte lasciate dai loro iniziatori restano indelebilmente impresse sulla
strada dei sistemi Linux contemporanei.
Slackware
Derivata a sua volta da SLS, poi presto decaduta, l’annuncio del primo rilascio di
Slackware avvenne il 16 luglio 1993 ad opera del fondatore del progetto, Patrick
Volkerding, che ad oggi rimane ancora l’unico sviluppatore ufficiale.
Il sistema ha sempre ricercato essenzialità e stabilità, pur essendo adatto
ad una workstation come ai grandi server anche a causa del software incluso di
default (che va dai semplici applicativi da ufficio a ftp, web ed email server, a
tools per la programmazione).
La completa mancanza di “fronzoli”, che la rende adatta soprattutto ad
utenti esperti, si evidenzia ad esempio nel fatto che tutt’ora l’installazione e
molte operazioni di gestione (come la gestione dei pacchetti) siano eseguibili
solo in modo testuale. Il formato dei pacchetti è lo storico .tgz ed il gestore di
default (PkgTools) non risolve le dipendenze (motivo per cui la comunità degli
utenti ha sviluppato programmi che lo fanno), mentre il supporto alle varie
architetture è decisamente scarso, poiché sono contemplati solo processori x86.
Anche per ovviare a questo inconveniente sono nate da questa distribuzione:
Slackintosh per processori PPC, Slamd64 per AMD64, Bluewhite64 per x86 64,
54 Non verranno prese in esame distribuzioni il cui progetto si sia esaurito, a meno che non
abbia portato frutti ancora attivi, ed il criterio principale con il quale saranno presentate sarà
la data di primo rilascio della radice del ramo considerato.
40
CAPITOLO 2. LA FORESTA DELLE DISTRIBUZIONI
Figura 2.11: La linea temporale che mostra l’evoluzione delle principali distribuzioni Linux (“GNU/Linux distro timeline” nella versione 9.3, scaricabile
all’indirizzo Internet http://futurist.se/gldt).
2.8. UNA TASSONOMIA PER LE DISTRIBUZIONI ESISTENTI
41
Splack (che non è indicata nella mappa) per Sparc e Armedslack (anch’essa non
indicata nella mappa) per ARM.
Rilasciata con licenza GNU/GPL, viene distribuita negli ultimi anni a pagamento, a differenza della maggior parte delle distribuzioni da essa derivate.
A parte quelle già nominate e quelle trattate nel seguito, le altre derivate di
Slackware hanno come motivazione principale:
• l’introduzione del supporto ad una lingua diversa dall’Inglese come MopsLinux, Darkstar e How-tux;
• l’introduzione di un’interfaccia più user-friendly come per Vector e GoblinX;
• la possibilità di utilizzo della distribuzione con una modalità di fruizione
diversa dall’installazione come Topologilinux, DeLi, Austrumi, NimbleX e
Absolute;
• la possibilità di utilizzo della distribuzione con uno scopo diverso come
per Zenwalk (ex minislack);
• la modifica del sistema di gestione dei pacchetti come Frugalware che usa
quello di Arch (che comunque sfrutta lo stesso formato di pacchetti) o
Voltalinux che integra in aggiunta anche quello di NetBSD non trattato
in questa sede.
S.u.S.E. La distribuzione nasce nel 1994 ad opera di un gruppo di studiosi
del mondo Unix-Linux con il nome di S.u.S.E. (acronimo della locusione tedesca
per “Sviluppo di software e sistemi”), poi contratto in SuSE ed infine divenuto
SUSE con il passaggio alla Novell55 .
Dall’acquisto da parte della società avvenuto nel 2003, viene distribuita soprattutto nella versione a pagamento, SUSE Linux Enterprise, comprendente
manuali e software proprietario.
Come gestore del sistema, SUSE integra YaST anzichè mantenere il sistema
scarno di Slackware. Inserisce inoltre applicativi più completi, soprattutto per
un utilizzo presso uffici ed integra un tool per la gestione del partizionamento
del disco.
Sicuramente la derivata di maggior successo è OpenSUSE, open source e
anch’essa sviluppata da Novell con lo scopo di promuovere l’ampliamento e
sviluppo di SUSE grazie all’apporto di programmatori utenti di questa distribuzione.
Altre derivate: Caixa Mágica in lingua portoghese e Astaro per dispositivi
all-in-one firewall.
Slax Si tratta di una derivata piuttosto fedele all’originale rilasciata però solo
in versione live (CD/DVD o supporto USB) e come l’originale è sempre stata
sviluppata da una sola persona, Tomas Matejicek. In più rispetto ad altre live
prevede la possibilità di customizzarla prima di scaricarla dal sito e, nel caso
di utilizzo da CD/DVD, di essere eseguita risiedendo solamente sulla RAM: è
quindi possibile, avviata questa modalità, togliere il supporto di memorizzazine
ottico per poter utilizzare il lettore per altri scopi.
55 cfr.
nota 36
42
CAPITOLO 2. LA FORESTA DELLE DISTRIBUZIONI
Da essa derivano DNALinux, specializzata nell’ambito della bio-informatica,
e Wolvix, che propone una selezione di applicativi più orientato ad un utilizzo
casalingo e quotidiano.
Debian
Il Progetto Debian56 è stato fondato ufficialmente da Ian Murdock il 16 agosto
1993 e da allora viene sviluppato grazie al lavoro di moltissimi volontari in tutto
il mondo. Caratteristica che ha mantenuto fin dalle sue origini è la scelta di
includere solo Free Software (pur permettendo agli utenti di aggiungere software
rilasciato con licenze di altra natura ma sempre ottenibile gratuitamente) ed
essere distribuita solo gratuitamente. Forse anche per questo la sua discendenza
è davvero molto numerosa.
Grazie alla grande comunità di svuluppatori, Debian garantisce ampio supporto hardware e linguistico e documentazione in quantità e per utenti di ogni
livello di preparazione tecnica (compresi eventuali futuri nuovi sviluppatori).
Per la stessa ragione sono molti i pacchetti disponibili per la distribuzione (e
per tutte quelle che usano lo stesso sistema di pacchettizzazione): il formato
utilizzato è il .deb ed il gestore è APT, al quale viene solitamente abbinato un
gestore grafico che ne sfrutta le potenzialità (solitamente Synaptic), mentre si è
già parlato in precedenza dell’organizzazione dei repository.
Si presenta, quindi, come un sistema molto aperto, malleabile e flessibile,
che si propone di incentivare la proliferazione del buon software per tutti i tipi
di target, cercando anche di perseguire la causa dell’interoperabilitá. A tale
proposito, seguendo il motto del progetto che è “Debian, il sistema operativo
universale”, uno dei rami di sviluppo attivi al momento si pone come obiettivo
la produzione di port per altri kernel Unix-based (come ad esempio quelli della
famiglia BSD e quelli della famiglia Solaris).
Per tutte queste sue peculiarità, da questa distribuzione ne sono derivate
moltissime altre, alcune delle quali hanno avuto a loro volta una diffusione e
discendenza notevoli come nel caso delle due famiglie di cui ai prossimi paragrafi.
La diversificazione, inoltre, ha riguardato molti aspetti tra i quali una lunga serie
di specializzazioni. Tutto ciò fa di questo ramo, come già accennato, quello più
interessante dal punto di vista dello scopo di questo progetto: si cercherà quindi
di prestare particolare attenzione alle distribuzioni che ne fanno parte per poter
capire se tra esse può trovarsi il giusto spunto tecnico e tecnologico.
A parte quelle di sui parleremo in seguito, altre distribuzioni nate direttamente da Debian e tutt’ora attive hanno perseguito diversi scopi:
• gestire dispositivi di rete, come Gibraltar per Firewall e LEAF customizzabile per essere embeddata in diversi dispositivi;
• educational, come Skolelinux, una variante di LinEx e una di Guadalinex;
• altre specializzazioni soprattutto linguistiche o legate all’uso nelle amministrazioni pubbliche e private, come LinEx, Impi e Guadalinex che si sono
poi legate alla famiglia Ubuntu, NepaLinux e Boss;
56 Una donna come me non può rimanere indifferente al romanticismo che sta all’origine di
un nome, quello della distribuzione Debian, cosı̀ conosciuto nel mondo: Ian Murdock lo coniò
unendo il diminutivo del nome della sua allora fidanzata e attuale moglie Debra con il proprio
nome.
2.8. UNA TASSONOMIA PER LE DISTRIBUZIONI ESISTENTI
43
• commerciali, come Xandros, ex Corel, attualmente utilizzata ngli ASUS
Eee PC, o comunque con l’intenzione di facilitare l’introduzione di software proprietario di vario genere, come Freespire che raccoglie l’eredità di
Linspire, ex Lindows;
• migliorare la user-friendness o l’eleganza dell’interfaccia, come SimplyMepis, ex Mepis, o Elive, o Tuquito;
• per “tecnici” come Clonezilla Live, grml, Finnix, PureOS, Sidux e PelicanHPC.
Knoppix Distribuzione nata ad opera di Klaus Knopper da Debian per divenire una live con il parco software più completo possibile per uso desktop e
il riconoscimento automatico dell’hardware migliore (può infatti essere lanciata
senza problemi su quasi tutti i sistemi basati su architettura x86), è poi effettivamente divenuta famosa per questo e viene rilasciata in due versioni, una
per CD e una “maxi” per DVD, realizzate sfruttando un particolare sistema
di compressione del filesystem che permette di memorizzare su questi supporti
molti più dati di quanto sarebbe possibile senza.
La distribuzione permette anche di integrare pacchetti scaricati da Internet e
non compresi nel CD grazie ad un software innovativo che si occupa di connettere
due parti di filesystem una risiedente su supporto ottico di memorizzazione e
l’altra sulla RAM.
Nell’ultima release, infine, è stata introdotta un’interfaccia desktop detta A.D.R.I.A.N.E. che si avvia di default al boot del sistema, appositamente
studiata per utenti non-vedenti.
Come per molte altre live, è comunque permesso anche eseguire l’installazione.
Da questa distribuzione ne sono derivate molte altre, in alcune casi anche
intere famiglie, per diverse ragioni:
• Kurumin, progetto al momento abbandonato, nacque in Brasile per l’uso
della distribuzione in Portoghese su architettura i386, ma da essa derivano
Kalango per i486 sempre in Portoghese (e che ora ha sostanzialmente
preso il posto della precedente) e Poseidon per usi scentifici, ora basata su
Ubuntu;
• Damn Small Linux, molto compatta e avviabile da moltissimi supporti
comprese le biz-cards, da cui deriva DSL-N ampliando leggermente il parco
degli applicativi;
• Morphix, progetto nato per essere base di sviluppo per distribuzioni personalizzate e ora abbandonato, del quale resiste un solo discendente, Dreamlinux, che ha lo stesso scopo ma ne migliora l’interfaccia;
• Kanotix, che amplia il supporto ad alcune tipologie di periferiche, da cui
derivano Parsix, che introduce il supporto per il Persiano, e Auditor Security Linux che si è successivamente fusa con Whax, ex Whoppix, un’altra
derivata di Knoppix, per dar vita a Backtrack, che cerca di ampliare ulteriormente la flessibilità hardware con l’ulteriore aggiunta di una certa
attenzione alla sicurezza;
44
CAPITOLO 2. LA FORESTA DELLE DISTRIBUZIONI
• Musix, specializzata nell’ambito della manipolazione audio;
• KnoppMyth per una semplice installazione di MythTV;
• Feather, compatta nata come alternativa a Damn Small Linux, con differente scelta software e meno ottimizzazione;
• Bioknoppix, specializzata per la biologia molecolare;
• eduKnoppix (non presente nella mappa), specializzata per studenti ed
insegnanti;
• Kaella, con supporto completo per il Francese;
• Symphony OS, poi passata sotto Debian e poi sotto Ubuntu, si proponeva di migliorare il più possibile la user-friendness con una interfaccia
particolare.
Ubuntu Nata nel 2004 basandosi su Debian, si focalizza sull’utente e sulla
semplicità di utilizzo. Ubuntu è orientato all’utilizzo desktop e pone una grande attenzione al supporto hardware. È prevista una nuova versione ogni sei mesi
(ma non tutte LTS, cioè supportate per lungo tempo). Finanziato dalla società
Canonical Ltd57 , questo sistema è rilasciato come software libero ed è gratuito.
L’ideatore dell’iniziativa è Mark Shuttleworth, un giovane imprenditore sudafricano diventato sostenitore del software libero al cui servizio ha posto le sue
risorse.
Si è già parlato dell’organizzazione dei suoi ampi repositories (cfr. nota 28)
che la rendono altamente flessibile, mentre per le sue caratteristiche di usabilità e completezza è ora la distribuzione leader nel settore dei sistemi desktop,
anche perchè tra i suoi obiettivi pone quello di dare modo ad ogni utente di
utilizzare il sistema nella propria lingua. A causa di tutto questo da essa sono
derivate moltissime altre nuove distribuzioni soprattutto negli ultimi tempi e
altre, precedentemente basate su sistemi diversi, sono passate a questo.
Fornita con sistema grafico Gnome, sue principali discendenti sono Kubuntu,
distribuita con KDE, e Xubuntu, equipaggiata con Xfce. Alcune altre derivate,
ufficialmente riconosciute o meno, sono:
• nUbuntu, dedicata alla sicurezza informatica;
• Linux Mint, che introduce un’interfaccia grafica elegante e nuova;
• gNewSense, che si pone come obiettivo l’inclusione solo ed esclusivamente
di software libero;
• Trisquel, sviluppata dal governo reglionale della Galizia, in Spagna, condivide l’obiettivo della precedente, include il suporto per Galiziano, Catalano ed Euskera (la lingua basca) ed è specializzata per la pubblica
amministrazione (uffici, scuole e altri servizi);
• Kiwi, ottimizzata per l’uso in lingua rumena e ungherese;
57 Nel 2005 è nata la Fondazione Ubuntu con un fondo iniziale di 10 milioni di dollari, il
cui scopo è lo sviluppo della distribuzione nel caso in cui Canonical Ltd dovesse cessare le
attività. La fondazione è al momento dormiente.
2.8. UNA TASSONOMIA PER LE DISTRIBUZIONI ESISTENTI
45
• OpenGEU, ex Geubuntu, che vuole unire la semplicità di utilizzo del desktop environment Gnome con la velocità , leggerezza e ricchezza di effetti
grafici bidimensionali del window manager Enlightenment;
• U-lite, ex Ubuntulite, per computer particolarmente lenti;
• Fluxbuntu, che usa come window manager Fluxbox;
• gOS, inizialmente realizzata per essere installata su altri Sistema Operativi
ed utilizzata tramite browser web, sta ora sviluppando un’ottimizzazione
per netbooks utilizzabile anche su computer desktop;
• ZevenOS, ex Zebuntu, per macchine vecchie e interfaccia BeOS-like;
• Easy Peasy, ex Ubuntu eee, ottimizzata per Eee PC;
• CrunchBang, leggera e veloce, con Openbox window manager;
• Ubuntu JeOS, realizzato per le virtual appliances (non presente nella
mappa);
• Qimo, pensata per banbini dai 3 anni (non presente nella mappa);
• Ubuntu Studio, per la creazione e manipolazione di progetti multimediali
(non presente nella mappa);
• Edubuntu, per le scuole (non presente nella mappa);
• UbuntuME (che sta per “Ubuntu Muslim Edition”) contenente software
“islamico”, come il tempo delle preghiere, un programma per lo studio
del Corano e un filtro per la navigazione su Internet (non presente nella
mappa).
Consderate parte integrante del progetto, esistono poi numerose “edizioni”
della stessa distribuzione Ubuntu: ne sono esempi Ubuntu MID Edition, dove
“MID” sta per “Mobile Internet Device”, o Ubuntu Netbook Remix, pensata
per i netbooks e realizzata in collaborazione con Intel e alcuni OEMs58 .
Red Hat
Red Hat è la società fondata da Marc Ewing nel 1993 produttrice dell’omonima
distribuzione che vide il suo primo rilascio il 3 novembre 1994. Red Hat fu
la prima distribuzione ad essere commercializzata, la prima a fornire supporto
per aziende e per utenti inesperti, la prima a poter essere aggiornata anzichè
reinstallata all’arrivo di ogni nuova versione. Usa tutt’ora pacchetti in formato
.rpm, candidato a divenire il formato standard per le distribuzioni Linux.
La produzione della distribuzione originale è stata sospesa nel 2004, poi ripresa di recente, anche se ora la distribuzione principale della società è Red Hat
Enterprise Linux, venduta soprattutto ad aziende ed imprese in particolare del
settore delle telecomunicazioni, anche per applicazioni server. I numerosi partner (o società acquisite come Delix, la prima assorbita) nei campi sia hardware
che software e il contatto con la comunità di sviluppatori Linux dà a questa
58 Sigla
che sta per “Original Equipment Manufacturer”
46
CAPITOLO 2. LA FORESTA DELLE DISTRIBUZIONI
distribuzione una buona posizione nel mercato, ottima stabilità e buoni livelli
di sicurezza dal punto di vista tecnico.
Oltre a quelle delle quali si parlerà nel seguito, altre distribuzioni derivate
da Red Hat (il che in alcuni casi significa solo che sfruttano lo stesso sistema di
gestione dei pacchetti e alcuni degli stessi applicativi ed in molti casi si tratta
di distribuzioni commerciali) sono nate per diversi obiettivo:
• per utenti esperti come PLD e Turbolinux;
• per server come SME Server, ex e-smith, o Miracle, o Asianux, derivata
da Miracle e Red Flag, o AnNyung, poi passata a Fedora, o StartCom;
• per architetture particolari come Yellow Dog (per il quale fu inizialmente
creato il gestore YUM) e Aurora;
• per una situazione o una modalità di fruizione particolari come K12, Blag
e BU Linux, poi tutte passate a Fedora;
• ottimizzate per lingue diverse dall’Inglese come Vine, Red Flag, Linpus,
poi passata a Fedora, Bayanihan, poi passata prima a Fedora ed infine a
Debian;
• con un aspetto diverso come aLinux, ex Peanut;
• con particolari specializzazioni come BioBrew e Scientific;
• per divenire diretti concorrenti gratuiti di Red Hat Enterprise Linux come
CentOS e White Box.
Mandrake Il filone di Mandrake, poi diventato Mandriva, è il risultato anche
di due fusioni: la prima con Conectiva (un’altra derivata di Red Hat, nata in
Brasile), la seconda con Lycoris (ex Redmond, derivata da Caldera, poi divenuta
SCO, ora estinta, che a sua volta era derivata di Red Hat e che aveva assorbito
in precedenza Linux-FT).
Costruita per utenti poco esperti, naque da Red Hat introducendo l’appena
nato KDE.
La sua famiglia comprende anche: ALT Linux, distribuzione russa in due
versioni, desktop e server; PCLinuxOS, che aggiunge alcune funzionalità sempre
per l’uso desktop e per utenti non esperti, e dalla quale derivano TinyMe e
Granular, la prima una mini e la seconda incentrata su una maggiore facilità
d’uso; blackPanther, per l’uso in Ungherese; Sam, poi passata a PCLinuxOS,
che ricerca la facilità d’uso e utilizza Xfce anzichè KDE.
Fedora Core Fedora, ex Fedora Core, è curata dal Progetto Fedora, un progetto Open Source sponsorizzato (ma non direttamente supportato) da Red Hat
e supportato dalla community. L’obiettivo è quello di lavorare con la comunità
di GNU/Linux per creare un sistema operativo completo, utilizzando esclusivamente software liberi e forum pubblici con processi aperti. Questo porta a un
continuo aggiornamento delle distribuzioni che vengono rilasciate con scadenza
fissa ogni sei mesi.
È indicata per qualsiasi utilizzo poiché contiene tutti gli strumenti per lavorare in ambiente server senza tralasciare una serie di tools grafici per la
configurazione, utili per gli utenti poco esperti.
2.8. UNA TASSONOMIA PER LE DISTRIBUZIONI ESISTENTI
47
Da essa derivano a loro volta, oltre a tutte quelle precedentemente basate
su altri sistemi: Berry, una classica live con ottimo riconoscimento hardware;
Momonga, che è il frutto del lavoro di una comunità di sviluppatori che programmano soprattutto per sè per loro stessa ammissione; AsianLinux, sviluppata in India aggiungendo molte applicazioni per uso quotidiano anche non libere;
Ekaaty, che aggiunge alcune applicazioni desktop e il supporto al Portoghese;
Simplis, ex Vixta, nata con lo scopo di essere esteticamente il più simile possibile a Windows Vista e contenente una versione di Wine adatta all’esecuzione
di files binari di Vista stesso.
2.8.2
Le famiglie minori
Enoch Divenuta in realtà famosa col nome di Gentoo, non è una distribuzione nel senso stretto del termine, ma piuttosto una “metadistribuzione”. È
infatti nota per il suo sistema di gestione dei pacchetti, Portage (ispirato, come
accennato in precedenza, al sistema usato da BSD), che permette di installare
le applicazioni compilandone il codice sorgente.
Il suo iniziatore, Daniel Robbins, che abbandonò il progetto nel 2004 dopo
aver dato vita alla Gentoo Foundation ora detentrice dei copyright, ne racconta
la nascita in una serie di tre articoli59 .
La scelta di offrire un sistema non binario è stata compiuta per permettere
una maggiore flessibilità e massima ottimizzazione delle prestazioni. Utilizzando
le impostazioni di Portage, infatti, l’utente è in grado di selezionare e personalizzare ogni pacchetto del sistema, producendo eseguibili il più possibile tarati
per le proprie esigenze e il proprio hardware. Attualmente Gentoo supporta i
processori x86, AMD64, PowerPC, UltraSparc, Alpha e MIPS, con ampia disponibilità di software sia in forma di pacchetti sorgente che di ebuild, gli script
utilizzati da Portage per la compilazione e installazione del software.
Gentoo, grazie alle sue caratteristiche apprezzate soprattutto da utenti esperti, gode del supporto di una comunità ampia che produce sia migliorie tecniche
che buona documentazione, che cerca di rivolgersi anche ad utilizzatori alle
prime armi al fine di facilitare loro l’utilizzo di questo sistema.
Da una cosı̀ particolare distribuzione ne sono derivate poi altre: Gentoox, per
Xbox; Vlos, ex VidaLinux, una distribuzione per uso desktop piuttosto completa
che usa Portage per la gestione dei pacchetti; Pentoo, una live realizzata per test
di penetrazione e di sicurezza delle reti; Sabayon, ex RR4, realizzata in Italia,
live ricca per uso desktop in due versioni, leggera per CD e completa per DVD,
si pone come obiettivo anche la gradevolezza dell’aspetto; BinToo, distribuzione
completa binaria; Papug, minimale live CD adatto anche ad architetture vecchie.
Ututo Nata in modo autonomo alla Universidad Nacional de Salta in Argentina, ora si basa su Gentoo e sul suo sistema di gestione dei pacchetti e nelle
ultime versioni il nome completo è divenuto Ututo XS. Si tratta di un sistema
desktop che garantisce ottime prestazioni, progettato per l’utilizzo a casa e in
ufficio, per sviluppatori, per organizzazioni e uffici pubblici, e che si focalizza
sulla massima conformità alle direttive della Free Software Foundation, includendo quindi ad esempio solo ed esclusivamente software libero (e per questa
59 cfr.
riferimento bibliografico [4]
48
CAPITOLO 2. LA FORESTA DELLE DISTRIBUZIONI
attenzione alle direttive della fondazione è quella indicata come preferita da
Richard Stallman).
Da essa deriva Ututo-e, sviluppata dallo stesso gruppo che si occupa della
distribuzione principale e dedicata ad hardware vecchio.
SmoothWall GPL SmoothWall è una società inglese che si occupa di prodotti per la sicurezza nelle reti. SmoothWall GPL, ora noto come SmoothWall
Express, è un sistema Open Source che include un Sistema Operativo Linux e che
può essere installato su dispositivi di rete e configurato attraverso un’interfaccia
grafica web molto semplice ed intuitiva.
Da questa deriva IPCop Firewall.
Sorcerer Si tratta di una distribuzione completamente basata sui file sorgente, che vengono prelevati direttamente dalle homepages degli autori o dai
relativi mirrors. Questi file vengono poi compilati rispettando architetture e
ottimizzazioni richieste dall’amministratore di sistema ed infine installate.
Da essa derivano Lunar e Source Mage, che introducono ognuna un proprio
sistema di gestione dei pacchetti sorgente che nel secondo caso si chiama Sorcery,
cioè stregoneria, metafora utilizzata all’interno di tutto il sistema.
Specifix Divenuta poi rPath, prendendo il nome dell’azienda che se ne occupa, ha come finalità prima l’essere “al passo coi tempi” sia rispetto alle novità
software che architetturali. Grazie anche ad altri strumenti sviluppati dalla medesima società, permette grande personalizzazione e ne facilita l’uso nel campo
della virtualizzazione e in quello del cloud computing. La principale innovazione
è l’uso di un gestore dei pacchetti di recente sviluppo, Conary, omonimo della
società che lo distribuisce.
Da questa, utilizzando lo stesso gestore e introducendo anche software a
pagamento avendo come obiettivo quello di facilitare il passaggio degli utenti da
Windows a Linux, deriva Foresight. Oz, invece, pur ispirandosi alla missione di
rPath, ora si basa su Xubuntu, utilizzando anche il suo gestore di pacchetti ma
introducendo Enlightenment come window manager.
2.8.3
I “solitari”
Si tratta di distribuzioni nate e cresciute in modo autonomo tutt’ora attive.
Verranno presentate, come detto in precedenza, in ordine crescente di data di
primo rilascio.
Weaver Ora Nitix, sviluppata da Lotus Foundation (collegata ad IBM) per
applicazioni server avanzate e con un alto livello di automatizzazione.
µClinux Conosciuta anche come uClinux, è realizzata per sistemi senza Memory Management Unit (MMU) ed è utilizzabile anche con microcontrolli.
Rock Linux Si tratta in sostanza di un kit per la costruzione di una propria
distribuzione realizzata a partire dai file sorgenti.
Linux From Scratch È un progetto sia software che soprattutto letterario
che si propone di insegnare all’utente a costruirsi il proprio sistema Linux
“da zero”, avendo come obiettivo principale quello di aiutarlo a capire
2.8. UNA TASSONOMIA PER LE DISTRIBUZIONI ESISTENTI
49
“com’è fatto dentro” un tale sistema, quali sono i “trucchi” migliori per
amministrarlo, come funziona e come può interagire con altri sistemi, oltre
a come poterlo customizzare per renderlo rispondente al proprio gusto
personale.
Coyote Si tratta di un personal firewall progettato per proteggere reti casalinghe o scolastiche.
EnGarde Distribuzione per applicazioni server particolarmente orientata alla
sicurezza e alla facilità di configurazione, ottenuta grazie ad un tool con
interfaccia web.
Crux Distribuzione per utenti esperti che utilizza pacchetti in formato .tar.gz
con un semplice sistema di gestione e si pone come obiettivo l’utilizzo di
features, tools e librerie nuovi.
dyne:bolic Distribuzione live fornita solo in formato ISO realizzata per l’editing audio e video e per la fruizione di materiale multimediale, motivo per cui presta particolare attenzione ad un buon riconoscimento delle
periferiche necessarie.
Arch Distribuzione general purpose per utenti di livello medio con un proprio
sistema di gestione dei pacchetti, Pacman, utilizzato anche, come visto, da
Frugalware, derivata di Slackware. Oltre a fornire un sistema che agevola
la customizzazione, sviluppa anche un sistema, Arch Build System (ABS ),
che permette di costruire facilmente nuovi pacchetti o di riconfigurarne di
esistenti e condividerli poi attraverso il repository dedicato, Arch Linux
User Repository.
Puppy Si tratta di una distribuzione live leggerissima che una volta avviata
(da un qualche dispositivo removibile) viene completamente caricata nella
RAM (anche in caso non sia di grande capienza), il che la rende anche
molto reattiva e veloce. È inoltre in grado, all’arresto, di scrivere le modifiche apportate ai dati di configurazione e dati utente sul CD o DVD
multisessione dal quale era precedentemente stata caricata (e a maggior
ragione è in grado di farlo su dispositivi diversi). Utilizza due gestori di
pacchetti propri, PupGet e DotPup.
GoboLinux Distribuzione che utilizza pacchetti tar.bz2 e che si pone come
obiettivo quello di rivoluzionare l’organizzazione delle cartelle e dei dati
di sitema tipica del filesystem dei sistemi Unix-based ed in particolare di
quelli Linux.
Ark Si pone come obiettivo quello essere semplice, mettere a disposizione dell’utente medio tutte le applicazioni di cui ha bisogno e nessuna di più e
comprendere solo Free Software. Utilizza pacchetti .rpm e supporta anche
apt attraverso due interfacce grafiche.
Yoper I pacchetti, distribuiti in formato .rpm, vengono costruiti a partire dal
codice sorgente e combinando tutte le migliori features delle maggiori
distribuzioni.
GeeXboX Distribuito solo come ISO, si tratta di una distribuzione live che si
pone come obiettivo il trasformare un computer in un Media Center.
50
CAPITOLO 2. LA FORESTA DELLE DISTRIBUZIONI
Kate Linux Progettato per utenti di livello medio, mette insieme soluzioni
Open Source note con software proprio, tra cui anche un proprio sistema
di gestione per pacchetti in formato .tgz.
Pardus Ultimo “capostipite” nato nel mondo Linux, è stato fondato e sviluppato dal Consiglio per la Ricerca Scientifica e Tecnologica turco. Include
un’ampia gamma di soluzioni appositamente realizzate tra cui un nuovo
sistema di gestione dei pacchetti, PiSi, efficiente e dotato di un’interfaccia
grafica user-friendly.
2.9
Approcci alla creazione di una nuova distribuzione
Dalla precedente descrizione è possibile desumere che vari sono i modi tra i quali
è possibile scegliere quello per realizzare una propria nuova distribuzione.
Anzitutto la customizzazione, da effettuare preferibilemtente a partire da
un sistema con buone proprietà di stabilità e prestazioni e con una quantità
sufficiente di documentazione tecnica che la descriva. In questo caso si sceglie
solitamente anche una distribuzione con caratteristiche di target, usabilità e
fruibilità affini a quelle che si desidera ottenere. Inoltre si preferisce spesso un
sistema con buon supporto dell’hardware tipico dell’ambiente nel quale si pensa
verrà impiegato quello nuovo. In questo caso solitamente viene mantenuta una
certa compatibilità con la distribuzione genitore.
L’approccio diametralmente opposto è la costruzione fatta “da zero” partendo dalla scelta dei files sorgenti.
Sono poi da prendere in considerazione le due soluzioni intermedie: quella
fornita da alcune distribuzioni che mettono a disposizione dell’utente strumenti
software per la realizzazione di una propria distribuzione personalizzata e quella
che si agisce aggiungendo solamente, senza togliere o modificare, programmi ad
una distribuzione già pronta.
In tutti i casi una scelta fondamentale da fare è quella del sistema di gestione
del software: se lo si vuole distribuire in formato binario e sorgente, nel primo
caso se si vuole usare un formato esistente o si preferisce studiarne uno proprio
(magari per avere un maggiore controllo del software installabile nel sistema) ed
infine quale gestore prevedere, nel caso in cui ne sia disponibile più di uno per
il formato di pacchetti selezionato, e con che tipo di interfaccia utente. Altre
decisioni da prendere che fanno la differenza sono: quali architetture supportare,
quale sistema grafico (window manager e desktop environment in particolare)
integrare e quale/i modalità di fruizione prevedere.
Capitolo 3
Analisi e progettazione
Dopo il lavoro di preparazione svolto nelle pagine precedenti, si giunge infine
alla stesura del progetto vero e proprio. Partendo da un’analisi il più possibile
chiara e dettagliata dei requisiti e da ulteriori approfondimenti degli stessi svolti
ancora in collaborazione con il committente, si giungerà alla definizione delle
linee guida per la realizzazione della distribuzione in esame. Linee che in alcuni
casi, però, vedranno la loro forma definitiva solo in una fase ancora successiva,
dovendo essere sottoposte al giudizio di tecnici esperti quali grafici, sistemisti e
sviluppatori e successivamente a quello di alcuni insegnanti. Ciò non toglie la
necessità, per poter dare il via alla fase di sviluppo, di identificare un sentiero
preciso che tutti i futuri contributori dovranno seguire affinché l’obiettivo non
venga mai ad essere perso di vista.
3.1
Analisi: Casi d’Uso e descrizione del sistema
Fissando come punto di partenza per l’analisi la raccolta dei requisiti illustrata al
paragrafo 1.2, si cercherà ora di approfondire le caratteristiche peculiari richieste
per il sistema che ci si propone di sviluppare, al fine di ottenere un quadro più
chiaro di ciò che dovrà essere realizzato e delle professionalitá che sarà necessario
avere a disposizione all’interno del team di sviluppo.
Soprattutto in questa fase si sfrutteranno le potenzialità dei canoni dettati
dall’UML (Unified Modeling Language) ed in particolare si comincerà col definire
e descrivere i Casi d’Uso per poi concentrarsi sugli aspetti più complessi che da
ciò emergeranno.
3.1.1
Definizione e descrizione dei Casi d’Uso
Il seguente diagramma dei casi d’uso mostra l’interazione tra attori e sistema in
esame.
Come si può notare, gli attori individuati sono:
Utente Si tratta sia dei bambini che degli “adulti di riferimento”, insegnanti
in particolare, che con loro utilizzeranno il sistema.
Amministratore Può essere un tecnico della scuola o del fornitore della distribuzione, un insegnante formato o con conoscenze personali sufficienti,
51
52
CAPITOLO 3. ANALISI E PROGETTAZIONE
Figura 3.1: Use Case Diagram per il sistema in esame.
colui il quale si occuperà di gestire il sistema da esperto, eseguendo le
operazioni di gestione e manutenzione ordinaria.
Repository In questo caso non si tratta di un attore umano, ma di un sistema
esterno che interagisce con quello in esame attraverso una connessione di
rete. Il repository, in questo caso, potrebbe essere quello centrale, un
mirror remoto oppure una copia locale (mantenuta dagli amministratori
del sistema).
Segue ora la descrizione dei casi d’uso indicati nel diagramma, strutturata
in modo da sottolineare le relazioni causa-effetto tra azioni di attori e sistema
e da delineare non solo i percorsi principali, ma anche gli eventuali alternative
courses.
Accesso al sistema
Utente o Amministratore: Richiede l’avvio del sistema in un modo che dipenderà dalla modalità di fruizione richiesta (cfr. paragrafo 3.1.1 e seguito).
Sistema: Visualizza una schermata “di avvio”, contenente il logo del sistema ed
una barra di avanzamento relativa alla procedura di avvio stessa.
Terminata questa procedura, viene visualizzata la schermata “di autenticazione” e tale evento viene accompagnato dalla riproduzione di una
melodia breve. La procedura di autenticazione e l’accesso all’ambiente
desktop vengono descritti nel paragrafo “Autenticazione”.
3.1. ANALISI: CASI D’USO E DESCRIZIONE DEL SISTEMA
53
Alternative courses All’interno della schermata di avvio potranno essere visualizzati i messaggi eventualmente provenienti dal sistema durante la
procedura di avvio stessa.
Autenticazione
Sistema: Visualizza la schermata di autenticazione come detto al paragrafo precedente. La schermata contiene il logo, un pulsante che permette di arrestare il sistema (cfr. relativo paragrafo) e un messaggio ben evidente che
richieda l’inserimento della chiave di autenticazione.
Utente o Amministratore: Inserisce il dispositivo che gli è stato precedentemente consegnato contenente la sua chiave.
Sistema: Il sistema controlla che la chiave sia valida e, in caso affermativo,
se appariene ad un utente o ad un amministratore. Nel caso in cui appartenga ad un utente, il sistema si avvia mostrando l’ambiente desktop
personalizzato dall’utente (in particolare mostrerà o meno i menù o le
icone dei programmi o i “contenitori”) ed eventualmente aprendo una o
più applicazioni se cosı̀ deciso da un amministratore. Mostrerà inoltre un
“suggerimento” (cfr. relativo use case) che segnala all’utente il fatto che,
passando il cursore su qualunque elemento presente all’interno dell’interfaccia, verrà visualizzato un messaggio breve di descrizione dell’elemento
(cfr. paragrafo riguardante le didascalie).
Alternative courses
• Nel caso in cui il controllo della chiave non vada a buon fine, il sistema,
dopo aver fatto la procedura di unmount del dispositivo in modo non
visibile all’utente, visualizza nuovamente la schermata di autenticazione
contenente un messaggio che richieda di rimuovere il dispositivo e poi
reinserirlo. Ciò si ripete finché il controllo non va a buon fine al massimo
per cinque volte. Alla quinta volta il messaggio all’interno della schermata
consiglierà di contattate un amministratore del sistema.
• Nel caso in cui il controllo della chiave di autenticazione sia andato a buon
fine, ma essa appartenga ad un amministratore, allora l’ambiente che ad
esso si mostrerà fin da subito prevederà i menù ed in particolare uno,
invisibile all’utente, conterrà tutti gli strumenti di amministrazione.
Suggerimenti
Utente: Compie una operazione all’interno dell’ambiente desktop che potrebbe
essere fatta in modo più semplice o per la quale è possibile impostare una
scorciatoia, per un certo numero di volte.
Sistema: Mostra un messaggio chiaro che indichi tale possibilità. Il modo in
cui tale messaggio verrà visualizzato verrà deciso in base alle proposte
di un grafico: sicuramente, però, dovrà essere l’utente a decidere quando
nascondere il messaggio cliccando su un pulsante.
54
CAPITOLO 3. ANALISI E PROGETTAZIONE
Alternative courses
• I messaggi d’errore dovranno avere stesso aspetto dei suggerimenti e stesso intento: migliorare l’interazione tra utilizzatore e sistema. Dovranno
quindi avere aspetto simile ed il testo in essi contenuto dovrà essere chiaro,
comprensibile e non dovrà limitarsi a segnalare l’errore, indicando quindi
anche una possibile soluzione o almeno un canale attraverso il quale sia
possibile ottenere le informazioni necessarie al superamento dell’ostacolo.
• Il sistema visualizzarà dei suggerimenti anche nel momento in cui un utente
accederà all’ambiente desktop o ad un’applicazione per la prima volta in
assoluto o subito dopo una modifica dovuta al percorso di improving,
indicando la possibilità di visualizzare le didascalie o eventuali tutorials.
Didascalie
Utente: Pone il cursore su di un’icona o sul titolo di un menù all’interno dell’ambiente desktop o di un’applicazione e vi sosta per qualche istante.
Sistema: All’interno di un elemento grafico da concordare sulla base delle proposte del grafico, il sistema visualizza una breve descrizione dell’effetto
che si otterrebbe cliccando su quell’elemento.
Utilizzo di un’applicazione
Dopo aver aperto l’applicazione (cfr. relativo caso d’uso), l’utente potrà utilizzare l’applicazione sfruttando tutte le possibilità da essa messe a disposizione
anche a seconda del livello di improving al quale l’utente si trova (discorso che
non si applica ad un amministratore).
Ponendo il cursore su di un elemento presente all’interno della finestra del
programma, l’utente potrà visualizzare le didascalie, mentre con un click potrà
utilizzare la relativa finzionalità.
Il numero di utilizzi di ogni applicazione verrà monitorato dal sistema per
poter mettere in atto gli avanzamenti di livello di improving al momento opportuno.
La chiusura di ogni applicazione potrà essere effettuata utilizzando il pulsante “x” posto nella cornice della finestra (oltre che eventualmente con un’apposita voce di menù od un apposito pulsante all’interno della finestra). Nella cornice delle finestre saranno presenti anche il pulsante di massimizzazione/demassimizzazione e di minimizzazione.
All’uscita da un’applicazione all’interno della quale si era lavorato su di un
file, esso verrá automaticamente salvato all’interno della cartella dell’utente. Nel
caso in cui l’utente non abbia precedentemente indicato un nome per esso, il file
verrà chiamato con il nome dell’applicazione seguito da data e ora correnti. Sarà
poi possibile la rinomina attraverso il programma di gestione dei files.
Apertura di un’applicazione
Utente: L’utente, a seconda del livello di improving che ha raggiunto nell’utilizzo del sistema, può avere a disposizione varie possibilità: scegliere un’icona presente sul desktop solamente, scegliere l’icona di un “contenitore”
3.1. ANALISI: CASI D’USO E DESCRIZIONE DEL SISTEMA
55
presente sul desktop e successivamente l’icona del programma, oppure scegliere il titolo di un menù e poi icona e/o nome di un programma. Per
“scegliere” si intende fare doppio click sull’elemento oppure fare un solo
click e poi premere “Invio” (viene escluso il singolo click perchè causerebbe
una quantità eccessiva di aperture involontarie).
Sistema: Apre l’applicazione selezionata all’interno di una finestra e ne mostra l’icona all’interno della barra contenente tutte le icone dei programmi
attivi.
Alternative courses
• Nel caso in cui l’utilizzatore sia un amministratore le possibilità messe a
sua disposizione di default per la scelta di un’applicazione sono due: dai
menù o attraverso il terminale.
• Se l’applicazione viene aperta per la prima volta, viene immediatamente
visualizzato un suggerimento che segnala la possibilità di visualizzare le
didascalie.
• Se per l’applicazione è previsto un “suggerimento di improving”, cfr. caso
d’uso relativo all’Improving per la descrizione di ciò che avviene.
Aggiunta/rimozione applicazioni
Una particolare applicazione permetterà ad un amministratore di aggiungere
o rimuovere applicazioni dal sistema. Questo programma gestirà in modo trasparente all’utilizzatore pacchetti da installare/disinstallare, dipendenze, configurazioni, ecc.. Presenterà semplicemente all’amministratore un elenco di applicazioni raggruppare per “tema”, corredato di funzione di ricerca per parole
chiave. Le applicazioni già presenti nel sistema si distingueranno da quelle non
ancora presenti attraverso un segno di spunta posto davanti alla relativa voce
dell’elenco.
L’amministratore dovrà selezionare con un click le applicazioni che intende
aggiungere o rimuovere e poi utilizzare la funzione appica che sarà presente
all’interno del programma stesso.
Improving
Utente: Utilizza una certa applicazione per un certo numero di volte (da valutare meglio in seguito anche chiedendo il consiglio degli insegnanti, ma
che si potrebbe individuare inizialmente come 15).
Sistema: La volta successiva al raggiungimento del limite scelto che l’utente richiede l’apertura di quell’applicazione, il sistema apre invece del programma un “suggerimento di improving”, che a differenza dei suggerimenti di
cui sopra richiede accettazione o rifiuto. Il messaggio visualizzato all’interno di tale suggerimento, quindi, indicherà la possibilità di un “avanzamento di livello” (un po’ come se stesse giocando con un videogioco
particolare, cfr. paragrafo 3.1.2) domandando all’utente se sia d’accordo
ed eventualmente suggerendogli di chiedere consiglio all’adulto che lo sta
guidando nell’utilizzo del sistema.
56
CAPITOLO 3. ANALISI E PROGETTAZIONE
Utente: Risponde affermativamente alla domanda.
Sistema: Come se stesse effettuando un aggiornamento (cfr. relativo caso d’uso), il sistema scarica dal repository ed installa il software necessario, poi
avvia il programma. Viene visualizzato immediatamente un suggerimento che evidenzia ciò che è appena stato aggiunto (o eventualmente una
serie di suggerimenti abbinati magari anche ad effetti grafici particolari
con lo stesso scopo), poi un altro che segnala la possibilità di visualizzare
le didascalie. A questo punto l’utilizzo dell’applicazione può proseguire
normalmente.
Alternative courses
• Se l’utente rifiuta l’avanzamento, il meccanismo scatterà nuovamente in
modo identico dopo un certo numero di ulteriori utilizzi (da valutare meglio in seguito anche chiedendo il consiglio degli insegnanti, ma che si
potrebbe individuare inizialmente come 5).
• Nel caso dell’ambiente desktop, il fattore discriminante per un avanzamento in generale sarà il numero di utilizzi del sistema nel suo complesso,
tranne che per l’introduzione dei “contenitori”, per i quali inciderà il numero di icone presenti sul desktop. Tale modifica, inoltre, avverrà in modo
automatico: verrà solo comunicata all’utente, senza chiedere il consenso.
Aggiornamento del sistema
Utente o Amministratore: Accede al sistema.
Sistema: Dopo aver terminato le operazioni di avvio, si collega al repository
per controllare se ci siano degli aggiornamenti disponibili. Nel caso in
cui ci siano visualizza un’icona sulla barra delle applicazioni attive ed
un suggerimento che indichi la presenza di tale icona e la necessità di
selezionarla per avviare l’aggiornamento del sistema.
Utente o Amministratore: Seleziona l’icona.
Sistema: In modo trasparente all’utilizzatore, scarica, installa e configura gli
aggiornamenti.
Alternative courses
• Nel caso in cui l’utilizzatore non clicchi sull’icona, essa rimarrà sulla barra
fino all’uscita dal sistema e verrà riproposta ad ogni nuovo accesso anche
se non ci fossero aggiornamenti nuovi disponibili, finché l’utilizzatore non
la selezionerà e l’aggiornamento non verrà, quindi, eseguito.
• Nel caso in cui sia necessaria l’interazione con l’utente per concludere
correttamente l’installazione e configurazione di un aggiornamento, allora
tale aggiornamento potrà essere effettuato solo da un amministratore.
3.1. ANALISI: CASI D’USO E DESCRIZIONE DEL SISTEMA
57
Amministrazione
Tutti i programmi per l’amministrazione del sistema si troveranno all’interno
di un menù che non potrà mai essere visibile all’utente. L’amministratore avrà
i permessi tipici di un superutente e avrà la facoltà di modificare, rispetto alla
configurazione di default, diverse impostazioni per gli utenti, come ad esempio l’aggiunta/rimozione di applicazioni (l’aggiunta di un’applicazione prevista
per un livello di improving dell’utente successivo a quello corrente gli verrà
comunicata attraverso un messaggio che richieda conferma dell’operazione), il
completamento di un’applicazione incrementale (e nel caso lo richieda gli verranno comunicate le conseguenze della sua richiesta e gli verrà chiesta conferma
dell’operazione), la gestione dei file (dove permetterne il salvataggio, con quali
permessi di accesso, ecc.), la gestione delle chiavi d’autenticazione, ecc.
Riguardo al sistema di gestione dei pacchetti, verranno visualizzati dei messaggi di warning (che permetteranno anche di richiedere direttamente l’annullamento dell’operazione) ogni volta che l’amministratore cercherà di eseguire
una delle seguenti operazioni: aggiungere un programma la cui introduzione
nel sistema è prevista per un livello di improving successivo dell’utente per il
quale è stata fatta la richiesta; chiedere l’installazione della versione completa
di un programma incrementale prima del tempo; aggiungere un repository alla
relativa lista; installare software non ottenuto tramite la comunicazione con un
repository.
Installazione del sistema
La modalità di “installazione” del sistema, cioè di inserimento del sistema in
esame all’interno del sistema informatico della scuola (o eventualmente di altra
situazione per la quale venga richiesto), dipenderà da accordi presi tra fornitore
e acquirente e dalle opzioni previste da quest’ultimo a riguardo. Si tratta comunque di un caso d’uso importante, da non sottovalutare, in quanto momento
privilegiato per l’interazione tra amministratore “locale” e rappresentante del
fornitore, oltre che prima integrazione del sistema all’interno del suo futuro ambiente d’uso. Poichè si prevede che possa essere utile immaginare un utilizzo
del sistema che vada anche oltre il singolo laboratorio (tanto per fare un esempio di ambiente d’utilizzo classico) e che possa vedere potenziata la presenza
del sistema stesso all’interno del sistema informatico che lo ospiterà, sarà utile
prevedere la realizzazione di una serie di guide che possano aiutare un amministratore nell’esecuzione delle operazioni necessarie ad una corretta installazione
del sistema che dipenderanno anche dalla modalità di fruizione scelta (che può
anche cambiare rispetto a quella della prima volta).
Gestione files utente
Di default, l’utente potrà salvare i suoi files solamente all’interno di una certa
cartella della quale troverà l’icona sul desktop, all’inizio, poi in un “contenitore”
ed infine in un menù.
Oltre ad essa, troverà anche un’icona relativa all’accesso alle altre risorse di
computer e rete.
Scegliendo una delle due icone si aprirà il medesimo programma di gestione comunque mostrando nella finestra principale il contenuto della cartella
principale per i files dell’utente.
58
CAPITOLO 3. ANALISI E PROGETTAZIONE
Nello spostamento di files, ad esempio dalla cartella a supporto removibile,
l’operazione di default sarà la copiatura.
Anche le operazioni normalmente effettuate con l’uso del tasto destro del
mouse dovranno essere utilizzabili attraverso pulsanti inseriti all’interno dell’interfaccia del programma di gestione.
Uscita dal sistema
Utente o Amministratore: Sceglie l’icona relativa alla richiesta di uscita dal
sistema.
Sistema: Visualizza una finestra all’interno della quale si trovano quattro pulsanti: uno per richiedere l’arresto del sistema, uno per il riavvio, uno per
la disconnessione dell’utente ed uno per l’annullamento dell’operazione.
Mentre tale finestra è aperta, all’utilizzatore non è permesso fare altro che
scegliere uno dei pulsanti in essa contenuti.
Utente o Amministratore: Sceglie uno dei pulsanti.
Sistema: A seconda del pulsante scelto mette in atto le relative operazioni,
precedute dall’unmount del dispositivo di autenticazione, dalla comunicazione all’utente della possibilità di scollegarlo e dalla riproduzione di una
melodia breve tranne che nel caso in cui tale pulsante sia quello di annullamento: allora semplicemente chiuderà la finestra e renderà di nuovo
possibile l’interazione col sistema.
Alternative courses
• Nel caso in cui il pulsante venga scelto nella schermata di autenticazione,
allora verrà aperta una finestra che richieda la conferma della richiesta di
arresto e il sistema verrà arrestato.
• Se nel momento in cui viene scelto il pulsante di uscita dal sistema ci sono
programmi aperti, il sistema visualizzerà prima di tutto un suggerimento che richiede all’utilizzatore la chiusura di tali applicazioni, prima di
ripetere la richiesta di uscita.
Arresto del sistema
Utente o Amministratore: Sceglie l’opzione di arresto del sistema.
Sistema: Esegue le operazioni di arresto fino allo spegnimento del sistema.
Riavvio del sistema
Utente o Amministratore: Sceglie l’opzione di riavvio del sistema.
Sistema: Esegue le operazioni di riavvio.
Disconnessione utente
Utente o Amministratore: Sceglie l’opzione di disconnessione dell’utente.
Sistema: Esegue le operazioni di disconnessione e visualizza nuovamente la
schermata di autenticazione.
3.1. ANALISI: CASI D’USO E DESCRIZIONE DEL SISTEMA
3.1.2
59
Il meccanismo dell’improving
La descrizione del corso principale del caso d’uso relativo al meccanismo di
improving può essere schematizzata con il Sequence Diagram in figura 3.2.
Figura 3.2: Sequence Diagram che mostra l’interazione tra utente e sistema
durante un avanzamento di livello per un generico programma.
Esso mostra uno schema comunicativo semplice e lineare, applicato ogni qual
volta si giunga al momento designato per un avanzamento di livello.
Tale momento verrà meglio definito in una fase successiva grazie anche all’apporto di insegnanti competenti: inizialmente, però, l’avanzamento verrà suggerito dopo 15 utilizzi di un programma calcolati a partire dall’ultimo avanzamento.
Come anticipato, nel caso in cui l’avanzamento venga rifiutato, la proposta verrà
ripetuta ogni 5 ulteriori aperture fino ad ottenere l’accettazione.
I percorsi previsti sono diversi, dipendono dall’ambito e dalla modalità d’utilizzo dei vari applicativi e verranno nella maggior parte dei casi definiti in fasi
successive, dopo aver sottoposto il progetto ad insegnanti ed esperti vari. Le
informazioni di base già ora raccolte vengono schematizzate in figura 3.3.
Come è possibile notare nella figura, i percorsi interni ad ogni programma
incrementale non vengono dettagliati (a parte il caso della messaggistica istantanea o, in modo meno preciso, quello dell’ambiente desktop, unico caso in cui
viene anche introdotta una differenziazione nel criterio utilizzato per decidere un
avanzamento e nella modalità stessa applicata per un particolare avanzamento,
quello da ambiente a icone ad ambiente a “contenitori”). Questa scelta dipende
anche dal fatto che in questa fase non sono ancora stati individuati i programmi
specifici che verranno inseriti nel sistema e tali percorsi dipenderanno fortemente
dalla scelta particolare che si farà.
Il discorso dei livelli, in ogni caso, ha molti punti di contatto col mondo dei
videogiochi, non tanto quelli a piattaforma quanto quelli di ruolo, in cui il grado
di esperienza del personaggio spesso incide sugli strumenti messi a sua disposizione e sugli ambienti a lui accessibili. A tal proposito sono diversi i pattern di
progetto che potrebbero rivelarsi utili soprattutto per introdurre miglioramenti
sulla struttura di base fin’ora descritta. Ne è un esempio il pattern “Adaptive
difficulty level”1 , anche se descrive un adattamento inverso rispetto a quello
previsto nel caso presente, partendo da una difficoltà elevata e consigliando il
passaggio ad un grado minore di difficoltà dopo un certo numero di volte in cui
il personaggio muore nello stesso punto oppure automaticamente adattando la
difficoltà in base alle prestazioni dell’utente. Un ulteriore esempio è il pattern
“Path to more challenges”2 , che cerca una soluzione al problema della noia e
1 cfr.
2 cfr.
riferimento bibliografico [8]
riferimento bibliografico [9]
60
CAPITOLO 3. ANALISI E PROGETTAZIONE
Figura 3.3: Diagramma che mostra i percorsi di improving per le tipologie degli
applicativi che faranno parte del sistema, realizzato utilizzando (in modo libero)
la sintassi di un Activity Diagram.
3.2. PROGETTAZIONE: LE LINEE GUIDA PER LA REALIZZAZIONE 61
dalla diminuzione di interesse e attenzione dell’utente che si abitui ad usare un
gioco che non si adatti al suo crescente livello di esperienza a riguardo, il quale
indica tra le possibilità quella di aumentare difficoltà e complessità delle attività
da affrontare per raggiungere lo scopo.
Nella pianificazione di un sistema che accompagni l’utente nell’accrescimento della sua conoscenza e consapevolezza, inoltre, un processo di improving
deve essere necessariamente affiancato ad un sistema di feedback (in questo
caso rappresentato da messaggi d’errore e, in parte, suggerimenti) ed uno di
spiegazione-tutorial (in questo caso rappresentato da suggerimenti, didascalie e
tutorials). Anche per questi due ulteriori aspetti sono ovviamente descritti vari
patterns, come ad esempio “Feedback from the environment”3 e “A responsive
system”4 .
3.2
Progettazione: le linee guida per la realizzazione
La prima scelta progettuale che è stata operata è stata quella della customizzazione. In tal senso è quindi anzitutto necessario individuare gli elementi sui
quali bisognerà operare al fine di ottenere il sistema finale desiderato. Tali elementi vengono evidenziati nello schema in figura 3.4 insieme a tutto ciò che sarà
necessario realizzare come infrastruttura di supporto.
Figura 3.4: Diagramma, che sfrutta la sintassi di un Component Diagram, attraverso il quale si cerca di evidenziare gli aspetti del sistema e dell’infrastruttura
ad esso correlata sui quali si dovrà andare ad agire durante la fase di sviluppo
da pianificare.
Si descriveranno ora nel dettaglio le azioni da attuare nelle fasi successive
del lavoro.
3 cfr.
4 cfr.
riferimento bibliografico [9]
riferimento bibliografico [9]
62
CAPITOLO 3. ANALISI E PROGETTAZIONE
3.2.1
Il punto di partenza
La customizzazione verrà operata a partire da una distribuzione della famiglia
Debian per i motivi di cui anche al capitolo 2. In particolare ci si è orientati
verso Ubuntu5 nella versione 8.04, l’ultima LTS (Long Term Support), la cui
versione desktop verrà supportata fino all’aprile del 2011.
La scelta di Ubuntu deriva dall’osservazione delle caratteristiche indicate
nella sezione 2.8.1 e dal fatto che oltretutto gli esperti della Società che si occuperà del progetto hanno già avuto a che fare con questa distribuzione. Una
caratteristica scarsamente evidenziata nella descrizione di cui sopra ma che ha
comunque influito nella scelta è l’utilizzo di Gnome come desktop environment:
esso, infatti, presenta un’interfaccia molto “pulita”, essenziale e semplice, sulla quale sarà possibile lavorare come disegnando su di un foglio quadrettato6 ,
concedendo grande libertà al grafico. Sarà poi utile comunque osservare anche
altre interfacce che possano fornire spunti per la risoluzione di alcune questioni:
sarà ad esempio studiata quella di una distribuzione “mobile” (come ad esempio
l’edizione MID di Ubuntu stessa, che è anche stata realizzata con l’intenzione
di renderla altamente customizzabile) per il suo ambiente desktop tipicamente
a icone e/o a “contenitori”.
Ubuntu, inoltre, prevede diverse edizioni studiate per hardware particolari
che potrebbero rivelarsi interessanti: Ubuntu Netbook Remix ne è un buon
esempio.
Si è infine scelto di non basarsi su di una distribuzione “educational” per due
ragioni: la prima è che non si intende creare un sistema che rientri strettamente
in quei canoni, proprio perchè non ci si pone come obiettivo l’apprendimento di
nozioni; la seconda, invece, è che si vuole evitare condizionamenti nelle scelte,
che diventererbbero inevitabili se si partisse da una distribuzione che già integri certe applicazioni e che porterebbero a non ricercare l’alternativa migliore
ma solo quella più “a portata di mano”. Ciò non toglie che si possano invece utilizzare più distribuzioni del ramo “educational” per trarne informazioni e
ispirazione, con l’idea, come detto nel capitolo 1, di prendere il meglio dell’esistente. A tal proposito si riveleranno sicuramente interessati distribuzioni come
Qimo, Edubuntu (anche se non più attiva), EduKnoppix.
Al fine di ottenere il sistema desiderato, si rivelerà molto utile uno strumento che permette di realizzare un live CD/DVD a partire dal proprio sistema
personalizzato. Tre esempi supportati dalla comunità di sviluppatori di Ubuntu
sono: Ubuntu Customization Kit7 (preferibile), Remastersys8 e Reconstructor9
(usati nell’ordine, in caso si riscontrino problemi).
5 Documentazione
in Italiano all’indirizzo http://wiki.ubuntu-it.org/
un foglio bianco, che può causare la famosa “sindrome del foglio bianco”, ma uno
con giusto qualche tratto guida.
7 Pagina
contenente
la
guida
all’uso
in
Italiano:
http://wiki.ubuntuit.org/AmministrazioneSistema/BackupDelSistema/UbuntuCustomizationKit. Sito Internet
del progetto: http://uck.sourceforge.net/
8 Pagina
contenente
la
guida
all’uso
in
Italiano:
http://wiki.ubuntuit.org/AmministrazioneSistema/BackupDelSistema/Remastersys. Sito Internet del progetto:
http://www.geekconnection.org/remastersys/remastersystool.html
9 Pagina
contenente
la
guida
all’uso
in
Italiano:
http://wiki.ubuntuit.org/AmministrazioneSistema/BackupDelSistema/Reconstructor.
Sito Internet del
progetto: http://reconstructor.aperantis.com/
6 Non
3.2. PROGETTAZIONE: LE LINEE GUIDA PER LA REALIZZAZIONE 63
3.2.2
Stile dell’ambiente
Sarà necessario valutare le proposte di un grafico che studi il rifacimento degli
elementi caratteristici dell’aspetto dell’ambiente. In particolare serviranno:
• un logo per la distribuzione, che vada anche a sostituire quelli presenti nel
sistema utilizzato per la customizzazione ed in particolare quello in alto a
sinistra sulla barra dei menù;
• uno schema di colori;
• alcuni sfondi, dei quali almeno uno pensato in particolare per bambino ed
uno per bambina;
• un set di icone, solitamente archiviato in Ubuntu nella cartella /usr/share/icons,
comprendente tutte le icone previste per un sistema completo, comprese
quelle inizialmente non utilizzate (come ad esempio quella per i desktop multipli, quella per la pulitura del desktop o quelle di applicazioni
non incluse ma messe a disposizione nel repository) perchè possano essere
a disposizione nel caso l’amministratore decida di introdurre le relative
finzionalità10 ;
• un tema per il cursore, che in Ubuntu si troverà nella stessa posizione in cui
vengono archiviate le icone, ma presentato attraverso files particolari che
non permettono di visualizzare le relative immagini in modo semplice11 ;
• almeno uno screensaver;
• schermate di avvio e di arresto del sistema, solitamente contenenti un logo
e una barra d’avanzamento oltre ad uno spazio per eventuali messaggi
provenienti dal sistema stesso;
• schermata di autenticazione;
• uno stile per menù e barra dei menù, comprendenti simboli per le voci
“tematiche” che verranno utilizzati anche per le icone dei “contenitori”;
• una proposta per la barra contenente le icone delle applicazioni aperte;
• almeno uno stile per le finestre (in particolare per la loro cornice);
• un font chiaro che venga utilizzato di default dal sistema (e che solitamente
riprende in qualche modo lo stile del logo);
• una proposta per l’aspetto di suggerimenti, suggerimenti di improving,
errori, warnings e altri messaggi del sistema, che avranno tutti uno stile
simile;
10 Poichè il sistema Ubuntu di default in realtà attinge a più set, se ne è cercato uno il
più completo possibile che potesse essere utilizzato come traccia, per poter sapere cosa sia
necessario che venga realizzato e si è individuato il tema “black-white 2” realizzato per Gnome e reperibile all’indirizzo Internet: http://www.gnome-look.org/content/show.php/blackwhite?content=70299
11 Come
tema
“traccia”
potrà
essere
utilizzato
“Obsidian
Cursors”,
completo
e
presentato
in
modo
chiaro,
reperibile
all’indirizzo
Internet
http://www.gnome-look.org/content/show.php/Obsidian+Cursors?content=73135
64
CAPITOLO 3. ANALISI E PROGETTAZIONE
• una proposta per l’aspetto delle didascalie.
Oltre a questi elementi particolari sarà inoltre necessario un “concetto grafico” complessivo nel quale vengano indicate le posizioni delle barre, la disposizione delle icone nell’ambiente a icone, quella dei “contenitori” nel relativo
ambiente, le dimensioni precise di simboli e testi, ecc..
Sarà inoltre necessaria la collaborazione di un compositore che si occupi dei
suoni di sistema. Anche in questo caso, come per il tema delle icone, saranno realizzati anche quelli solitamente presenti ma non utilizzati di default nel sistema
perché l’amministratore li abbia comunque a sua disposizione. In una distribuzione Ubuntu i suoni di sistema si trovano nella cartella /usr/share/sounds
(insieme a quelli di alcune applicazioni) e, considerando che alcuni sono presenti
in più copie con nomi diversi per i relativi files, si tratta di: segnale d’errore;
suono cosiddetto “generico” utilizzato ad esempio a volte per il singolo click di
selezione; quello per le “informazioni” (cioè quei messaggi automatici che servono a comunicare il verificarsi di un certo evento, come ad esempio, in certi casi,
la disponibilità di aggiornamenti); uno detto di “login” che introduce l’accesso al
sistema dopo un’autenticazione avvenuta con successo (che verrà introdotto di
default); quello detto di “logout” per l’uscita dal sistema (anch’esso utilizzato di
default); uno utilizzato (in questo caso di default) per sottolineare la visualizzazione della schermata di autenticazione a volte sfruttato anche per sottolineare
la visualizzazione da parte del sistema di domande rivolte all’utilizzatore; infine
uno per sottolineare i messaggi di warning.
3.2.3
Le applicazioni
Sulla base del diagramma in figura 3.3, viene ora presentato l’elenco delle applicazioni utente scelte, completo, in alcuni casi, di alternative da proporre a
sviluppatori ed insegnanti se, ognuno secondo il suo punto di vista, si trovassero
ad indicare problemi o ad esprimere dubbi.
Per quanto riguarda, invece, le applicazioni per l’amministrazione, come già
detto in precedenza, verranno mantenute quelle previste dalla distribuzione utilizzata (e si chiederà agli sviluppatori un’opinione riguardo alla possibilità di
raggrupparle diversamente, per costruire dei menù tematici che ne migliorino
l’organizzazione): per la gestione dei pacchetti, per l’aggiunta/rimozione di interi programmi, tutti i programmi per la personalizzazione e la gestione del
sistema, il terminale, l’editor di testo classico, il gestore di file e dati (che comprende la gestione dei backup locali). Verranno poi aggiunti altri programmi
come: un programma per richiedere la versione completa dei programmi incrementali (realizzato modificando quello per l’aggiunta/rimozione di applicazioni
ed eventualmente integrandolo in esso), un programma per la gestione delle
chiavi per l’autenticazione di utenti ed amministratori (cfr. seguito), un filtro
per il controllo della navigazione su Internet (come ad esempio Davide.it12 ), un
filtro anti-spam (si tratterà di un plug-in per il programma di posta elettronica
e quindi la scelta dipenderà da tale programma), un filtro sulla comunicazione
in tempo reale (da valutare in base al programma scelto e alla configurazione
della rete), senza considerare quelli per la gestione della rete che dovranno essere
scelti in base ad ogni situazione specifica. Probabilmente sarebbe utile indivi12 Sito
Internet del progetto: http://www.davide.it/
3.2. PROGETTAZIONE: LE LINEE GUIDA PER LA REALIZZAZIONE 65
duare un sistema completo tipo “controllo genitori” per agevolare la gestione,
ma per il momento non ce ne sono di adatti disponibili.
Complete presenti da subito:
Giochi di coordinazione mano-occhio e di “relax”: sono compresi nelle suite indicate al punto seguente.
Giochi semplici13 d’apprendimento: la suite GCompris14 in Italiano; in alternativa la suite Childsplay15 anch’essa disponibile anche in Italiano.
Riproduttore multimediale di base: VLC media player16 eventualmente rivedendone l’interfaccia.
Controllo volume: quello già presente nella distribuzione di base.
Editor di testo “arricchito”: il migliore probabilmente sarà Tux Writer17 , solo
che per ora è ancora in fase di progettazione; inizialmente potrebbe essere
utilizzato ABK Orkut Editor18 , una volta tradotto.
Programma di disegno semplice: TuxPaint19 .
Sistema autore semplice: Squeak Etoys20 ; in alternativa esiste Little Wizard21 ,
più legato al linguaggio Logo.
Livello iniziale per passare alle mappe concettuali : potrebbe essere legato all’uso di giochi semplici di logica compresi nelle suite di cui ai primi punti.
Visualizzazione data e ora: come previsto nella distribuzione di base.
Cestino: quello utilizzato nella distribuzione di base.
Uscita dal sistema: sarà necessario modificare il software in modo da fornire le
sole possibilità “Arresta”, “Riavvia”, “Termina sessione” (magari con un
testo diverso) e “Annulla”.
Complete aggiunte in seguito:
Calcolatrice: quella compresa nel sistema di base va bene, ma disabilitando la
possibilità di passare alla modalità scientifica.
Giochi più complessi : cominciando da giochi multiattività, puzzle, a piattaforme o solamente più “regolamentati” (ad esempio un gioco di scacchi come
DreamChess22 ), si può arrivare a giochi di strategia e/o simulazione (come FreeCol23 , di strategia ambientato durante la colonizzazione degli Stati
14 Sito
15 Sito
16 Sito
17 Sito
18 Sito
19 Sito
20 Sito
21 Sito
22 Sito
23 Sito
Intenet del progetto in Italiano: http://gcompris.net/-itInternet del progetto: http://www.schoolsplay.org/
Internet del progetto: http://www.videolan.org/vlc/
Internet del progetto: http://sourceforge.net/projects/tuxwriter/
Internet del progetto: http://abkorkuteditor.sourceforge.net/
Internet del progetto, già citato: http://www.tuxpaint.org/
Internet del progetto, già citato: http://www.squeakland.org/
Internet del progetto: http://littlewizard.sourceforge.net/
Internet del progetto: http://www.dreamchess.org/home.html
Internet del progetto: http://www.freecol.org/
66
CAPITOLO 3. ANALISI E PROGETTAZIONE
Uniti, o OpenCity24 , simulazione di creazione e amministrazione di una
città).
Programma “arricchito” per il disegno: l’ideale sarebbe qualcosa di simile ad
art.com artPad, che però è un tool utilizzabile solo on-line25 ; una prima
alternativa potrebbe essere Drawing for Children26 o quella di passare
semplicemente ad un programma con interfaccia più tradizionale e più
ricco nelle possibilità come gpaint27 .
Sistema autore più completo: Squeak28 .
Programma per realizzare mappe mentali : Semantik29 ; in alternativa Labyrinth30 .
Programma per realizzare mappe concettuali : FreeMind31 , che permette la creazione di mappe sia mentali che concettuali; le alternative possibili sono
Vym32 , Visual Understanding Environment33 e XMind34 .
Incrementali presenti da subito:
Personalizzazione ambiente desktop: Ubuntu Tweak35 potrebbe rivelarsi perfetto e facilmente “suddivisibile” in livelli.
Presentazioni : Impress appartenente alla suite OpenOffice.org36 (molto diffusa
e comunque simile a molte altre suite d’ufficio molto usate); in alternativa
(soprattutto nel caso in cui si rivellasse eccessivamente complicata la manipolazione del codice sorgente) si potrebbe valutare l’utilizzo della suite
KOffice37 di KDE (che però richiederebbe l’installazione anche di un gran
numero di librerie e software di vario genere a causa del suo legame con il
desktop environment KDE, appunto).
Messaggistica istantanea: Pidgin38 , che permette di scegliere tra diversi protocolli e canali ed è abbastanza semplice.
Browser : Firefox39 , molto diffuso e simile ad altri sistemi analoghi.
Gestore di files e risorse con funzione di ricerca integrata: il programma compreso nella distribuzione di base.
24 Sito
Internet del progetto: http://opencity.info/
Internet: http://artpad.art.com/artpad/painter/
26 Sito Internet del progetto: http://drawing.gamemaker.nl/index.html
27 Sito Internet del progetto: http://gpaint.sourceforge.net/
28 Sito Internet del progetto, già citato: http://www.squeak.org/
29 Sito Internet del progetto: http://freehackers.org/∼tnagy/semantik.html
30 Sito Internet del progetto, già citato: http://www.gnome.org/∼dscorgie/labyrinth.html
31 Sito Internet del progetto, già citato: http://freemind.sourceforge.net/wiki/index.php/Main Page
32 Sito Internet del progetto: http://www.insilmaril.de/vym/
33 Sito Internet del progetto: http://vue.tufts.edu/
34 Sito Internet del progetto: http://www.xmind.net/
35 Sito Internet del progetto: http://ubuntu-tweak.com/
36 Sito Internet del progetto: http://it.openoffice.org/
37 Sito Internet del progetto: http://www.koffice.org/
38 Sito Internet del progetto: http://www.pidgin.im/
39 Sito Internet del progetto: http://www.mozilla-europe.org/it/firefox/
25 Sito
3.2. PROGETTAZIONE: LE LINEE GUIDA PER LA REALIZZAZIONE 67
Editor audio: le alternative interessanti sono Aldrin40 , semplice ma comunque
classico, Buzztard41 , che presenta una modalità di gestione delle tracce che
ricorda le mappe mentali alle quali potrebbe venire correlato nel percorso
di improving, o Bristol42 , un’emulazione di sintetizzatore per il quale sono
già previste moltissime interfacce tra cui scegliere.
Incrementali aggiunte in seguito:
Fogli di calcolo: sarà utilizzato l’applicativo compreso nella suite d’ufficio scelta
in precedenza.
Videoscrittura: sarà utilizzato l’applicativo compreso nella suite d’ufficio scelta
in precedenza.
Photoeditor : Gimp43 è sicuramente molto completo e molto diffuso, ma forse
troppo complicato da modificare anche a causa dell’uso di più finestre; in
alternativa si può valutare Sumo Paint44 , via di mezzo tra un programma
di disegno ed un editor fotografico.
Videoeditor : Avidemux45 può essere abbastanza semplice; Gimp presenta la
possibilità di integrare un modulo per gestire animazioni; alternative possono essere Kino46 e Kdenlive47 .
Posta elettronica: Thunderbird48 , oltre ad essere parte del progetto Mozilla come Firefox, è anche molto utilizzato e simile ad altri programmi molto
diffusi; tra le alternative non includerei assolutamente Evolution, presente
di default nella distribuzione Ubuntu, ma piuttosto KMail49 .
I programmi incrementali indicati saranno modificati, almeno inizialmente, mantenendo il “model” e sostituendo l’interfaccia con una serie di “viewcontrollers” ognuno adatto ad uno specifico livello di improving. Vista l’importanza di tale concetto, viene presentato un esempio di pianificazione per un’applicazione complessa come Impress, programma per la creazione di presentazioni
appartenente alla suite OpenOffice.org, in Appendice C.
Riguardo ai programmi da modificare, inoltre, sono state precedentemente
date indicazioni riguardanti in particolare le applicazioni appartenenti alla suite
da ufficio e quella per la messaggistica istantanea: mentre per le prime è stato
suggerito di pianificare livelli “analoghi” e di eseguire gli avanzamenti in modo
parallelo, per la seconda è stato indicato un possibile percorso basato sulle
funzionalità da introdurre gradualmente (cfr. nota in figura 3.3).
Per tutte le altre applicazioni incrementali, invece, la progettazione dei livelli
seguirà comunque la traccia vista per il programma d’esempio ma dovrà essere
40 Sito
41 Sito
42 Sito
43 Sito
44 Sito
45 Sito
46 Sito
47 Sito
48 Sito
49 Sito
Internet
Internet
Internet
Internet
Internet
Internet
Internet
Internet
Internet
Internet
del
del
del
del
del
del
del
del
del
del
progetto:
progetto:
progetto:
progetto:
progetto:
progetto:
progetto:
progetto:
progetto:
progetto:
http://www.aldrin.eu/
http://www.buzztard.org/
http://bristol.sourceforge.net/
http://www.gimp.org/
http://www.sumopaint.com/
http://fixounet.free.fr/avidemux/index.html
http://www.kinodv.org/
http://kdenlive.org/
http://www.mozillaitalia.it/thunderbird/
http://kontact.kde.org/kmail/
68
CAPITOLO 3. ANALISI E PROGETTAZIONE
realizzata in stretta collaborazione con il committente e con gli sviluppatori una
volta definiti i programmi da utilizzare come “base”.
In molti casi, infine, in generale, potrà rivelarsi necessaria una traduzione
dall’Inglese all’Italiano.
Messe a disposizione nel repository ma non “incluse”50
Come indicato chiaramente anche nei requisiti, all’interno del repository dovrà trovarsi fin da subito un insieme di software dedicato all’accessibilità del
sistema da parte di persone con disabilità. Sicuramente fondamentali saranno: CellWriter51 , Dasher52 , Orca53 , Gnome Onscreen Keyboard54 , gXNeur55 ,
KMouseTool56 , KMouth57 (e relativi pacchetti da cui dipende)
Verranno inoltre considerate applicazioni soprattutto appartenenti all’area
dell’apprendimento e sarà quindi necessario consultare gli insegnanti. Lo stesso
discorso vale per programmi dedicati in modo specifico agli insegnanti stessi
anziché agli studenti.
3.2.4
I messaggi
Oltre all’adeguamento dei testi di messaggi d’errore e warning, sarà necessaria
l’introduzione del sistema dei suggerimenti e di quello delle didascalie, relativi
sia all’ambiente desktop che alle applicazioni. Dovranno poi essere realizzati i
suggerimenti di improving ed i messaggi legati all’evidenziazione delle novità a
seguito di un avanzamento di livello.
Sarà, quindi, necessario lo sviluppo di software adatto, che riesca ad integrarsi nel sistema e ad utilizzare gli elementi grafici appositamente preparati.
3.2.5
La gestione dei pacchetti
Verrà utilizzato il formato .deb e la gestione verrà fatta utilizzando gli strumenti messi a disposizione dalla distribuzione Ubuntu (in particolare apt). Sarà
però introdotto un meccanismo di controllo che si occuperà, ogni volta che un
amministratore cercherà di aggiungere un repository alla lista (il cui path è
/etc/apt/sourses.list) o di installare un pacchetto reperito esternamente rispetto al sistema di gestione, di visualizzare un messaggio che sottolinei il fatto che
una tale operazione può interferire con il percorso di improving dell’utente e
che la necessità di un nuovo pacchetto non incluso nel repository principale è
preferibile venga comunicata ai curatori; una volta presa visione del messaggio
l’amministratore potrà confermare o annullare l’operazione richiesta.
Per tutelarsi comunque da rischi di “sovrapposizioni”, sarà utile dare nomi ai pacchetti, specie quelli dei programmi incrementali, che si distinguano
chiaramente rispetto a quelli originali.
50 cfr.
Glossario in appendice
il riconoscimento della scrittura manuale. Sito Internet: http://risujin.org/cellwriter/
52 Per la scrittura senza tastiera. Sito Internet: http://www.inference.phy.cam.ac.uk/dasher/
53 Lettore ed ingranditore dello schermo. Sito Internet: http://live.gnome.org/Orca
54 Tastiera a schermo. Sito Internet: http://www.gok.ca/
55 Convertitore di layout di tastiera automatico. Sito Internet (visto che quello ufficiale è
solo in Russo): http://allmyapps.com/app/gxneur
56 Cliccher automatico. Sito Internet: http://accessibility.kde.org/aids/kmousetool.php
57 Lettore vocale. Sito Internet: http://www.schmi-dt.de/kmouth/index.en.html
51 Per
3.2. PROGETTAZIONE: LE LINEE GUIDA PER LA REALIZZAZIONE 69
L’avanzamento di livello di improving per un programma incrementale potrà essere effettuato in uno dei due seguenti modi: o come se si fosse richiesto
l’aggiornamento del programma alla versione successiva alla presente (e non alla
versione più recente) ed in questo caso la componente del repository che conterrà questi pacchetti non dovrà essere presa in considerazione durante la ricerca
automatica degli aggiornamenti per il sistema; oppure (forse più semplicemente) rimuovendo il programma nella versione presente ed installando la nuova
versione come se si trattasse di un nuovo programma che andrà a sostituire in
tutto (compresa la posizione nei menù e l’assunzione del nome) il programma
rimosso.
Per quanto riguarda l’aggiunta di programmi interi si manterrà inalterato il
sistema presente e il controllo degli aggiornamenti verrà effettuato alla prima
connessione di ogni giorno, ma non potrà avvenire più di una volta al giorno in
modo automatico (mentre un amministratore potrà eventualmente richiederla
esplicitamente tramite apt).
Nel repository58 (che sarà preferibilmente http piuttosto che ftp) i pacchetti saranno distribuiti secondo l’albero mostrato in figura 3.5, cioè secondo i
seguenti criteri:
Figura 3.5: L’albero del repository che dovrà essere realizzato.
• nella componente main si troveranno tutti i pacchetti, relativi a soli programmi completi, selezionati dai curatori appositamente per la distribuzione (sia quelli prelevati semplicemente da altri repository che quelli derivanti dalla modifica di programmi) ed in particolare ci saranno gli aggiornamenti dei pacchetti inclusi fin da subito e tutti quelli necessari alla
risoluzione delle dipendenze;
• nella componente incremental si troveranno tutti i pacchetti relativi alla
gestione dei programmi incrementali;
• in quella unsupported si troveranno tutti i pacchetti richiesti da qualche amministratore o forniti da qualche sviluppatore che vengono messi a
disposizione ma non vengono forniti garanzie e supporto a riguardo;
58 Per informazioni e guide alla realizzazione cfr. riferimenti bibliografici [5], [15], [7], [23] e
[24].
70
CAPITOLO 3. ANALISI E PROGETTAZIONE
• all’interno di ogni componente i pacchetti saranno suddivisi ulteriormente
a seconda dell’edizione (cfr. paragrafo successivo) e saranno separati i
binari dai sorgente.
Non sarà prevista la distribuzione di versioni diverse da quella stabile se non
su richiesta o per ragioni di test, nel qual caso non verranno utilizzati i canali
del repository di cui sopra.
3.2.6
Le modalità di fruizione previste
Le modalità di fruizione previste saranno sicuramente da valutare anche in base alle realtà scolastiche nelle quali si andrà ad operare. Inizialmente, però, si
renderanno disponibili le seguenti modalità: installazione locale con gestione
di autenticazione, permessi e configurazioni di rete (in particolare ad esempio
per ogni utente verrà considerato il livello di improving raggiunto per fornirgli i
permessi d’accesso corretti anche relativamente all’utilizzo di certi applicativi e,
per quelli incrementali, di certe versioni di applicativi); variante della precedente è la fornitura di computer pre-installati che fungano da clients (desktop-pc o
netbook, ad esempio) e configurazione adeguata della rete (eventualmente agevolata dalla fornitura anche dei servers); installazione di virtual appliances di
tipo aperto59 accessibili attraverso la rete locale previa autenticazione dell’utilizzatore ed in tal caso la rete potrà anche essere costituita da clients poco
potenti (da valutare anche l’ipotesi che siano macchine provenienti dal campo
del trashware) a fronte di servers con buone prestazioni60 .
Un’osservazione importante nasce da quanto appena detto: mentre l’utente
potrà accedere solamente al proprio sistema, l’amministratore dovrà avere la
possibilità di scegliere a quale sistema desidera lavorare o se desidera lavorare su
tutti. Possibile soluzione a questo problema sarà la realizzazione di un sistema
anche per ogni amministratore che comprenda strumenti adatti ad ottenere
tali risultati, partendo dal presupposto che spesso gl amministratori non sono
sistemisti o sviluppatori, ma tecnici anch’essi con esperienza limitata.
Tornando alle modalità di fruizione previste, quelle indicate portano all’idea
della realizzazione di diverse “edizioni” che pur presentandosi indistinguibili dal
punto di vista dell’utente presentano differenze soprattutto legate a moduli e
compilazione. Saranno necessarie61 :
• un’edizione per architetture “moderne” 32 e 64 bit;
• un’edizione “alleggerita” (cioè per la quale verrà anche effettuata una selezione dei moduli del kernel necessari) per macchine vecchie, che hanno
solitamente poca RAM, e poco spazio su disco e che quindi hanno bisogno
di ospitare solo l’essenziale;
• una ottimizzata per ogni tipologia di macchina fornita col sistema preinstallato;
59 cfr.
paragrafo 2.6.1 e riferimenti bibliografici [3], [31] e [32]
tratta di una soluzione ibrida, che unisce la tecnologia delle Virtual Appliances con
le caratteristiche di una rete di thin-clients e l’accesso a desktop remoto. Pur sembrando
apparentemente ideale, è comunque necessario pensare anche a soluzioni più “tradizionali”
che più facilmente troveranno l’apprezzamento degli amministratori interni alla scuola.
61 Vengono inizialmente esclusi dispositivi di gioco, dispositivi “mobile” e lavagne interattive multimediali perchè si preferisce prevedere che prima venga eseguita una ricerca più
approfondita a rigurado di queste tecnologie.
60 Si
3.2. PROGETTAZIONE: LE LINEE GUIDA PER LA REALIZZAZIONE 71
• una per netbook;
• una per le virtual appliances.
Sarà infine necessario prevedere la modifica del sistema di autenticazione, inizialmente basato su username e password, per adattarlo all’utilizzo delle chiavi
hardware.
3.2.7
Cosa ci sarà nella “confezione”
Insieme alla distribuzione (consegnata nella modalità scelta in base alle possibilità previste), dovranno essere forniti anche altri elementi:
• i dispositivi per l’autenticazione;
• documenti esplicativi riguardo alle licenze e alle garanzie;
• i contatti dei curatori e dei responsabili del supporto alle scuole;
• una guida, pensata per gli insegnanti, alle risorse consultabili ed utilizzabili on-line che potranno aiutare nell’accrescimento dell’offerta didatticoformativa.
3.2.8
Le fasi successive
Nell’immediato futuro questo progetto prevede alcune fasi consecutive (e in
parte anche sovrapponibili tra loro) che portino alla realizzazione del sistema:
• anzitutto un confronto con il grafico, gli sviluppatori e i sistemisti per la
definizione degli aspetti lasciati in sospeso proprio per poter coinvolgere
tali esperti nella decisione;
• poi un’ulteriore convalida da parte del committente del progetto dettagliato;
• successivamente l’avvio della fase di sviluppo portata avanti, ognuno nel
proprio campo, dagli esperti di cui sopra, dal musicista e da una o più persone che si occupino della documentazione e del reperimento di materiali
per la guida per gli insegnanti e supervisionata dal progettista;
• al raggiungimento di una versione beta (individuabile nel momento in cui
si avrà una live funzionante), una fase di test durante la quale si chieda il
coinvolgimento di alcuni insegnanti che forniscano un resoconto delle loro
impressioni;
• il recepimento dei suggerimenti degli insegnanti mediati dal giudizio del
committente;
• infine il rilascio della prima versione stabile.
Per chiarire tempi e risorse che saranno necessari dal momento in cui il lavoro non verrà più svolto dal solo analista-progettista con la collaborazione del
committente, viene utilizzato il diagramma in figura 3.6 che mostra le risorse
impiegate e le attività da svolgere con un’indicazione di massima delle proporzioni tra le durate e delle interdipendenze. Si nota ad esempio che il lavoro
72
CAPITOLO 3. ANALISI E PROGETTAZIONE
iniziale del grafico condizionerà e sarà condizionato da quello degli sviluppatori,
mentre il musicista dovrà attendere che sia stato scelto uno stile per l’ambiente
per poter rimanere aderente ad esso nella realizzazione dei suoni.
Figura 3.6: Diagramma di Gantt che mostra le risorse a sinistra e le attività
indicate su ogni barra.
Tutto il lavoro continuerà comunque ad essere supervisionato e gestito dall’analistaprogettista che continuerà ovviamente a mantenere i contatti con il committente.
Capitolo 4
Conclusioni
Ogni progetto porta con sè risultati e possibili ulteriori sviluppi. Si cercherà ora
di descrivere quelli derivanti da questo.
4.1
Risultati ottenuti
Il progetto ha ovviamente contribuito ad aumentare notevolmente le conoscenze
e competenze del progettista a riguardo del mondo Linux e del software per la
didattica e l’educazione, ma al di là del vantaggio personale esso racchiude in
sè un valore intrinseco dovuto a diversi fattori risultanti dal lavoro svolto:
• anzitutto il documento di progetto stesso;
• la collaborazione tra rappresentanti del campo dell’Informatica e di quello della Pedagogia, campi spesso poco inclini al dialogo comune ma cosı̀
importanti per il raggiungimento di una svolta positiva della società contemporanea;
• l’attenzione posta in particolar modo sui bambini visti non come target commerciale, ma come perno fondamentale per il miglioramento del
Mondo, se ben educati e forniti di strumenti adeguati;
• lo sviluppo dell’idea di creare un sistema che riesca a non impaurire gli
insegnanti perchè non rinuncino all’utilizzo di buoni strumenti solo per
un’idea di inadeguatezza;
• il raggiungimento dell’obiettivo del basso costo senza rinunciare all’introduzione di tecnologie e tecniche anche di nuova generazione che in questo
modo potrebbero arrivare finalmente anche nelle scuole;
• l’organizzazione unitaria di materiale riguardante lo stato dell’arte delle
distribuzioni Linux, spesso frammentario e confuso.
4.2
Possibili sviluppi
Dal momento del rilascio della prima versione stabile in poi, sarà interessante
affiancare al lavoro di mantenimento della distribuzione realizzata un lavoro di
ricerca che si muova in diverse direzioni:
73
74
CAPITOLO 4. CONCLUSIONI
• la realizzazione di uno spazio su Internet per la raccolta di esperienze e
materiali didattici legati all’utilizzo del sistema in esame;
• la collaborazione con gruppi di ricerca che si occupino di sistemi affini dal
punto di vista tecnico o da quello degli obiettivi, come ad esempio quello
dell’organizzazione Sugar Labs 1 ;
• la creazione di una community di utenti che possano utilizzare canali protetti per comunicare tra loro, ad esempio tra classi di scuole diverse che
utilizzano lo stesso sistema;
• lo studio di un sistema pensato per l’uso comunitario in classe, soprattutto
sfruttando le lavagne interattive multimediali;
• la progettazione e realizzazione di una versione della distribuzione pensata
per l’utilizzo, da parte dei bambini, a casa;
• l’individuazione di criteri per l’avanzamento nei livelli di improving maggiormente legati al reale apprendimento (non è detto che se un utente usa
un’applicazione più volte impari anche più funzionalità in essa incluse);
• la modifica del sistema al fine di renderlo adatto anche alla fruizione
attraverso dispositivi di gioco e dispositivi “mobile”;
• la progettazione e realizzazione di distribuzioni analoghe che abbiano come target non più gli studenti della scuola primaria, ma i ragazzi della scuola secondaria, quelli delle superiori (soprattutto istituti tecnicoprofessionali), adulti lavoratori col “blocco psicologico”, anziani (una distribuzione per ogni target, ma tutte con forti analogie tra loro);
• lo sviluppo di un formato nuovo per i pacchetti, che faciliti le operazioni di
avanzamento di livello di improving e che non permetta interferenze con
pacchetti provenienti da repository diversi da quello centrale, e parallelamente lo sviluppo di un programma per la conversione da tale formato a
.deb e viceversa, per non perdere la ricchezza dei repository della famiglia
Debian;
• lo studio di fattibilità per la realizzazione di un Web desktop che persegua
gli stessi obiettivi della distribuzione e l’eventuale successiva progettazione
e realizzazione.
1 Si
tratta di un’organizzazione non-profit formata da voltari che si pongono l’obiettivo di
supportare la comunità di utilizzatori e sviluppatori di Sugar (sistema inizialmente realizzato
per l’operazione “One Laptop Per Child” ed ora indipendente) ed organizzare gruppi locali
autonomi che si occupino di tradurre il sistema nella lingua locale ed adeguarlo ai curricula
di studio specifici. Sito Internet: http://www.sugarlabs.org/
Appendice A
Glossario
Amministratore Si tratta di un utente con capacità tecniche specifiche che gli
permettano di effettuare la manutenzione almeno ordinaria del sistema.
Applicativo completo È un programma utente che viene inserito nel sistema
per interno, cioè senza operarvi modifiche sostanziali.
Applicativo incrementale È un programma utente che viene inserito all’interno del sistema inizialmente in una forma semplificata e che viene successivamente arricchito gradualmente fino ad ottenerne la forma completa.
Autoapprendimento Concetto pedagogico che sta alla base delle idee innovative legate alla distribuzione in esame e che si riferisce alla capacità di ogni
essere umano di apprendere in modo autonomo attraverso l’esperienza e
la successiva rielaborazione di essa. Il concetto di autoapprendimento si
pone alla base delle teorie costruttivista e costruzionista, anche pensando
ad una profonda influenza del contesto sociale e dell’ambiente di riferimento, infatti, il soggetto rimane comunque al centro del proprio processo
formativo e deve farsene artefice attivo e consapevole sin dai primi livelli
scolastici.
Contenitore Utilizzato nel contesto di una descrizione dell’ambiente desktop,
questo termine si riferisce ad un sistema di raggruppamento di launchers
di applicazioni: cliccando sull’icona di un contenitore viene aperto un
elemento grafico (menù o finestra o altro, a seconda di cosa proporrà il
grafico) contenente tutti i launchers dei programmi che si consideravano
logicamente appartenenti al medesimo gruppo.
Distribuzione Si tratta di un insieme di software (solitamente organizzato in
pacchetti) comprendente un kernel Linux (che si occupa delle funzioni tipiche di un Sistema Operativo), le librerie di sistema, almeno una interfaccia
utente, alcuni drivers, alcuni programmi di utilità, un sistema di installazione, un gestore dei pacchetti, una scelta di programmi applicativi, una
serie di servizi aggiuntivi (come documentazione e supporto).
Improving Termine inglese che significa letteralmente migliorare, perfezionare, valorizzare, sia in senso transitivo che riflessivo (quindi anche migliorarsi, perfezionarsi, valorizzarsi ), qui utilizzato per indicare l’effetto prodotto dal percorso d’utilizzo del sistema, graduale rispetto alle difficoltà
75
76
APPENDICE A. GLOSSARIO
e alle possibilità che vengono progressivamente introdotte all’attenzione
dell’utente.
Incluso I programmi che si considerano come “inclusi” nella distribuzione possono essere inseriti fisicamente all’interno del sistema in momenti diversi:
mentre una parte sarà presente fin dal primo accesso da parte dell’utente,
il resto verrà aggiunto durante il percorso di improving ma è comunuqe
da considerarsi come parte integrante della distribuzione stessa.
Livello (di improving) All’interno del percorso di improving, vengono individuati specifici eventi che attivano la proposta da parte del sistema di
ampliare le possibilità a disposizione dello specifico utente attivo in quel
momento. Ogni volta che tale proposta viene accettata, l’utente passa da
un livello di improving a quello immediatamente successivo.
Pedagogia È la disciplina che studia le teorie, i metodi e i problemi relativi
all’educazione di bambini e ragazzi e alla formazione della loro personalità.
Repository Si tratta dell’archivio dei pacchetti selezionati per poter essere installati sulla distribuzione per la quale è stato realizzato, organizzato in un
albero di cartelle e completato da alcuni file necessari al package manager
per eseguire le operazioni che gli competono. In sede di definizione del
sistema in esame, esso viene considerato come interlocutore esterno.
Sistema Operativo Linux Si legga la definizione di “Distribuzione” per chiarimenti.
Suggerimento Con questo termine ci si riferisce ad un messaggio inviato dal
sistema all’utente al fine di indicare un possible miglioramento di un comportamento messo in atto dall’utente stesso o un modo per ottenere un
aiuto di qualche genere.
Utente Con questo termine ci si riferisce sia al bambino-studente che all’“adulto
di riferimento”, insegnante, educatore o genitore, che con lui si trova ad
utilizzare il sistema.
Utilizzatore In questo modo si indica una persona che utilizza il sistema e che
può essere indifferentemente un utente od un amministratore.
Appendice B
Prima intervista al
committente
Cosı̀ il committente descrive se stesso:
Sono professore associato di didattica presso la Facoltà di Scienze della Formazione della Libera Università di Bolzano, amministro
dal 1999 una società di concepting e sono socio fondatore di Canalescuola coop s.p.a.. In ciascuna di tali realtà agisco prima di tutto
come appassionato di apprendimento, tecnologia e applicazioni tecnologiche legate a insegnamento e didattica, sono innamorato degli
ipertesti sin dagli anni ottanta e nonostante la passione per il Web
sia nata da subito, ho creduto nelle connessioni ipertestuali e nella
rivoluzione che avrebbero introdotto già prima di poter accedere ad
un browser e anche solo giocando con hypercard e prodotti similari.
Sono un seguace di Bush, Engelbart, Nelson, Papert, Postman, Kay,
Levy, e pur non riconoscendo alcun particolare valore alla divisione
tra scienze umane e scienze esatte, in quanto pedagogo e educatore
mi reputo per ovvie ragioni innanzitutto un umanista.
Ed ecco l’intervista da me condotta all’inizio del percorso progettuale:
Definisca sinteticamente dal suo punto di vista il progetto sul quale
ci accingiamo a lavorare.
Pur esistendo differenti progetti legati a Linux e alle relative applicazioni didattiche disponibili, nel caso del sottoscritto le primissime iniziative di qualche
interesse segnalabili risalgono all’uscita e alla successiva localizzazione di EduKnoppix. Nel frattempo molto è effettivamente accaduto, progetti di vario tipo
e con differenti aspirazioni si sono susseguiti e proseguono in alcuni casi con
successi incoraggianti. Quali possibili esempi di iniziative che a suo tempo fecero ben sperare per questo settore e i suoi possibili sviluppi segnalerei sia la
celeberrima iniziativa svolta a suo tempo in Spagna1 , sia l’emulo sviluppato successivamente in Italia2 , iniziativa decisamente più modesta ma non per questo
1 Per
2 Per
approfondimenti cfr. riferimenti bibliografici [18] e [12]
approfondimenti: http://www.fuss.bz.it/ e riferimento bibliografico [26]
77
78
APPENDICE B. PRIMA INTERVISTA AL COMMITTENTE
meno importante per un Paese come il nostro ancora troppo poco sensibile a
determinati discorsi legati alle tecnologie, al loro utilizzo, alle soglie reali d’accesso alle medesime. L’idea di lavorare a una distribuzione e alle sue correlazioni
dirette con l’utilizzo che ne faranno bambini in età scolare emerge quindi da
esempi pregressi, da alcuni anni di riflessione legata all’insegnamento, dall’analisi dell’esistente oltre che dalla consapevolezza di dover ancora rispondere ad
alcune necessità che restano tutt’ora senza risposta e che potrebbero realisticamente fare molto bene al settore scolastico italiano. Non tanto o non solo
pensando alla declinazione informatica delle attività didattiche, ma assumendo
con maggiore responsabilità l’intero percorso di rinnovamento e rilancio del sistema formativo nazionale che al momento naviga (la metafora nautica non è
ovviamente voluta...) decisamente in brutte acque. Una distro pensata davvero
per la scuola, o meglio, una distro che abbia realmente a cuore il modello d’utilizzo che potrebbe agire uno studente delle scuole primarie (senza entrare nel
merito delle fondamentali differenze riscontrabili all’interno di tale campione,
ovviamente poco più che virtuale per definizione e visto lo sviluppo generale
che si produce tra i 6 e gli 11 anni), ancora non esiste, o perlomeno stenta a
decollare3 a livello globale e non solo in questa Italia ancora non troppo digitale.
Quali osservazioni, studi e/o intuizioni l’hanno portata a maturare
l’idea di dar vita a questo progetto?
Vedi sopra, ovvero ragioni storiche, sociali, culturali e alcuni anni di osservazioni e riflessioni su di un mercato, quello informatico, che di tutto si occupa
tranne che delle reali necessità, competenze, modalità di utilizzo reali, degli
utenti. Soprattutto se piccoli e ancora soggetti alle decisioni altrui nell’accesso
e utilizzo di risorse tecnologiche di varia natura. Il fatto che i bambini possano
essere davvero al centro dei propri modelli di apprendimento e scoperta è noto
da oltre un secolo e perlomeno dal diffondersi delle cosiddette “scuole attive”, è
però altrettanto vero che lo stesso Socrate nel descrivere il suo metodo maieutico
non puntava in alcun modo a fornire un modello d’insegnamento ma una tecnica attraverso cui stimolare nei discenti la consapevolezza e la motivazione per
apprendere davvero e perché tale apprendimento potesse realmente servire. Già
alla fine degli anni sessanta, la lezione delle scuole attive e delle cosiddette scienze dell’educazione indicava nei computer e nella loro programmazione diretta da
parte dei bambini una imprescindibile opportunità per rinnovare i modelli didattici e le modalità d’insegnamento legate alla matematica, alla geometria ma
anche a discipline meno naturalmente riconducibili all’area di riferimento delle
macchine da calcolo. La “vera” domanda da porsi, di conseguenza, potrebbe
essere: ma dato che Logo4 ha ormai 40 anni, come mai la scuola funziona ancora
esattamente come all’alba della prima rivoluzione industriale?
3 Si pensi ad esempio alla distribuzione Qimo, progetto che si inquadra all’interno delle
attività della società il cui sito Internet è http://www.quinncoincorporated.org/
4 Logo è un linguaggio di programmazione fortemente orientato alla grafica e alla geometria
di base.
79
Quali sono gli obiettivi pedagogici che ci si propone di raggiungere
attraverso la realizzazione di questa nuova distribuzione Linux?
Maggiore accessibilità per studenti normodotati e con bisogni educativi speciali,
maggiore coerenza con lo stato dell’arte tecnologico che vuole utenti sempre più
liberi e maggiormente in grado di personalizzare e individualizzare la propria
esperienza e i propri modelli d’utilizzo. Un obiettivo etico e culturale di fondo,
che non può che afferire a un discorso a tutti gli effetti pedagogico ma che non per
questo vuole apparire semplicemente filosofico o comunque lontano da problemi
reali come spesso indicato dai critici del sistema formativo: un obiettivo che
sottolinea la necessità di sviluppare nuovi modelli economici condivisi, nuove
regole per il mercato, nuove modalità con cui descrivere sviluppo, progresso,
evoluzione (non solo) tecnologica.
Quali sono le motivazioni principali per le quali si è pensato di creare
una nuova distribuzione nonostante ne esitano già cosı̀ tante? Quali
peculiarità vorrebbe caratterizzassero questo nuovo sistema?
Anche se penso di aver già risposto in parte alla domanda tengo a ribadire
che non si vuole in alcun modo proporre semplicemente una nuova, ennesima,
distribuzione Linux, ma al contrario scegliere quanto di meglio attualmente
disponibile cosı̀ da poter avere un punto di partenza solido ed autorevole da
cui partire in direzione di una riflessione nuova e maggiormente approfondita
sull’uso del computer in classe, anche e soprattutto in direzione delle recenti
evoluzioni del mercato HW e della crescente disponibilità di sistemi piccoli,
leggeri, versatili e molto economici quali gli attuali netbook. Una distro che
non si descriva semplicemente come “educational” o comunque school-oriented,
ma che pensi davvero agli utenti di prima scolarizzazione ancora non esiste,
o perlomeno non come la vorremmo. Nonostante possa sembrare velleitario
da un lato e fondamentalmente scontato da un altro punto di vista, penso che
immaginare un complesso di attività incrementali legate sia al sistema operativo
sia alle applicazioni più utili e tipicamente utilizzate non rappresenti in alcun
modo un tentativo vano e irraggiungibile, neppure una semplice rielaborazione
e ricomposizione di strumenti già visti. Nessuna particolare rivoluzione, per
un verso, neppure un semplice re-facing di qualcosa di noto, ma un pensiero
organico rivolto ad utenti diversi non solo per la giovane età che li caratterizza,
ma anche e ben prima in quanto utilizzatori nativi, in quanto primi esseri umani
che avranno il computer tra gli strumenti naturali d’espressione, comunicazione,
lavoro, divertimento. Una distribuzione che “cambi” anche solo leggermente ma
che lo faccia davvero e per adattarsi ad utenti alle prime armi, che propone
suggerimenti in forma autonoma e non offre soltanto un aiuto su richiesta, che
ripropone tale attitudine anche all’interno dello spettro operativo delle principali
applicazioni, sarebbe probabilmente una vera innovazione e non la solita novità
tecnologica, ma qualcosa di davvero utile per chi del computer dovrà immaginare
un futuro e non soltanto integrarlo nel proprio presente. L’unico modo per
farlo succedere e per non continuare a fare dell’universo educativo soltanto un
destinatario delle campagne marketing delle corporation della tecnologia, l’unica
via possibile è Linux e l’unico modo è partire dal livello più basso possibile con
l’aiuto di tecnici giovani, liberi e un po’ spregiudicati!
80
APPENDICE B. PRIMA INTERVISTA AL COMMITTENTE
Qual è, secondo lei, la migliore definizione che si potrebbe dare del
target che ci si propone di raggiungere?
Il destinatario tipo del progetto, anche se la definizione di “utente tipo” suona
necessariamente poco sensata in questo ambito e per le più varie ragioni, potrebbe facilmente venire indicato come il bambino digitale contemporaneo, quel
bambino ormai post-televisivo che fa dell’interazione con la macchina una parte assolutamente fondamentale della propria quotidianità e che non possiamo
sperare di consegnare come alcuni anni or sono semplicemente nelle mani del
piccolo (o di qualsivoglia) schermo. Un bambino che sa molte più cose di quante
ne sapessero i suoi coetanei dieci anni fa, che subisce i videogiochi soprattutto
per colpa di adulti ignoranti e poco preparati a mediare nell’utilizzo dei media,
che vorrebbe sapere molte più cose di quante riescaAnche se penso di aver già
risposto in parte alla domanda tengo a ribadire che non si vuole in alcun modo
proporre semplicemente una nuova, ennesima, distribuzione Linux, ma al contrario scegliere quanto di meglio attualmente disponibile cosı̀ da poter avere un
punto di partenza solido ed autorevole da cui partire in direzione di una riflessione nuova e maggiormente approfondita sull’uso del computer in classe, anche
e soprattutto in direzione delle recenti evoluzioni del mercato HW e della crescente disponibilità di sistemi piccoli, leggeri, versatili e molto economici quali
gli attuali netbook. Una distro che non si descriva semplicemente come “educational” o comunque school-oriented, ma che pensi davvero agli utenti di prima
scolarizzazione ancora non esiste, o perlomeno non come la vorremmo. Nonostante possa sembrare velleitario da un lato e fondamentalmente scontato da un
altro punto di vista, penso che immaginare un complesso di attività incrementali legate sia al sistema operativo sia alle applicazioni più utili e tipicamente
utilizzate non rappresenti in alcun modo un tentativo vano e irraggiungibile,
neppure una semplice rielaborazione e ricomposizione di strumenti già visti.
Nessuna particolare rivoluzione, per un verso, neppure un semplice re-facing di
qualcosa di noto, ma un pensiero organico rivolto ad utenti diversi non solo per
la giovane età che li caratterizza, ma anche e ben prima in quanto utilizzatori
nativi, in quanto primi esseri umani che avranno il computer tra gli strumenti
naturali d’espressione, comunicazione, lavoro, divertimento. Una distribuzione
che “cambi” anche solo leggermente ma che lo faccia davvero e per adattarsi ad
utenti alle prime armi, che propone suggerimenti in forma autonoma e non offre
soltanto un aiuto su richiesta, che ripropone tale attitudine anche all’interno
dello spettro operativo delle principali applicazioni, sarebbe probabilmente una
vera innovazione e non la solita novità tecnologica, ma qualcosa di davvero utile
per chi del computer dovrà immaginare un futuro e non soltanto integrarlo nel
proprio presente. L’unico modo per farlo succedere e per non continuare a fare
dell’universo educativo soltanto un destinatario delle campagne marketing delle
corporation della tecnologia, l’unica via possibile è Linux e l’unico modo è partire dal livello più basso possibile con l’aiuto di tecnici giovani, no ad insegnargli
con metodi tradizionali e volumi a stampa, solo che a volte non sa neppure di
avere tale necessità, sempre a causa del ritardo evolutivo degli adulti (in tale
caso non soltanto i genitori) di riferimento. Software libero per cervelli più liberi
e spregiudicati che mai, per quelle teste ben fatte di cui abbiamo un bisogno
drammaticamente urgente e che solo con l’aiuto delle macchine più intelligenti
che riusciremo a produrre potranno davvero svilupparsi.
81
Viste anche le sue competenze tecniche, ha particolari richieste da
fare o ha suggerimenti e consigli che vorrebbe dare?
Non ho sufficienti competenze tecniche per fornire un dettaglio reale delle necessità e delle azioni più importanti che andranno di conseguenza preventivate,
ma posso comunque indicare nelle già citate usabilità ed accessibilità le chiavi fondamentali con cui affrontare il discorso. Punterei inoltre alla possibilità
di fornire percorsi incrementali-evolutivi sulla base delle differenti attitudini,
competenze, abilità e specificità del singolo utente, oltre che una limitata tendenza all’aggiornamento automatico e alla continua integrazione di pacchetti
vari. Vorrei in buona sostanza un sistema snello, piacevole, funzionale anche
per macchine non più recentissime, ovviamente attentissimo alla sicurezza e alla
definizione di molteplici profili utente, un sistema informatico molto simile a
quello descritto da Douglas Engelbart nella prima e più celebre dimostrazione
pubblica della storia del computer5 , soltanto più adatto ai bambini.
5 cfr.
riferimento bibliografico [28]
82
APPENDICE B. PRIMA INTERVISTA AL COMMITTENTE
Appendice C
Esempio di pianificazione
del percorso di improving
interno ad un’applicazione
incrementale
Si presenta, a titolo d’esempio, la pianificazione della customizzazione, concordata con il committente (e riguardo alla quale si riveleranno preziosi i consigli
degli insegnanti che verranno coinvolti della relativa fase di test), da operare su di un’applicazione complessa al fine di realizzare per essa un percorso
incrementale adeguato. Durante la fase di sviluppo quello che effettivamente
dovrà essere implementato sarà una serie di nuove interfacce da applicare ad un
“model” esistente.
Il programma che viene utilizzato per questo esempio è Impress, applicativo
per la realizzazione di presentazioni appartenente alla suite OpenOffice.org 1 .
La descrizione schematica dei livelli che segue si baserà sull’osservazione
del programma in tutte le sue parti, nella versione fornita di default con la
distribuzione Ubuntu 8.04. Si riportano, quindi, gli screenshots delle finestre
che vengono consecutivamente visualizzate aprendo il programma.
Livello 1
• Finestre tutorial di avvio: delle 3 rimane2 solo la prima e con le sole
opzioni “Crea nuova presentazione” e “Apri presentazione esistente”.
• Frame “Attività” (a destra): rimane solo la pagina “Layout” che però si
chiama “Aspetto”; si tolgono anche “Visualizza” e la “x” che chiuderebbe
il riquadro.
• Frame “Diapositive”: togliere la “x” che lo farebbe chiudere.
1 Sito
Internet relativo: http://it.openoffice.org/
si utilizzano termini come “rimanere” o “lasciare” si intende anche, a meno che
non venga esplicitato, che gli elementi non cambino posizione. Tale scelta viene operata anche
al fine di preparare l’utente ad orientarsi, al termine del percorso, anche all’interno di altri
programmi simili, che solitamente presentano icone analoghe in posizioni analoghe.
2 Quando
83
84APPENDICE C. ESEMPIO DI PIANIFICAZIONE DEL PERCORSO DI IMPROVING INTERNO A
Figura C.1: Screenshot che mostra la prima finestra, appartenente al tutorial
di avvio, visualizzata alla richiesta di apertura di Impress.
Figura C.2: Screenshot che mostra la seconda finestra del tutorial di avvio di
Impress.
Figura C.3: Screenshot che mostra la terza finestra del tutorial di avvio di
Impress.
85
Figura C.4: Screenshot che mostra la finestra principale dell’applicativo Impress,
visualizzata al termine del tutorial di avvio.
• Area centrale: c’è solo la scheda “Normale”; togliere tutte le linguette
delle schede.
• Barra dei menù e voci di menù: nessun menù.
• Prima barra degli strumenti in alto:
– Lasciare: “Nuovo” ma senza possibilità di scelta (cioè senza il triangolo di fianco, che aprirebbe il menù di scelta), “Apri”, “Salva”,
“Stampa”, “Controllo ortografico”, “Taglia”, “Copia”, “Incolla”, “Annulla”, “Ripeti”, “Zoom”, “Pagina” (ma con testo “Aggiungi pagina”).
– Togliere: “Documento come eMail”, “Modifica file”, “Esporta come pdf”, “Controllo automatico”, “Copia formato”, “Diagramma”,
“Foglio elettronico”, “Hyperlink”, “Mostra griglia”, “Navigatore”,
“Guida”, “Struttura diapositiva”.
– Aggiungere: un pulsante “Mostra Presentazione” e al posto di “Guida” mettere un pulsante relativo alla funzione “Cos’è questo” (che in
Impress normalmente si trova nel menù Strumenti).
• Seconda barra degli strumenti in alto: toglierla.
• Barra degli strumenti in basso:
– Laciare: “Scelta”, “Linea”, “Linea con freccia terminale”, “Testo”,
“Forme base”, “Forme simboli”, “Stelle”.
– Togliere: “Rettangolo”, “Ellisse”, “Curve”, “Connettore”, “Frecce
blocchi”, “Diagrammi di flusso”, “Legende”, “Punti”, “Punti di incollaggio”, “Galleria fontwork”, “Da file”, “Gallery”, “Ruota”, “Allineamento”, “Disponi”, “Estrusione sı̀/no”, “Interazione”.
86APPENDICE C. ESEMPIO DI PIANIFICAZIONE DEL PERCORSO DI IMPROVING INTERNO A
Livello 2
• Finestre tutorial di avvio: nessuna novità.
• Frame “Attività”: nessuna novità.
• Frame “Diapositive”: nessuna novità.
• Area centrale: aggiungere “Ordine diapositive”.
• Barra dei menù e voci di menù: aggiungere solo il necessario per avere
le voci di menù relative ai soli pulsanti visibili in questo livello nelle barre degli strumenti (quindi in particolare serviranno solo i menù “File”,
“Modifica”, “Inserisci”, “Strumenti”, “Presentazione”, “?”3 ).
• Prima barra degli strumenti in alto: aggiungere “Controllo automatico”.
• Seconda barra degli strumenti in alto: nessuna novità.
• Barra degli strumenti in basso: aggiungere “Rettangolo”, “Ellisse”, “Frecce blocchi” e “Legende”.
Livello 3
• Finestre tutorial di avvio: nessuna novità.
• Frame “Attività”: aggiungere “Pagine master” ma con titolo “Pagine
modello”.
• Frame “Diapositive”: nessuna novità.
• Area centrale: aggiungere “Note”.
• Barra dei menù e voci di menù: aggiungere solo il necessario per avere le
voci di menù relative ai pulsanti visibili a questo livello.
• Prima barra degli strumenti in alto: aggiungere “Copia formato” e “Mostra griglia”.
• Seconda barra degli strumenti in alto: reinserirla con tutti i pulsanti tranne
“Stili e formattazione”.
• Barra degli strumenti in basso: nessuna novità.
Livello 4
• Finestre tutorial di avvio: aggiungere “Da modello” nella prima finestra
e tutta la seconda.
• Frame “Attività”: nessuna novità.
• Frame “Diapositive”: nessuna novità.
• Area centrale: nessuna novità.
3 Si
mantengono questi titoli per il discorso riguardante l’orientamento fatto in precedenza.
87
• Barra dei menù e voci di menù: aggiungere solo il necessario per avere le
voci di menù relative ai pulsanti visibili a questo livello.
• Prima barra degli strumenti in alto: aggiungere “Navigatore”.
• Seconda barra degli strumenti in alto: nessuna novità.
• Barra degli strumenti in basso: aggiungere “Curve”, “Ruota”, “Allineamento”, “Disponi”, “Estrusione sı̀/no”.
Livello 5
• Finestre tutorial di avvio: nessuna novità.
• Frame “Attività”: aggiungere “Cambio diapositiva” ma con titolo “Effetto
cambio diapositiva”. Scegliere testi più chiari anche per gli elementi interni
alla scheda.
• Frame “Diapositive”: nessuna novità.
• Area centrale: aggiungere “Struttura”.
• Barra dei menù e voci di menù: aggiungere solo il necessario per avere le
voci di menù relative ai pulsanti visibili a questo livello.
• Prima barra degli strumenti in alto: aggiungere “Struttura diapositiva”.
• Seconda barra degli strumenti in alto: nessuna novità.
• Barra degli strumenti in basso: aggiungere “Diagrammi di flusso”, “Galleria fontwork”, “Da file”, “Gallery”4 .
Livello 6
• Finestre tutorial di avvio: aggiungere “Non mostrare più procedura giudata” nella prima finestra e la terza finestra.
• Frame “Attività”: completo (aggiungere “Animazione personalizzata”,
“Visualizza” e la “x”).
• Frame “Diapositive”: aggiungere la “x”.
• Area centrale: aggiungere “Stampati”.
• Barra dei menù e voci di menù: tutti completi (esclusi gli elementi di cui
nella parte successiva di “Note”).
• Prima barra degli strumenti in alto: aggiungere “Modifica file”.
• Seconda barra degli strumenti in alto: aggiungere “Stili e formattazione”.
• Barra degli strumenti in basso: aggiungere quello che manca (“Connettore”, “Punti”, “Punti di incollaggio”, “Interazione”).
4 In questo caso si mantengono titoli che potrebbero rivelarsi poco chiari per l’utente perché
si abitui ad utilizzare le didascalie per scoprire il significato di elementi che non conosce e dei
quali non comprende a prima vista l’utilità
88APPENDICE C. ESEMPIO DI PIANIFICAZIONE DEL PERCORSO DI IMPROVING INTERNO A
Note
• Nella prima barra degli strumenti in alto (e quindi anche nei menù) l’aggiunta delle voci “Diagramma” e “Foglio di calcolo” avviene nel momento
in cui, all’interno del percorso di improving, viene introdotto il programma
per la gestione di fogli di calcolo.
• Allo stesso modo l’introduzione di “Documento come eMail” e “Hyperlink”
dipenderà dal percorso legato a posta elettronica e Internet.
Appendice D
Elenco delle distribuzioni
citate
Absolute Derivata da Slackware, leggera e adatta anche a macchine datate.
Sito Internet: http://www.absolutelinux.org/
aLinux Distribuzione basata su Red Hat, con window manager Enlightenment
e aspetto “Windws XP like”.
Sito Internet: http://www.alinux.tv/
ALT Linux Distribuzione russa derivata da Mandrake, in due versioni, desktop e server.
Sito Internet: http://www.altlinux.com/
AnNyung Distribuzione coreana basata su Red Hat, poi passata a Fedora,
orientata alle applicazioni server.
Sito Internet: http://annyung.oops.org/
Arch Distribuzione general purpose per utenti di livello medio con un proprio
sistema di gestione dei pacchetti, Pacman.
Sito Internet: http://www.archlinux.org/
Ark Target è l’utente medio, obiettivi l’essenzialità e la semplicità d’uso. Utilizza pacchetti .rpm e supporta anche apt attraverso due interfacce grafiche.
Sito Internet: http://www.arklinux.org/
Armedslack Derivata da Slackware, per processori ARM.
Sito Internet: http://www.armedslack.org/
AsianLinux Derivata da Fedora, sviluppata in India aggiungendo molte applicazioni per uso quotidiano anche non libere.
Sito Internet: http://www.asianlinux.net/
Asianux Derivata da Miracle e Red Flag per applicazioni server, per il mercato
cinese.
Sito Internet: http://www.asianux.com/
89
90
APPENDICE D. ELENCO DELLE DISTRIBUZIONI CITATE
Astaro Derivata da SUSE per dispositivi all-in-one firewall.
Sito Internet: http://www.astaro.com/
Auditor Security Linux Derivata di Kanotix, si è successivamente fusa con
Whax, ex Whoppix per dar vita a Backtrack.
Aurora Derivata da Red Hat per architettura SPARC.
Sito Internet: http://auroralinux.org/
Autrumi Derivata da Slackware, molto leggera, live da CD o chiavetta USB.
Sito Internet: http://cyti.latgola.lv/ruuni/
Backtrack Derivata dalla fusione di Auditor Security Linux e Whax, cerca di
ampliare ulteriormente la flessibilità hardware con l’ulteriore aggiunta di
una certa attenzione alla sicurezza.
Sito Internet: http://www.remote-exploit.org/backtrack.html
Bayanihan Derivata da Red Hat, poi passata prima a Fedora ed infine a Debian, basata solo su software Open Source e realizzata per uffici pubblici
e scuole filippini.
Sito Internet: http://www.bayanihan.gov.ph/
Berry Derivata di Fedora, è una classica live con ottimo riconoscimento hardware.
Sito Internet: http://berry.sourceforge.jp/
BinToo Derivata da Gentoo, completa e binaria.
Sito Internet: http://bintoo.sourceforge.net/drpl/
BioBrew Derivata di Red Hat, specializzata nella bioinformatica.
Sito Internet: http://bioinformatics.org/biobrew/
Bioknoppix Derivata di Knoppix, specializzata per la biologia molecolare.
Sito Internet: http://bioknoppix.hpcf.upr.edu/
blackPanther Basata su Mandrake, per l’utilizzo in Ungherese.
Sito Internet: http://www.blackpanther.hu/
Blag Basata su Red Hat, poi passata a Fedora, completa per uso desktop ma
contenuta tutta in un singolo CD.
Sito Internet: http://www.blagblagblag.org/
Bluewithe64 Derivata da Slackware, per processori x86 64.
Sito Internet: http://www.bluewhite64.com/
Boss Derivata di Debian, ottimizzata per l’uso in India, anche nell’amministrazione pubblica.
Sito Internet: http://bosslinux.in/
Buddhabuntu Derivata di Ubuntu per Buddisti.
Sito Internet: http://buddhabuntu.8m.net/
91
BU Linux Derivata di Red Hat, poi passata a Fedora, appositamente studiata
per la situazione della Boston University.
Sito Internet: http://linux.bu.edu/
Caixa Mágica Derivata di SUSE in Portoghese.
Sito Interet: http://www.caixamagica.pt/
Caldera cfr. Mandriva.
CentOS Basata su Red Hat, è diretta concorrente di Red Hat Enterprise Linux distribuita gratuitamente, compatibile con essa, ma senza lo stesso
supporto.
Sito Internet: http://www.centos.org/
Clonezilla Live Live CD basato su Debian che permette di clonare il contenuto
di partizioni utilizzate dell’hard disk per scopi di save-and-restore.
Sito Internet: http://www.clonezilla.org/
Conectiva cfr. Mandriva.
Corel cfr. Xandros.
Coyote Un personal firewall progettato per proteggere reti casalinghe o scolastiche.
Sito Internet: http://coyotelinux.com/
CrunchBang Derivata da Ubuntu, leggera e veloce, con Openbox window
manager.
Sito Internet: http://crunchbanglinux.org/
Crux Distribuzione per utenti esperti che utilizza pacchetti in formato tar.gz.
Sito Internet: http://crux.nu/
Damn Small Linux Detta anche DSL, derivata da Knoppix, è molto compatta ed utilizzabile live da diversi supporti anche con poca memoria (a
partire dalle biz-cards) e dall’interno di un sistema Microsoft Windows.
Sito Internet: http://damnsmalllinux.org/
Darkstar Derivata da Slackware, con supporto per il Rumeno.
Sito Internet: http://www.darkstarlinux.ro/
Debian Distribuzione general purpose all’origine di un’ampia famiglia.
Sito Internet del progetto: http://www.debian.org/
DeLi Derivata da Slackware, adatta a vecchi pc.
Sito Internet: http://www.delilinux.org/
DNALinux Derivata da Slax, specializzata per la bio-informatica.
Sito Internet: http://dnalinux.com/
92
APPENDICE D. ELENCO DELLE DISTRIBUZIONI CITATE
Dreamlinux Derivata da Morphix con stesso scopo (agevolare la creazione di
distribuzioni personalizzate) ma con una intefaccia ancor più user-friendly.
Sito Internet: http://www.dreamlinux.com.br/
DSL cfr. Damn Small Linux.
DSLinux Distribuzione per NintendoDS.
Sito Internet: http://www.dslinux.org/
DSL-N Derivata da Damn Small Linux, ne amplia le possibilità d’utilizzo
applicativo, pur rimanendo compatto.
Sito Internet: http://damnsmalllinux.org/dsl-n/
dyne:bolic Distribuzione live fornita solo in formato ISO realizzata per l’editing audio e video e per la fruizione di materiale multimediale.
Sito Internet: http://www.dynebolic.org/
Easy Peasy Derivata da Ubuntu, ex Ubuntu eee, ottimizzata per Eee PC.
Sito Internet: http://www.geteasypeasy.com/
Edubuntu Derivata di Ubuntu della cetegoria di specializzazione educational,
curata in modo discontinuo.
Sito Internet: http://edubuntu.org/
eduKnoppix Derivata di Knoppix della cetegoria di specializzazione educational.
Sito Internet: http://www.eduknoppix.org/
Ekaaty Derivata da Fedora, aggiunge alcune applicazioni desktop e il supporto
al Portoghese.
Sito Internet: http://www.ekaaty.com.br/
Elive Derivata da Debian, live, utilizza interfaccia grafica Enlightenment.
Sito Internet: http://www.elivecd.org/
EnGarde Distribuzione per applicazioni server particolarmente orientato alla
sicurezza.
Sito Internet: http://www.engardelinux.org/
Enoch cfr. Gentoo.
e-smith cfr. Sme Server.
Feather Derivata di Knoppix, compatta nata come alternativa a Damn Small
Linux, con differente scelta software e meno ottimizzazione.
Sito Internet: http://featherlinux.berlios.de/
Fedora Ex Fedora Core, derivata da Red Hat ma basata sul lavoro della community GNU/Linux.
Sito Internet: http://fedoraproject.org/
93
Finnix Derivata di Debian, distribuzione live decisamente contenuta per amministratori di sistema.
Sito Internet: http://www.finnix.org/
Fluxbuntu Derivata di Ubuntu, usa però il window manager Fluxbox.
Sito Internet: http://fluxbuntu.org/
Foresight Derivata di rPath, include anche software a pagamento ed è pensata
per facilitare il passaggio da Windows a Linux.
Sito Internet: http://www.foresightlinux.org/
Freespire Derivata da Linspire, facilita l’inserimento di software proprietario
in un sistema Debian-based.
Sito Internet: http://www.freespire.org/
Frugalware Derivata da Slackware, usa però il gestore dei pacchetti Pacman
di Arch.
Sito Internet: http://frugalware.org/
GeeXboX Live che si propone di trasformare un computer in un Media Center.
Sito Internet: http://www.geexbox.org/
Gentoo Ex Enoch, basato su sistema di gestione dei pacchetti Portage.
Sito Internet: http://www.gentoo.org/
Gentoox Derivata da Gentoo, per Xbox.
Sito Internet: http://gentoox.shallax.com/
Geubuntu cfr. OpenGeu.
Gibraltar Distribuzione derivata da Debian per Firewalls.
Sito Internet: http://www.gibraltar.at/
gNewSense Derivata da Ubuntu, si pone come obiettivo l’inclusione solo ed
esclusivamente di software libero.
Sito Internet: http://www.gnewsense.org/
GoblinX Derivata da Slackware, live CD, migliora l’aspetto e l’usabilità.
Sito Internet: http://www.goblinx.com.br/
GoboLinux Utilizza pacchetti tar.bz2 e si pone come obiettivo quello di rivoluzionare l’organizzazione delle cartelle e dei dati di sitema.
Sito Internet: http://www.gobolinux.org/
gOS Derivata di Ubuntu, inizialmente realizzata per essere installata su altri
Sistema Operativi ed utilizzata tramite browser web, sta ora sviluppando
un’ottimizzazione per netbooks utilizzabile anche su computer desktop.
Sito Internet: http://www.thinkgos.com/
94
APPENDICE D. ELENCO DELLE DISTRIBUZIONI CITATE
Granular Distribuzione basata su PCLinuxOS cercando di migliorarne la facilità d’uso.
Sito Internet: http://www.granularlinux.com/
grml Distribuzione Debian-based per amministratori di sistema e utenti che
preferiscono gli strumenti testuali.
Sito Internet: http://grml.org/
Guadalinex Derivata da Debian, ora però legata alla famiglia Ubuntu, sviluppata dal governo dell’Andalusia, in Spagna, con varie versioni destinate a
scuole, centri per gli anziani, biblioteche e uffici pubblici della regione. La
versione educational è Guadalinex EDU.
Sito Internet: http://www.guadalinex.org/
How-tux Derivata da Slackware, con supporto per l’Italiano, miglioramento
interfaccia e inserimento di programmi più completi (come OpenOffice al
posto di KOffice).
Sito Internet: http://www.how-tux.org/
Impi Originariamente derivata da Debian, anche se dopo la nascita di Ubuntu
si è sempre più appoggiata a quest’ultima, nasce in Africa per l’uso in
amministrazioni pubbliche e private di dimensioni varie.
Sito Internet: http://www.impi.org.za/
IPCop Derivata da SmoothWall, è un sistema firewall.
Sito Internet: http://www.ipcop.org/
K12 Derivata di Red Hat, poi passata a Fedora, per terminal server.
Sito Internet: http://k12linux.org/
Kaella Derivata da Knoppix con supporto completo per il Francese.
Sito Internet: http://kaella.linux-azur.org/
Kalango Derivata di Kurumin.
Sito Internet: http://kalangolinux.org/
Kanotix Derivata di Knoppix, ne amplia il supporto ad alcune tipologie di
periferiche.
Sito Internet: http://kanotix.com/
Kate Linux Progettato per utenti di livello medio, introduce software proprio,
tra cui anche un sistema di gestione per pacchetti in formato .tgz.
Sito Internet: http://kateos.org/
Kiwi Derivata di Ubuntu, ottimizzata per l’uso in lingua rumena e ungherese.
Sito Internet: http://kiwilinux.org/
Knoppix Famosa live completa derivata da Debian.
Sito Internet: http://www.knoppix.org/
95
KnoppMyth Derivata di Knoppix, studiata per una facile installazione di
Linux e MythTV.
Sito Internet: http://mysettopbox.tv
Kubuntu Derivata da Ubuntu ma con sistema KDE al posto di Gnome.
Sito Internet: http://www.kubuntu.org/
Kurumin Derivata da Knoppix ottimizzando l’uso in Portoghese, recentemente
abbandonata in favore di Kalango.
Leaf Derivata di Debian, customizzabile per essare embeddata in diversi dispositivi di rete.
Sito Internet: http://leaf.sourceforge.net/
Lime JeOS Derivata da OpenSUSE per virtual appliances.
Sito Internet: http://en.opensuse.org/LimeJeos
Lindows cfr. Linspire.
LinEx Derivata da Debian, nata per iniziativa del governo regionale dell’Extremadura, in Spagna, per essere installata nelle scuole (per le quali esiste
una variante che ha come target gli insegnanti ed una che fosse usata nelle
scuole secondarie, dove si voleva introdurre un comuter per ogni banco) e
negli uffici pubblici della regione.
Sito Internet: http://www.linex.org/
Linpus Distribuzione commerciale basata su Red Hat poi passata a Fedora,
ottimizzata per il Cinese tradizionale e semplificato.
Sito Internet: http://www.linpus.com/
Linspire Distribuzione commerciale derivata da Debian non più attiva, ma il
cui progetto sponsorizza ora Freespire.
Linux From Scratch Progetto sia software che letterario che si propone di
insegnare all’utente a costruirsi il proprio sistema Linux “da zero”.
Sito Internet: http://www.linuxfromscratch.org/
Linux-FT cfr. Mandriva.
Linux Mint Derivata da Ubuntu, ma con una interfaccia grafica elegante appositamente sviluppata.
Sito Internet: http://www.linuxmint.com/
Lunar Basata su Sorcerer, introduce un proprio sistema di gestione dei pacchetti.
Sito Internet: http://www.lunar-linux.org/
Lycoris cfr. Mandriva.
Mandrake cfr. Mandriva.
96
APPENDICE D. ELENCO DELLE DISTRIBUZIONI CITATE
Mandriva Ex Mandrake, derivato da Red Hat, è il risultato anche di due
fusioni: la prima con Conectiva (un’altra derivata di Red Hat, nata in
Brasile), la con Lycoris (ex Redmond, derivata da Caldera, poi divenuta
SCO, ora estinta, che a sua volta era derivata di Red Hat e che aveva
assorbito in precedenza Linux-FT).
Sito Internet: http://www.mandriva.com/
Mepis cfr. SimplyMepis.
MiniSlack cfr. Zenwalk.
Mint cfr. Linux Mint.
Miracle Derivata da Red Hat per applicazioni server, altamente ottimizzata,
rinforzata nella sicurezza, con varie versioni a seconda dell’applicazione
server principale.
Sito Internet: http://www.miraclelinux.com/
Momonga Derivata da Fedora, è il frutto del lavoro di una comunità di sviluppatori che programmano soprattutto per sè per loro stessa ammissione.
Sito Internet: http://www.momonga-linux.org/
MOPSLinux Derivata da Slackware, con supporto solo per il Russo.
Sito Internet: http://mopslinux.org/
Morphix Derivata da Knoppix con lo scopo di agevolare la creazione di distribuzioni personalizzate. Progetto abbandonato del quale resiste la derivata
Dreamlinux.
Musix Derivata da Knoppix, specializzata nell’ambito audio.
Sito Internet: http://www.musix.org.ar/
NepaLinux Derivata da Debian, ottimizzata per Nepali.
Sito Internet: http://www.nepalinux.org/
NimbleX Derivata da Slackware, alleggerita, live da mini-CD, supporti USB,
altro computer collegato attraverso rete locale.
Sito Internet: http://www.nimblex.net/
Nitix Ex Weaver, sviluppata da Lotus Foundation, collegata ad IBM, per
applicazioni server avanzate e con un alto livello di automatizzazione.
Sito Internet: http://www.nitix.com/
nUbuntu Derivata da Ubuntu, dedicata alla sicurezza informatica.
Sito Internet: http://www.nubuntu.org/
OpenGeu Ex Geubuntu, derivata di Ubuntu che vuole unire la semplicità di
utilizzo del desktop environment Gnome con la velocità , leggerezza e
ricchezza di effetti grafici bidimensionali del window manager Enlightenment.
Sito Internet: http://www.opengeu.intilinux.com/
97
OpenSUSE Versione gratuita e open source di SUSE.
Sito Internet: http://www.opensuse.org/
Oz Inizialmente derivato da rPath per filosofia, si basa ora su Xubuntu con
window manager Enlightenment.
Sito Internet: http://www.cafelinux.org/OzOs/
Papug Derivata da Gentoo, minimale live CD adatto anche ad architetture
vecchie.
Sito Internet: http://www.papuglinux.net/
Pardus Sviluppato in Turchia, include un’ampia gamma di soluzioni appositamente realizzate tra cui il sistema di gestione dei pacchetti PiSi.
Sito Internet: http://www.pardus.org.tr/
Parsix Derivata di Kanotix, che introduce il supporto per il Persiano.
Sito Internet: http://www.parsix.org/
PCLinuxOS Derivata da Mandrake aggiungendo alcune funzionalità sempre
per l’uso desktop e per utenti non esperti.
Sito Internet: http://www.pclinuxos.com/
Peanut cfr. aLinux.
PelicanHPC Derivata di Debian, ottimizzata per i cluster-computers.
Sito Internet: http://pareto.uab.es/mcreel/PelicanHPC/
Pentoo una live realizzata a partire da Gentoo per test di penetrazione e di
sicurezza delle reti.
Sito Internet: http://www.pentoo.ch/
Pld Derivata da Red Hat, per utenti altamente esperti.
Sito Internet: http://pld-linux.org/
Poseidon Derivata di Kurumin, per scopi scientifici, ora basata su Ubuntu.
Sito Internet: http://poseidon.furg.br/
PSUbuntu Derivata di Ubuntu per PlayStation.
Sito Internet: http://psubuntu.com/
Puppy Live leggerissima che una volta avviata viene completamente caricata
nella RAM, utilizza due gestori di pacchetti propri, PupGet e DotPup.
Sito Internet: http://www.puppylinux.com/
PureOS Derivata da Debian, live e installabile, anche in versione leggera (PureOSlight), si basa sui repository “testing” di Debian.
Sito Internet: http://pureos.org/
Qimo Derivata da Ubuntu, pensata per bambini dai 3 anni.
Sito Internet: http://www.qimo4kids.com/
98
APPENDICE D. ELENCO DELLE DISTRIBUZIONI CITATE
Red Flag Derivata da Red Hat, sviluppata da una società cinese per gli utenti
cinesi di nuova tecnologia.
Sito Internet: http://www.redflag-linux.com/
RedHat Distribuzione ora diffusa col nome di “Red Hat Enterprise Linux”,
all’origine di un’ampia famiglia.
Sito Internet del progetto: http://www.redhat.com/
Redmond cfr. Mandriva.
Rock Linux Si tratta di un kit per la costruzione di una propria distribuzione
realizzata a partire dai file sorgenti.
Sito Internet: http://www.rocklinux.org/
rPath Distribuzione sviluppata dalla società omonima con l’obiettivo di essere il più possibile recettiva rispetto alle novità tecniche e aperta alle
personalizzazioni, ex Specifix. Gestore dei pacchetti Conary.
Sito Internet: http://www.rpath.com/
RR4 cfr. Sabayon.
Sabayon Distribuzione italiana nata da Gentoo, live in versione leggera per
CD e completa su DVD, per uso desktop.
Sito Internet: http://www.sabayonlinux.org/
Sam Derivata di Mandrake, poi passata a PCLinuxOS, che cerca la facilità
d’uso e utilizza Kfce.
Sito Internet: http://www.sam-linux.org/
Scientific Derivata di Red Hat specializzata per applicazioni scientifiche.
Sito Internet: https://www.scientificlinux.org/
Sco cfr. Mandriva.
Sidux Basata su Debian Sid, si concentra sull’ampliare la compatibilità hardware introducendo moduli per dispositivi nuovi.
Sito Internet: http://sidux.com/
Simplis Derivata da Fedora, ex Vixta, nata con lo scopo di essere esteticamente
il più simile possibile a Windows Vista e contenente una versione di Wine
adatta all’esecuzione di files binari di Vista stesso.
Sito Internet: http://linuxdigital.org/
SimplyMepis Ex Mepis, derivata da Debian, live, pone grande attenzione alla
user-friendness.
Sito Internet: http://www.mepis.org/
Skolelinux Distribuzione educational nata in Norvegia avendo come target
l’uso nelle scuole, derivata da Debian.
Sito Internet: http://www.skolelinux.org/
99
Slackintosh Derivata da Slackware, per processori PPC.
Sito Internet: http://slackintosh.workaround.ch/
Slackware Distribuzione general purpose all’origine di un’ampia famiglia.
Sito Internet del progetto: http://www.slackware.com
Slamd64 Derivata da Slackware, per AMD64.
Sito Internet: http://www.slamd64.com/
Slax Derivata da Slackware, live e customizzabile.
Sito Internet: http://www.slax.org/
Sme Server Derivata da Red Hat per server piccoli e medi, ex e-smith.
Sito Internet: http://www.smeserver.org/
SmoothWall Ex SmoothWall GPL, ora SmoothWall Express, si occupa di
sistemi per la sicurezza di rete.
Sito Internet: http://www.smoothwall.org/
Sorcerer Distribuzione basata sui file sorgenti, assemblata e compilata in base
alle richieste dell’utente.
Sito Internet: http://sorcerer.aakin.net/
Source Mage Basato su Sorcerer, introduce un proprio sistema di gestione dei
pacchetti detto Sorcery.
Sito Internet: http://www.sourcemage.org/
Specifix cfr. rPath.
Splack Derivata da Slackware, per processori Sparc.
Sito Internet: http://www.splack.org/
StartCom Derivata di Red Hat per server di medie dimensioni.
Sito Internet: http://linux.startcom.org/
SUSE Famosa derivata di Slackware gestita da Novell.
Sito Internet: http://www.novell.com/linux/
Symbian OS Distribuzioni per dispositivi “mobile”, recentemente acquisita da
Nokia.
Sito Internet: http://www.symbian.com/
Symphony OS Derivata di Knoppix, poi passata sotto Debian e poi sotto
Ubuntu, si proponeva di migliorare il più possibile la user-friendness con
una interfaccia particolare.
Sito Internet: http://www.symphonyos.com/
TinyMe Mini-distribuzione derivata da PCLinuxOS.
Sito Internet: http://tinymelinux.com/
100
APPENDICE D. ELENCO DELLE DISTRIBUZIONI CITATE
Topologilinux Derivata da Slackware, può essere installata e utilizzata dall’interno di un sistema Windows.
Sito Internet: http://www.topologilinux.com/
Trisquel Derivata da Ubuntu, sviluppata dal governo reglionale della Galizia,
in Spagna, si pone come obiettivo l’inclusione esclusiva di software libero,
include il suporto per Galiziano, Catalano ed Euskera (la lingua basca)
ed è specializzata per la pubblica amministrazione (uffici, scuole e altri
servizi).
Sito Internet: http://trisquel.uvigo.es/
Tuquito Derivata di Debian, live CD, nata in Argentina per facilitare l’uso a
utenti alle prime armi o di livello “intermediate”.
Sito Internet: http://www.tuquito.org.ar/
Turbolinux Derivata da Red Hat, per utenti esperti.
Sito Internet: http://www.turbolinux.com/
Ubuntu Famosa discendente di Debian, capostipite a sua volta di una crescente
famiglia.
Sito Internet: http://www.ubuntu.com/
Ubuntu JeOS Derivata di Ubuntu, realizzata per virtual appliances.
Sito Internet: http://www.ubuntu.com/products/whatisubuntu/serveredition/jeos
Ubuntulite cfr. U-lite.
UbuntuME Il nome sta per “Ubuntu Muslim Edition”, derivata da Ubuntu e contenente software “islamico”, come il tempo delle preghiere, un
programma per lo studio del Corano e un filtro per la navigazione su
Internet.
Sito Internet: http://www.ubuntume.com/
Ubuntu MID Edition Edizione della distribuzione Ubuntu dedicata ai dispositivi “mobile” e particolarmente adatta alla navigazione e alla customizzazione.
Sito Internet: http://www.ubuntu.com/products/mobile
Ubuntu Netbook Remix Edizione di Ubuntu dedicata ai netbook.
Sito Internet: http://www.canonical.com/projects/ubuntu/unr
Ubuntu Studio Derivata da Ubuntu per la manipolazione e creazione di progetti multimediali.
Sito Internet: http://ubuntustudio.org/
uClinux cfr. µClinux.
U-lite Derivata da Ubuntu, per computer particolarmente lenti.
Sito Internet: http://u-lite.org/
101
Ututo Nata autonomamente, ora basata su Gentoo e chiamata Ututo XS, si
pone come obiettivo la conformità alle direttive della Free Software Foundation. Lo stesso gruppo che cura Ututo si occupa anche della versione
Ututo-e per vecchie macchine.
Sito Internet: http://www.ututo.org/
Ututo-e cfr. Ututo.
Vector Derivata da Slackware, con l’introduzione di un’interfaccia più userfriendly.
Sito Internet: http://www.vectorlinux.com/
VidaLinux cfr. VLOS.
Vine Derivata di Red Hat, ottimizzata per l’uso in Giapponese su tecnologia
giapponese.
Sito Internet: http://www.vinelinux.org/
Vixta cfr. Simplis.
Vlos Ex VidaLinux, completa per uso desktop, derivata da Gentoo.
Sito Internet: http://vidalinux.org/
Voltalinux Derivata da Slackware, integra anche il sistema di gestione dei
pacchetti di NetBSD (derivata di BSD, non trattata in questa sede).
Sito Internet: http://voltalinux.sicurezzarete.com/
Weaver cfr. Nitix.
Whax Ex Whoppix, derivata da Knoppix, poi fusasi con Auditor Security
Linux per dar vita a Backtrack.
White Box Derivata da Red Hat, è diretta concorrente di Red Hat Enterprise
Linux distribuita gratuitamente, e cerca di mantenere la compatibilità con
essa.
Sito Internet: http://www.whiteboxlinux.org/
Whoppix cfr. Whax.
Wolvix Derivata da Slax, migliorata per un uso casalingo e quotidiano.
Sito Internet: http://wolvix.org/
Xandros Distribuzione commerciale derivata da Debian con alta integrabilità
di software Microsoft ed utilizzata per gli ASUS Eee PC.
Sito Internet: http://www.xandros.com/
Xebian Derivata di Debian per Xbox.
Sito Internet: http://www.xbox-linux.org/wiki/Xebian HOWTO
Xubuntu Derivata da Ubuntu, con Xfce al posto di Gnome.
Sito Internet: http://www.xubuntu.org/
102
APPENDICE D. ELENCO DELLE DISTRIBUZIONI CITATE
Yellow Dog Derivata di Red Hat, inizialmente realizzata per PowerPC, poi
realizzata anche per Terra Soft.
Sito Internet: http://www.yellowdoglinux.com/
Yoper I pacchetti, distribuiti in formato .rpm, vengono costruiti a partire dal
codice sorgente e combinando tutte le migliori features delle maggiori
distribuzioni.
Sito Internet: http://www.yoper.com/
Zebuntu cfr. ZevenOS.
Zenwalk Derivata da Slackware, sviluppata da Jean-Philippe Guillemin, con
miglioramenti all’interfaccia e aggiunta di applicazioni Internet, applicazioni multimediali, strumenti di sviluppo.
Sito Internet: http://www.zenwalk.org/
ZevenOS Ex Zebuntu, derivata da Ubuntu, per macchine vecchie e interfaccia
BeOS-like.
Sito Internet: http://www.zevenos.com/
µClinux Conosciuto anche come uClinux, è realizzato per sistemi senza Memory Management Unit (MMU) ed è utilizzabile anche con microcontrolli.
Sito Internet: http://www.uclinux.org/
Bibliografia
[In ordine alfabetico per titolo]
[1] M. Tim Jones. Anatomy of the Linux networking stack. IBM developerWorks, articolo del 27 giugno 2007. Reperibile all’interno del sito
http://www.ibm.com/developerworks/linux/.
[2] M. Tim Jones.
Anatomy of the Linux kernel.
IBM developerWorks, articolo del 6 giugno 2007.
Reperibile all’interno del sito
http://www.ibm.com/developerworks/linux/.
c
[3] Anonimo. Build a Virtual Appliance. VMware 2009.
Reperibile all’url
http://www.vmware.com/appliances/build/how.html.
[4] Daniel Robbins. Traduzione di Paolo Palana. Costruire una distribuzione,
Parte 1; Costruire una distribuzione, Parte 2; Costruire una distribuzione,
Parte 3. Articolo originariamente pubblicato da IBM developerWorks, riportato dal sito di Gentoo, 9 ottobre 2005. Reperibile in Italiano all’url
http://www.gentoo.org/doc/it/articles/making-the-distro-p1.xml.
[5] AA.VV.. Creare un Repository Debian. [email protected], ultimo
aggiornamento dell’articolo 25 febbraio 2009. Reperibile all’interno del sito
http://guide.debianizzati.org/.
[6] R. Fornaca e R. S. Di Pol. Dalla certezza alla complessità. La pedagogia
scientifica del Novecento. Principato, Milano, 1993, sezioni riguardanti le
“scuole attive” e Burner.
[7] Aaron Isotton. Debian Repository Howto. Pubblicato autonomamente dall’autore nel 2002 ed inserito nella documentazione ufficiale Debian.
Reperibile all’interno del sito Internet http://www.debian.org/.
[8] Eelke Folmer Designing Usable and Accessible Games with Interaction Design Patterns. Articolo pubblicato su Gamasutra, 2008. Reperibile all’interno
del sito Internet http://www.gamasutra.com/.
[9] Philippe Lemay. Developing a pattern language for flow experiences in video games. Situated Play, Atti della DiGRA 2007 Conference. Reperibile
all’interno del sito Internet http://www.digra.org/.
[10] Davide Alberani. Differenze tra le distribuzioni Linux. Pluto Journal nr. 22,
dicembre 1998. Reperibile all’url http://www.pluto.it/files/journal/pj9812/.
103
104
BIBLIOGRAFIA
[11] Giulio Destri. Dispense per il corso di Ingegneria del Software. Materiale
per il corso svolto all’Università di Parma, Corso di Laurea Triennale in Informatica, Anno Accademico 2008/2009. Reperibile all’interno della pagina
Internet del corso.
[12] Xavier Calbet. Forget Munich’s Linux Migration, It’s Already Done by
Extremadura. OSnews, articolo del 10 novembre 2005. Reperibile all’url
http://www.osnews.com/story/12611.
[13] AA.VV.. Getting Started with Linux: Glossary. A cura di Linux Online
Inc.. Reperibile all’interno del sito Internet http://www.linux.org/.
[14] Anonimo. Installazione di Linux via rete. OpenSkills, articolo del 18 agosto
2004, ultimo aggiornamento 6 maggio 2005. Reperibile all’interno del sito
Internet http://openskill.info/.
[15] Anonimo. I repository ed il loro utilizzo. [email protected], ultimo aggiornamento 22 febbraio 2009. Reperibile all’interno del sito Internet
http://guide.debianizzati.org/.
[16] David HM Spector. It’s a Cycle of Life Thing: Managing Linux Releases.
O’Reilly, Linux DevCenter, articolo del 17 marzo 2003. Reperibile all’interno
del sito Internet http://www.linuxdevcenter.com/.
[17] Anonimo. Kernel Based Virtual Machine. KVM 2008. Reperibile all’interno
del sito Internet http://www.linux-kvm.org/.
[18] Marco Scotto e Giancarlo Succi. Linux, al di là di Open Source e standard aperti. L’esperienza di COSPA. Fabbrica Europa XIII edizione - “Il
laboratorio del possibile”. Firenze, 6 maggio 2006. Reperibile all’interno del
sito Internet http://www.cospa-project.org/.
[19] Anonimo. Linux Standard Base 4.0 al nono mese. Punto Informatico, anno
XIII, nr. 3091 del 21 ottobre 2008. Reperibile all’interno del sito Internet
http://punto-informatico.it/.
c
[20] AA.VV.. LSB: about. Linux Foundation 2008.
http://www.linuxfoundation.org/en/LSB.
Reperibile all’url
[21] Justin Samuel e Justin Cappos.
Package managers still vulnerable: how to protect your systems.
;login: The Usenix Magazine, febbraio 2009, vol. 34, nr. 1. Indice della pubblicazione all’url
http://www.usenix.org/publications/login/2009-02/index.html.
[22] Anonimo. Red Hat Network. Red Hat Inc., pubblicato nel 2005. Reperibile
all’interno del sito Internet http://www.redhat.com/.
[23] AA.VV.. Repositories, Personal. Ubuntu Documentation, Community
Documentation, ultimo aggiornamento articolo 4 marzo 2009. Reperibile
all’interno del sito http://help.ubuntu.com/.
[24] AA.VV.. Repositories, Ubuntu. Ubuntu Documentation, Community Documentation, ultimo aggiornamento articolo 27 febbraio 2009. Reperibile
all’interno del sito http://help.ubuntu.com/.
BIBLIOGRAFIA
105
[25] George Belotsky.
Rethinking the Linux Distribution.
O’Reilly, OnLamp.com, articolo del 5 ottobre 2007.
Reperibile all’url
http://www.onlamp.com/lpt/a/7004.
[26] Giuliano Marrucci.
Risparmio digitale.
Programma Rai ’Report’ del 29 aprile 2007.
Reperibile all’interno del sito Internet
http://www.report.rai.it/.
[27] Silberschatz, Galvin e Gagne. Sistemi operativi. Concetti ed esempi.,
capitolo 21 (Linux). Pearson & Addison-Wesley, settima edizione, 2006.
[28] Douglas C. Engelbart e altri. The Demo. Video originali su MouseSite.
Reperibile all’url http://sloan.stanford.edu/MouseSite/1968Demo.html.
[29] Jem Matzan. The differences between GNU/Linux distributions. The Jem
Report, articolo del 9 gennaio 2006, ultimo aggiornamento 6 luglio 2007.
Reperibile all’interno del sito Internet http://www.thejemreport.com/.
[30] Chris Walden.
The distro jungle.
IBM developerWorks, articolo del 28 giugno 2007.
Reperibile all’interno del sito
http://www.ibm.com/developerworks/linux/.
[31] Anonimo.
Virtual
Appliances
VMware
Frequently
c
Asked Questions.
VMware 2009.
Reperibile all’url
http://www.vmware.com/appliances/learn/faq.html.
[32] Anonimo. Virtualizzazione: programmi a confronto. GiBiLog di GiBiLogic snc., articolo del novembre 2008. Reperibile all’interno del sito
http://blog.gibilogic.com/.
[33] Livia Iacolare. Traduzione di Alessandro Banchelli.
Web Operating
Systems E Web Desktops: Mini-Guida.
Articolo originale per Master New Media, 8 aprile 2007. Reperibile all’interno del sito Internet
http://www.masternewmedia.org/.
[34] AA.VV.. WebOS: Operating System Services for Wide Area Applications. Presentazione del progetto della Duke University. Reperibile all’url
http://www.cs.duke.edu/ari/issg/webos/.
[35] Mark Allen. What a Linux Distribution Is. The Computer Technology
Documentation Project, articolo del 15 giugno 2000. Reperibile all’interno
del sito Internet http://www.comptechdoc.org/.
Siti Internet consultati
Sono inoltre stati consultati tutti i siti Internet riportati all’interno dell’Appendice D e tutti quelli indicati nel resto del testo che vengono riportati
anche qui di seguito (in ordine alfabetico per nome):
• ABK Orkut Editor : http://abkorkuteditor.sourceforge.net/.
• Aldrin: http://www.aldrin.eu/.
• art.com artPad : http://artpad.art.com/artpad/painter/.
106
BIBLIOGRAFIA
• Avidemux : http://fixounet.free.fr/avidemux/index.html.
• Bristol : http://bristol.sourceforge.net/.
• Buzztard : http://www.buzztard.org/.
• CellWriter : http://risujin.org/cellwriter/.
• Childsplay: http://www.schoolsplay.org/.
• Cloud Computing Community: http://wiki.cloudcommunity.org/.
• Cloudo: http://cloudo.com/.
• CohesiveFT : http://www.cohesiveft.com/.
• Dasher : http://www.inference.phy.cam.ac.uk/dasher/.
• Davide.it: http://www.davide.it/.
• Desktoptwo: http://desktoptwo.com/.
• Distributed Management Task Force, Inc.: http://www.dmtf.org/.
• Documentazione Ubuntu in Italiano: http://wiki.ubuntu-it.org/.
• Drawing for Children: http://drawing.gamemaker.nl/index.html.
• DreamChess: http://www.dreamchess.org/home.html.
• Easy Software Products: http://www.easysw.com/.
• EyeOS.org Open Source Platform: http://www.eyeos.org/.
• Firefox : http://www.mozilla-europe.org/it/firefox/.
• FreeCol : http://www.freecol.org/.
• Freemind : http://freemind.sourceforge.net/wiki/index.php/Main Page.
• FUSS, Free Upgrade in SouthTyrol’s Schools: http://www.fuss.bz.it/.
• GCompris: http://gcompris.net/-it-.
• G.ho.st, Global Hosted Operating System: http://g.ho.st/.
• Gimp: http://www.gimp.org/.
• Glide Digital : http://www.glidedigital.com/.
• Gnome Onscreen Keyboard : http://www.gok.ca/.
• GNOME:
The
Free
http://www.gnome.org/.
Software
Desktop
Project:
• gpaint: http://gpaint.sourceforge.net/.
• gXNeur : http://allmyapps.com/app/gxneur.
• JumpBox : http://www.jumpbox.com/.
• Kdenlive: http://kdenlive.org/.
• K Desktop Environment: http://www.kde.org/.
• Kino: http://www.kinodv.org/.
• KMail : http://kontact.kde.org/kmail/.
• KMouseTool : http://accessibility.kde.org/aids/kmousetool.php.
• KMouth: http://www.schmi-dt.de/kmouth/index.en.html.
• KOffice: http://www.koffice.org/.
BIBLIOGRAFIA
107
• Labyrinth: http://www.gnome.org/∼dscorgie/labyrinth.html.
• Linux Distribution Chooser : http://www.zegeniestudios.net/ldc/.
• Linux Foundation: http://www.linuxfoundation.org/.
• Little Wizard : http://littlewizard.sourceforge.net/.
• Novell : http://www.novell.com/.
• OpenCity: http://opencity.info/.
• OpenOffice.org: http://it.openoffice.org/.
• OpenSSH : http://www.openssh.com/.
• Orca: http://live.gnome.org/Orca.
• Pidgin: http://www.pidgin.im/.
• Quinn Co.: http://www.quinncoincorporated.org/.
• Reconstructor : http://reconstructor.aperantis.com/.
• Reconstructor,
guida
all’utilizzo:
http://wiki.ubuntuit.org/AmministrazioneSistema/BackupDelSistema/Reconstructor.
• Remastersys: http://www.geekconnection.org/remastersys/remastersystool.html.
• Remastersys,
guida
all’utilizzo:
http://wiki.ubuntuit.org/AmministrazioneSistema/BackupDelSistema/Remastersys.
• Semantik : http://freehackers.org/∼tnagy/semantik.html.
• Sco: http://www.sco.com/.
• Squeak : http://www.squeak.org/.
• Squeak Etoys: http://www.squeakland.org/.
• Sugar Labs: http://www.sugarlabs.org/.
• Sumo Paint: http://www.sumopaint.com/.
• TightVNC Software: http://www.tightvnc.com/.
• Thunderbird : http://www.mozillaitalia.it/thunderbird/.
• TuxPaint: http://www.tuxpaint.org/.
• TuxWriter : http://sourceforge.net/projects/tuxwriter/.
• Ubuntu Customization Kit: http://uck.sourceforge.net/.
• Ubuntu Customization Kit, guida all’utilizzo: http://wiki.ubuntuit.org/AmministrazioneSistema/BackupDelSistema/UbuntuCustomizationKit.
• Ubuntu Tweak : http://ubuntu-tweak.com/.
• VirtualAppliances.net: http://virtualappliances.net/.
• VirtualBox : http://www.virtualbox.org/.
• Visual Understanding Environment: http://vue.tufts.edu/.
• VLC media player : http://www.videolan.org/vlc/.
• VMware: http://www.vmware.com/.
• VMware Player : http://www.vmware.com/products/player/.
• Vym: http://www.insilmaril.de/vym/.
• Win32-loader, Debian installer : http://goodbye-microsoft.com/.
108
BIBLIOGRAFIA
• WineHQ: http://www.winehq.org/.
• Wubi Ubuntu Installer : http://wubi-installer.org/.
• Xen: http://www.xen.org/.
• XMind : http://www.xmind.net/.
• X.org Foundation: http://www.x.org/.
Stampata il 19 aprile 2009.