Una distribuzione Linux con scopi pedagogici: analisi e progettazione

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Una distribuzione Linux con scopi pedagogici: analisi e progettazione"

Transcript

1 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 Candidata Chiara Gandolfi Corelatore Ing. Prof. Giulio Destri Anno Accademico 2007/2008

2

3 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...

4

5 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.

6

7 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.

8

9 Indice Introduzione iii 1 I requisiti: tra analisi dei bisogni e idee innovative Il punto di vista pedagogico: obiettivi e desiderata La raccolta dei requisiti: le linee guida per il progetto Requisiti funzionali Altri requisiti Vincoli La foresta delle distribuzioni La struttura logica di una distribuzione Il kernel: struttura e caratteristiche funzionali I principali sotto-sistemi del kernel La modularità Il livello utente: l aspetto del sistema e le applicazioni Il sistema di gestione dei pacchetti Il software repository: la distribuzione di una distribuzione Le modalità di fruizione per un sistema Linux Evoluzioni recenti Il Linux Standard Base: la ricerca verso l interoperabilità Una tassonomia per le distribuzioni esistenti Le tre grandi famiglie Le famiglie minori I solitari Approcci alla creazione di una nuova distribuzione Analisi e progettazione Analisi: Casi d Uso e descrizione del sistema Definizione e descrizione dei Casi d Uso Il meccanismo dell improving Progettazione: le linee guida per la realizzazione Il punto di partenza Stile dell ambiente Le applicazioni I messaggi La gestione dei pacchetti Le modalità di fruizione previste Cosa ci sarà nella confezione i

10 ii INDICE Le fasi successive Conclusioni Risultati ottenuti Possibili sviluppi 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

11 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

12 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.

13 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

14 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. 3 Si 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.

15 1.1. IL PUNTO DI VISTA PEDAGOGICO: OBIETTIVI E DESIDERATA 3 A tal fine l affidarsi al mondo del Software Libero 5 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

16 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 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

17 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 mentali 8 (come ad esempio Labyrinth 9 ), eventualmente seguito, nel percorso 6 Sito Internet del progetto: 7 Sito Internet del progetto: 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: dscorgie/labyrinth.html

18 6CAPITOLO 1. I REQUISITI: TRA ANALISI DEI BISOGNI E IDEE INNOVATIVE di improving, da uno per le mappe concettuali 10 (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: Page 12 Sito Internet del progetto:

19 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 s 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ù.

20 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 assistiva 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.

21 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 multimediali 15, 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 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.

22 10CAPITOLO 1. I REQUISITI: TRA ANALISI DEI BISOGNI E IDEE INNOVATIVE

23 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 Linux 1, 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 Software 2 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.com 4 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 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

24 12 CAPITOLO 2. LA FORESTA DELLE DISTRIBUZIONI Figura 2.1: Le distribuzioni Linux indicate da DistroWatch.com come attive.

25 2.1. LA STRUTTURA LOGICA DI UNA DISTRIBUZIONE 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 Gnu 6 ) 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 Si tratta del window manager utilizzato di default da Gnome. 8 Sito Internet del progetto, per approfondimenti:

26 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 Source 10, 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 10 cfr. nota 2 11 cfr. nota 2

27 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 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

28 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.

29 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:

30 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 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 stesso 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

31 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 GNOME 14 e KDE 15. 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 Wine 16 ); 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 è 15 Per avere notizie a riguardo, il sito Internet del progetto è 16 Per avere informazioni a riguardo:

32 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.

33 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 Edition 19 ; 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 esso 20 e altre che lo impediscono tassativamente 21, 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. 20 Come ad esempio gos. 21 Come ad esempio Ututo.

34 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 software 23. 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. 23 Spesso 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.

35 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 software 24 ; 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

36 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 BSD 25, 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 Products 26, 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 non considerato in questa sede. 26 Per informazioni:

37 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

38 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 funzionali 29. 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à.

39 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

40 28 CAPITOLO 2. LA FORESTA DELLE DISTRIBUZIONI Figura 2.6: L albero standard delle cartelle di un repository automatico Debian.

41 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.

42 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

43 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 OpenSSH 31 ) e quelli che invece permettono l accesso in modo grafico, stile De- 31 Per informazioni:

44 32 CAPITOLO 2. LA FORESTA DELLE DISTRIBUZIONI sktop remoto (come ad esempio TightVNC 32 ). 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:

45 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 informazioni: 34 Per informazioni:

46 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 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

47 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 ) e Lime JeOS della Novell 36. 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 VMware 38, Elastic Server di CohesiveFT 39, JumpBox 40, rbuilder di rpath 41, SUSE Studio di Novell 42 e VirtualAppliances.net 43. 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: 37 Si tratta di un gruppo di società del settore IT. Per informazioni: 38 Per maggiori informazioni: 39 Per informazioni: 40 Per informazioni: 41 Società che sviluppa anche una distribuzione omonima. 42 cfr. nota Per informazioni:

48 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 origini 47 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: 45 Per approfondimenti: 46 Per approfondimenti: 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:

49 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 documentazione 48 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 approfondimenti: 49 Per approfondimenti:

50 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 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: 51 Per approfondimenti: 52 Per approfondimenti: 53 Per informazioni:

51 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 famiglie 54. 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 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 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.

52 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

53 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 Novell 55. 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

54 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 Debian 56 è 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.

55 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;

56 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 Ltd 57, 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.

57 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 OEMs 58. 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 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

58 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.

59 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 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 articoli 59. 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]

60 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 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

61 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.

62 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.

63 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 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

64 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 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.

65 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.

66 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

67 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.

68 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.

69 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.

70 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.

71 3.1. ANALISI: CASI D USO E DESCRIZIONE DEL SISTEMA 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. riferimento bibliografico [8] 2 cfr. riferimento bibliografico [9]

72 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.

73 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 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. riferimento bibliografico [9] 4 cfr. riferimento bibliografico [9]

74 62 CAPITOLO 3. ANALISI E PROGETTAZIONE 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 Ubuntu 5 nella versione 8.04, l ultima LTS (Long Term Support), la cui versione desktop verrà supportata fino all aprile del La scelta di Ubuntu deriva dall osservazione delle caratteristiche indicate nella sezione 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 quadrettato 6, 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 Kit 7 (preferibile), Remastersys 8 e Reconstructor 9 (usati nell ordine, in caso si riscontrino problemi). 5 Documentazione in Italiano all indirizzo 6 Non 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: Sito Internet del progetto: 8 Pagina contenente la guida all uso in Italiano: Sito Internet del progetto: 9 Pagina contenente la guida all uso in Italiano: Sito Internet del progetto:

75 3.2. PROGETTAZIONE: LE LINEE GUIDA PER LA REALIZZAZIONE 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 semplice 11 ; 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: 11 Come tema traccia potrà essere utilizzato Obsidian Cursors, completo e presentato in modo chiaro, reperibile all indirizzo Internet

76 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 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.it 12 ), 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 indivi- 12 Sito Internet del progetto:

77 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 semplici 13 d apprendimento: la suite GCompris 14 in Italiano; in alternativa la suite Childsplay 15 anch essa disponibile anche in Italiano. Riproduttore multimediale di base: VLC media player 16 eventualmente rivedendone l interfaccia. Controllo volume: quello già presente nella distribuzione di base. Editor di testo arricchito : il migliore probabilmente sarà Tux Writer 17, solo che per ora è ancora in fase di progettazione; inizialmente potrebbe essere utilizzato ABK Orkut Editor 18, una volta tradotto. Programma di disegno semplice: TuxPaint 19. Sistema autore semplice: Squeak Etoys 20 ; in alternativa esiste Little Wizard 21, 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 DreamChess 22 ), si può arrivare a giochi di strategia e/o simulazione (come FreeCol 23, di strategia ambientato durante la colonizzazione degli Stati 14 Sito Intenet del progetto in Italiano: 15 Sito Internet del progetto: 16 Sito Internet del progetto: 17 Sito Internet del progetto: 18 Sito Internet del progetto: 19 Sito Internet del progetto, già citato: 20 Sito Internet del progetto, già citato: 21 Sito Internet del progetto: 22 Sito Internet del progetto: 23 Sito Internet del progetto:

78 66 CAPITOLO 3. ANALISI E PROGETTAZIONE Uniti, o OpenCity 24, 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-line 25 ; una prima alternativa potrebbe essere Drawing for Children 26 o quella di passare semplicemente ad un programma con interfaccia più tradizionale e più ricco nelle possibilità come gpaint 27. Sistema autore più completo: Squeak 28. Programma per realizzare mappe mentali: Semantik 29 ; in alternativa Labyrinth 30. Programma per realizzare mappe concettuali: FreeMind 31, che permette la creazione di mappe sia mentali che concettuali; le alternative possibili sono Vym 32, Visual Understanding Environment 33 e XMind 34. Incrementali presenti da subito: potrebbe rivelarsi per- Personalizzazione ambiente desktop: Ubuntu Tweak 35 fetto e facilmente suddivisibile in livelli. Presentazioni: Impress appartenente alla suite OpenOffice.org 36 (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 KOffice 37 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: Pidgin 38, che permette di scegliere tra diversi protocolli e canali ed è abbastanza semplice. Browser: Firefox 39, 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: 25 Sito Internet: 26 Sito Internet del progetto: 27 Sito Internet del progetto: 28 Sito Internet del progetto, già citato: 29 Sito Internet del progetto: tnagy/semantik.html 30 Sito Internet del progetto, già citato: dscorgie/labyrinth.html 31 Sito Internet del progetto, già citato: Page 32 Sito Internet del progetto: 33 Sito Internet del progetto: 34 Sito Internet del progetto: 35 Sito Internet del progetto: 36 Sito Internet del progetto: 37 Sito Internet del progetto: 38 Sito Internet del progetto: 39 Sito Internet del progetto:

79 3.2. PROGETTAZIONE: LE LINEE GUIDA PER LA REALIZZAZIONE 67 Editor audio: le alternative interessanti sono Aldrin 40, semplice ma comunque classico, Buzztard 41, che presenta una modalità di gestione delle tracce che ricorda le mappe mentali alle quali potrebbe venire correlato nel percorso di improving, o Bristol 42, 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: Gimp 43 è 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 Paint 44, via di mezzo tra un programma di disegno ed un editor fotografico. Videoeditor: Avidemux 45 può essere abbastanza semplice; Gimp presenta la possibilità di integrare un modulo per gestire animazioni; alternative possono essere Kino 46 e Kdenlive 47. Posta elettronica: Thunderbird 48, 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 KMail 49. 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 Internet del progetto: 41 Sito Internet del progetto: 42 Sito Internet del progetto: 43 Sito Internet del progetto: 44 Sito Internet del progetto: 45 Sito Internet del progetto: 46 Sito Internet del progetto: 47 Sito Internet del progetto: 48 Sito Internet del progetto: 49 Sito Internet del progetto:

80 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: CellWriter 51, Dasher 52, Orca 53, Gnome Onscreen Keyboard 54, gxneur 55, KMouseTool 56, KMouth 57 (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 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 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 51 Per il riconoscimento della scrittura manuale. Sito Internet: 52 Per la scrittura senza tastiera. Sito Internet: 53 Lettore ed ingranditore dello schermo. Sito Internet: 54 Tastiera a schermo. Sito Internet: 55 Convertitore di layout di tastiera automatico. Sito Internet (visto che quello ufficiale è solo in Russo): 56 Cliccher automatico. Sito Internet: 57 Lettore vocale. Sito Internet:

81 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 repository 58 (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].

82 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 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 aperto 59 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 prestazioni 60. 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 necessarie 61 : 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 e riferimenti bibliografici [3], [31] e [32] 60 Si 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.

83 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 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 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

84 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.

85 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

86 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:

87 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

88 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.

89 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 Edu- Knoppix. 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 Spagna 1, sia l emulo sviluppato successivamente in Italia 2, iniziativa decisamente più modesta ma non per questo 1 Per approfondimenti cfr. riferimenti bibliografici [18] e [12] 2 Per approfondimenti: e riferimento bibliografico [26] 77

90 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 decollare 3 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 Logo 4 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 è 4 Logo è un linguaggio di programmazione fortemente orientato alla grafica e alla geometria di base.

91 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!

92 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.

93 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 computer 5, soltanto più adatto ai bambini. 5 cfr. riferimento bibliografico [28]

94 82 APPENDICE B. PRIMA INTERVISTA AL COMMITTENTE

95 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 Si riportano, quindi, gli screenshots delle finestre che vengono consecutivamente visualizzate aprendo il programma. Livello 1 Finestre tutorial di avvio: delle 3 rimane 2 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: 2 Quando 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. 83

96 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.

CAPITOLO 5 - Sistemi Operativi Moderni

CAPITOLO 5 - Sistemi Operativi Moderni CAPITOLO 5 - Sistemi Operativi Moderni PRESENTAZIONE DI INSIEME Vedremo ora come si è evoluta nel tempo la struttura di un sistema operativo, per passare dalle vecchie strutture di tipo normalmente modulari,

Dettagli

CAPITOLO 1 I SISTEMI OPERATIVI

CAPITOLO 1 I SISTEMI OPERATIVI CAPITOLO 1 I SISTEMI OPERATIVI Introduzione ai sistemi operativi pag. 3 La shell pag. 3 Tipi di sistemi operativi pag. 4 I servizi del sistema operativo pag. 4 La gestione dei file e il file system Il

Dettagli

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi Evoluzione dei sistemi operativi (4) Sistemi multiprogrammati! più programmi sono caricati in contemporaneamente, e l elaborazione passa periodicamente dall uno all altro Evoluzione dei sistemi operativi

Dettagli

Sistema Operativo Compilatore

Sistema Operativo Compilatore MASTER Information Technology Excellence Road (I.T.E.R.) Sistema Operativo Compilatore Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Il Sistema

Dettagli

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore

Dettagli

Sistemi informatici. Informatica. Il software. Il sw di sistema. Il sw applicativo. Il sw di sistema. Il sistema operativo. Hardware.

Sistemi informatici. Informatica. Il software. Il sw di sistema. Il sw applicativo. Il sw di sistema. Il sistema operativo. Hardware. http://159.149.98.238/lanzavecchia/docum enti/sscta.htm Sistemi informatici Hardware Microprocessore Memoria Periferiche di input e output Software Software di sistema Programmi applicativi 1 2 Il sw applicativo

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 1 Sistema software 1 Prerequisiti Utilizzo elementare di un computer Significato elementare di programma e dati Sistema operativo 2 1 Introduzione In questa Unità studiamo

Dettagli

Informatica di Base. Il software

Informatica di Base. Il software di Base 1 Sistemi informatici Hardware Microprocessore Memoria Periferiche di input e output Software Software di sistema Programmi applicativi 2 Il sw applicativo Il sw applicativo è costituito dall insieme

Dettagli

ALL. C AFFIDAMENTO AI SENSI DELL ART. 125, COMMI 10 E 11, DEL D.LGS. 163/2006 E S.M.I. DELLA PROGETTAZIONE E REALIZZAZIONE DI UN

ALL. C AFFIDAMENTO AI SENSI DELL ART. 125, COMMI 10 E 11, DEL D.LGS. 163/2006 E S.M.I. DELLA PROGETTAZIONE E REALIZZAZIONE DI UN ALL. C AFFIDAMENTO AI SENSI DELL ART. 125, COMMI 10 E 11, DEL D.LGS. 163/2006 E S.M.I. DELLA PROGETTAZIONE E REALIZZAZIONE DI UN PORTALE WEB NELL AMBITO DELLA MISURA 2.6. DEL POI ENERGIA FESR 2007 2013

Dettagli

Classificazione del software

Classificazione del software Classificazione del software Classificazione dei software Sulla base del loro utilizzo, i programmi si distinguono in: SOFTWARE Sistema operativo Software applicativo Sistema operativo: una definizione

Dettagli

Prefazione. Contenuti

Prefazione. Contenuti Prefazione Il sistema operativo costituisce uno dei componenti fondamentali di ogni sistema di elaborazione, in particolare è quello con cui l utente entra direttamente in contatto quando accede al sistema,

Dettagli

Il Sistema Operativo (1)

Il Sistema Operativo (1) E il software fondamentale del computer, gestisce tutto il suo funzionamento e crea un interfaccia con l utente. Le sue funzioni principali sono: Il Sistema Operativo (1) La gestione dell unità centrale

Dettagli

Capitolo 1 Introduzione a Gambas

Capitolo 1 Introduzione a Gambas Capitolo 1 Introduzione a Gambas Gambas è stato creato inizialmente da Benoit Minisini, un residente della periferia di Parigi. Secondo Benoit, Gambas è un linguaggio Basic con estensioni per la programmazione

Dettagli

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico Impossibile visualizzare l'immagine. Struttura di un sistema operativo Struttura dei Sistemi Operativi Servizi di un sistema operativo Interfaccia Utente Capitolo 2 -- Silberschatz Chiamate di sistema

Dettagli

Componenti hardware del sistema LIM

Componenti hardware del sistema LIM LIM Componenti hardware del sistema LIM Componenti hardware del sistema LIM Il modulo intende accertare nel candidato il livello di possesso delle competenze digitali relative sia ai fondamenti dell hardware

Dettagli

Sistemi Operativi. Funzioni e strategie di progettazione: dai kernel monolitici alle macchine virtuali

Sistemi Operativi. Funzioni e strategie di progettazione: dai kernel monolitici alle macchine virtuali Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Funzioni e strategie di progettazione: dai kernel monolitici

Dettagli

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

Dettagli

Sommario della lezione

Sommario della lezione Sistemi Operativi Docente: Ugo Erra ugoerr+so@dia.unisa.it 2 LEZIONE STRUTTURE DEI SISTEMI OPERATIVI CORSO DI LAUREA TRIENNALE IN INFORMATICA UNIVERSITA DEGLI STUDI DELLA BASILICATA Sommario della lezione

Dettagli

2. Strutture dei Sistemi Operativi

2. Strutture dei Sistemi Operativi 1 2. Strutture dei Sistemi Operativi Quali servizi un generico sistema operativo mette a disposizione degli utenti, e dei programmi che gli utenti vogliono eseguire? interfaccia col sistema operativo stesso

Dettagli

comuni ai moderni SO sui quali il corso è incentrato Definizione di sistema operativo

comuni ai moderni SO sui quali il corso è incentrato Definizione di sistema operativo Il Sistema Operativo (SO) è una parte essenziale di un sistema di calcolo In generale un SO è un insieme di programmi che agisce come intermediario tra utenti e hardware di un computer. Esiste un insieme

Dettagli

Capitolo 2 -- Silberschatz

Capitolo 2 -- Silberschatz Struttura dei Sistemi Operativi Capitolo 2 -- Silberschatz Struttura di un sistema operativo Servizi di un sistema operativo Interfaccia Utente Chiamate di sistema Tipi di chiamate Programma di sistema

Dettagli

Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia

Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Introduzione: 1. Principi di base dei sistemi operativi 2. Sistemi

Dettagli

I SISTEMI OPERATIVI CONCETTI INTRODUTTIVI

I SISTEMI OPERATIVI CONCETTI INTRODUTTIVI I SISTEMI OPERATIVI CONCETTI INTRODUTTIVI Il Software Software di Base Sistema Operativo (Software di base essenziale) Software di base non essenziale Utility Driver Software applicativi (Applicazioni)

Dettagli

Come fare a leggere questi dati generati da un programma windows?

Come fare a leggere questi dati generati da un programma windows? Come fare a leggere questi dati generati da un programma windows? A questo punto siamo in possesso di tutti gli elementi per sfruttare appieno le potenzialità di Linux: sappiamo destreggiarci (mai abbastanza)

Dettagli

Capitolo 5: I thread

Capitolo 5: I thread Capitolo 5: I thread Generalità. Modelli multithread. Problematiche relative ai thread. Pthread. 5.1 I thread Il thread è un flusso di controllo relativo ad un dato processo. Molti sistemi operativi moderni

Dettagli

Architetture Applicative

Architetture Applicative Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture

Dettagli

Funzioni del Sistema Operativo

Funzioni del Sistema Operativo Il Software I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (ferramenta). La struttura del calcolatore può essere schematizzata come una serie di

Dettagli

Software e Sistemi Operativi Prof. Maurizio Naldi A.A. 2015/16

Software e Sistemi Operativi Prof. Maurizio Naldi A.A. 2015/16 Software e Sistemi Operativi Prof. Maurizio Naldi A.A. 2015/16 Cosa vedremo Il software applicativo Categorie di SW Il sistema operativo Gestione programmi in esecuzione (processi) Gestione memoria Gestione

Dettagli

MANUALE MOODLE. Gestione Materiale Didattico

MANUALE MOODLE. Gestione Materiale Didattico MANUALE MOODLE Gestione Materiale Didattico 1 INDICE 1. INTRODUZIONE E DEFINIZIONE DI UN CORSO MOODLE... 4 2. FORMATO DI UN CORSO MOODLE... 6 2.1. Impostazione del formato di un corso Moodle... 6 2.2.

Dettagli

Il Concetto di Processo

Il Concetto di Processo Processi e Thread Il Concetto di Processo Il processo è un programma in esecuzione. È l unità di esecuzione all interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono

Dettagli

ECDL Base. ECDL Full Standard

ECDL Base. ECDL Full Standard http://www.nuovaecdl.it/ Modulo ECDL Base ECDL Full Standard ECDL Standard Computer Essentials Sì Sì Sì (1) Online Essentials Sì Sì Sì (1) Word Processing Sì Sì Sì (1) Spreadsheets Sì Sì Sì (1) IT Security

Dettagli

EIPASS Junior Programma analitico d esame Scuola Primaria

EIPASS Junior Programma analitico d esame Scuola Primaria eipass EIPASS Junior Programma analitico d esame Scuola Primaria Programma analitico d esame EIPASS Junior Scuola Primaria Premessa La nascita, lo sviluppo e il consolidamento delle competenze digitali

Dettagli

Sistema Operativo e Applicativi

Sistema Operativo e Applicativi Sistema Operativo e Applicativi Modulo di Informatica Dott.sa Sara Zuppiroli A.A. 2012-2013 Modulo di Informatica () Software A.A. 2012-2013 1 / 36 Software Conosciamo due classi di software: Programmi

Dettagli

1.2.1.1 DEFINIZIONE DI SOFTWARE

1.2.1.1 DEFINIZIONE DI SOFTWARE Software 1.2 1.2.1.1 DEFINIZIONE DI SOFTWARE Il computer non è in grado di svolgere alcun compito autonomamente Esso può eseguire svariati compiti soltanto se viene opportunamente istruito Ciò avviene

Dettagli

Infrastrutture Software

Infrastrutture Software Infrastrutture Software I componenti fisici di un sistema informatico sono resi accessibili agli utenti attraverso un complesso di strumenti software finalizzati all utilizzo dell architettura. Si tratta

Dettagli

Hardware & Software negli ambienti di apprendimento

Hardware & Software negli ambienti di apprendimento TEACHER Hardware & Software negli ambienti di apprendimento Hardware & Software negli ambienti di apprendimento Il modulo intende accertare nel candidato il possesso delle competenze digitali relative

Dettagli

Corso base GNU/Linux 2014. Latina Linux Group. Sito web: www.llg.it. Mailing list:http://lists.linux.it/listinfo/latina

Corso base GNU/Linux 2014. Latina Linux Group. Sito web: www.llg.it. Mailing list:http://lists.linux.it/listinfo/latina Corso base GNU/Linux 2014 Latina Linux Group Sito web: www.llg.it Mailing list:http://lists.linux.it/listinfo/latina 1 / 34 Obiettivi di questo incontro Fornire delle informazioni di base sul funzionamento

Dettagli

Il sistema operativo

Il sistema operativo Il sistema operativo Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Cos è un Sistema Operativo? Per capirlo, immaginiamo inizialmente

Dettagli

Introduzione Il sistema operativo Linux è oggi una delle principali distribuzioni di Unix, in grado di portare in ogni PC tutta la potenza e la flessibilità di una workstation Unix e un set completo di

Dettagli

Strutture dei sistemi operativi

Strutture dei sistemi operativi Contenuti della lezione di oggi Strutture dei sistemi operativi Descrizione dei servizi messi a disposizione dell utente dal SO Utente generico Programmatore Esame delle possibili strutture di un SO Monolitica

Dettagli

Programma Scuola Primaria EIPASS JUNIOR

Programma Scuola Primaria EIPASS JUNIOR Programma Scuola Primaria EIPASS JUNIOR Premessa La nascita, lo sviluppo e il consolidamento delle competenze digitali di base in soggetti in età scolare (8-13 anni) rappresentano, a tutt oggi, una fra

Dettagli

Processi e thread. Dipartimento di Informatica Università di Verona, Italy. Sommario

Processi e thread. Dipartimento di Informatica Università di Verona, Italy. Sommario Processi e thread Dipartimento di Informatica Università di Verona, Italy Sommario Concetto di processo Stati di un processo Operazioni e relazioni tra processi Concetto di thread Gestione dei processi

Dettagli

COLLABORATIVE E-LEARNING: UN APPLICAZIONE PRATICA NELLE POLITICHE DI PREVENZIONE SOCIO-SANITARIA Elisabetta Simeoni, Giovanni Serpelloni, Diana Candio

COLLABORATIVE E-LEARNING: UN APPLICAZIONE PRATICA NELLE POLITICHE DI PREVENZIONE SOCIO-SANITARIA Elisabetta Simeoni, Giovanni Serpelloni, Diana Candio COLLABORATIVE E-LEARNING: UN APPLICAZIONE PRATICA NELLE POLITICHE DI PREVENZIONE SOCIO-SANITARIA Elisabetta Simeoni, Giovanni Serpelloni, Diana Candio INTRODUZIONE Nell ambito delle politiche socio-sanitarie,

Dettagli

4.0 IL PROGETTO EDUCATIVO

4.0 IL PROGETTO EDUCATIVO 4.0 IL PROGETTO EDUCATIVO 4. 1 LA MISSION La Direzione Didattica San Giovanni conferma le scelte educative delineate nel corso degli ultimi anni, coerenti con le finalità e gli obiettivi del sistema nazionale

Dettagli

Syllabus di Elementi di Informatica la scuola dell obbligo anno 2010

Syllabus di Elementi di Informatica la scuola dell obbligo anno 2010 Ministero dell Istruzione, dell Università e della Ricerca Dipartimento per l Istruzione Direzione Generale per gli Ordinamenti del Sistema Nazionale di Istruzione e per l Autonomia Scolastica Syllabus

Dettagli

Introduzione ai Sistemi Operativi

Introduzione ai Sistemi Operativi Introduzione ai Sistemi Operativi Sistema Operativo Software! Applicazioni! Sistema Operativo! È il livello di SW con cui! interagisce l utente! e comprende! programmi quali :! Compilatori! Editori di

Dettagli

New Team Up in English Flip-Book Guida all uso

New Team Up in English Flip-Book Guida all uso New Team Up in English Flip-Book Indice 1 Introduzione p. 3 2 Procedura d avvio p. 4 2. 1 Procedura per PC WIN p. 4 2. 2 Procedura per Mac p. 4 2. 3 Procedura per Linux p. 4 3 Creazione del profilo p.

Dettagli

Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria Elettronica SISTEMI OPERATIVI STRUTTURE DEI SISTEMI OPERATIVI

Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria Elettronica SISTEMI OPERATIVI STRUTTURE DEI SISTEMI OPERATIVI Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria Elettronica SISTEMI OPERATIVI STRUTTURE DEI SISTEMI OPERATIVI SERVIZI DI UN SISTEMA OPERATIVO Panoramica dei servizi del sistema

Dettagli

Strutture dei Sistemi Operativi

Strutture dei Sistemi Operativi Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate di sistema Programmi di sistema Struttura del sistema Macchine virtuali Progetto e implementazione di sistemi

Dettagli

Il sistema di elaborazione

Il sistema di elaborazione Il sistema di elaborazione Hardware e software Hardware e software Un sistema di elaborazione è formato da: parti hardware: componenti fisiche parti software: componenti logiche i dati da trattare le correlazioni

Dettagli

Software. Definizione, tipologie, progettazione

Software. Definizione, tipologie, progettazione Software Definizione, tipologie, progettazione Definizione di software Dopo l hardware analizziamo l altra componente fondamentale di un sistema di elaborazione. La macchina come insieme di componenti

Dettagli

Principi dell ingegneria del software Relazioni fra

Principi dell ingegneria del software Relazioni fra Sommario Principi dell ingegneria del software Leggere Cap. 3 Ghezzi et al. Principi dell ingegneria del software Relazioni fra Principi Metodi e tecniche Metodologie Strumenti Descrizione dei principi

Dettagli

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo Il Sistema Operativo Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo ... ma Cos'è un S.O.? un PROGRAMMA!... ma Cos'è un programma? PROGRAMMA: 1. algoritmo sequenza

Dettagli

Le principali novità di Windows XP

Le principali novità di Windows XP Le principali novità di Windows XP di Gemma Francone supporto tecnico di Mario Rinina La nuova versione di Windows XP presenta diverse nuove funzioni, mentre altre costituiscono un evoluzione di quelle

Dettagli

PROGRAMMAZIONE DIDATTICA DISCIPLINARE

PROGRAMMAZIONE DIDATTICA DISCIPLINARE Pag. 1 di 8 PROGRAMMAZIONE DIDATTICA DISCIPLINARE Disciplina Tecnologie informatiche a.s. 2015/2016 Classe: 1 a Sez. Q,R,S Docente : Prof. Emanuele Ghironi / Prof.Davide Colella Pag. 2 di 8 PERCORSI MULTIDISCIPLINARI/INTERDISCIPLINARI

Dettagli

Abilità Informatiche A.A. 2010/2011 Lezione 4: SoftWare. Facoltà di Lingue e Letterature Straniere

Abilità Informatiche A.A. 2010/2011 Lezione 4: SoftWare. Facoltà di Lingue e Letterature Straniere Abilità Informatiche A.A. 2010/2011 Lezione 4: SoftWare Facoltà di Lingue e Letterature Straniere Software È un insieme di programmi che permettono di trasformare un insieme di circuiti elettronici (=

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi a.a. 2010/2011 Francesco Fontanella Il Sistema Operativo Sistema Operativo 2 Il Sistema Operativo Il Sistema Operativo è uno strato

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Il Sistema Operativo Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela Fogli Cos

Dettagli

Albano Squizzato ingsquizzato@libero.it. Moodle-manuale. manuale per il docente. Generazione Web 2013-14 - G9

Albano Squizzato ingsquizzato@libero.it. Moodle-manuale. manuale per il docente. Generazione Web 2013-14 - G9 Albano Squizzato ingsquizzato@libero.it Moodle-manuale manuale per il docente Generazione Web 2013-14 - G9 Come utilizzare Moodle La versatilità di Moodle consente la totale personalizzazione dell interfaccia,

Dettagli

IBM Tivoli Storage Manager for Virtual Environments

IBM Tivoli Storage Manager for Virtual Environments Scheda tecnica IBM Storage Manager for Virtual Environments Backup senza interruzioni e ripristino immediato: un processo più semplice e lineare Caratteristiche principali Semplificare la gestione del

Dettagli

Corso di formazione CORSO DI FORMAZIONE. Prof. Marco Scancarello Prof.ssa Carolina Biscossi Email: didatticaelim@gmail.com

Corso di formazione CORSO DI FORMAZIONE. Prof. Marco Scancarello Prof.ssa Carolina Biscossi Email: didatticaelim@gmail.com Corso di formazione CORSO DI FORMAZIONE Prof. Marco Scancarello Prof.ssa Carolina Biscossi Email: didatticaelim@gmail.com IL CORSO L utilizzo sempre più frequente delle nuove tecnologie nella vita quotidiana

Dettagli

ECDL Online Collaboration: il Web 2.0 consapevole

ECDL Online Collaboration: il Web 2.0 consapevole ECDL Online Collaboration: il Web 2.0 consapevole Marina Cabrini Membro del gruppo di lavoro ECDL presso la ECDL Foundation Dublin mcabrini@sicef.ch l mondo dell informatica è in perenne movimento ed evoluzione,

Dettagli

27/03/2013. Contenuti

27/03/2013. Contenuti Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano Contenuti Virtualizzazione - 3 Macchina virtuale - 4 Architetture delle macchine virtuali - 6 Tipi di virtualizzazione - 7 Monitor della

Dettagli

D3.1 Documento di analisi della visualizzazione 3D in ambiente Cloud e relative problematiche

D3.1 Documento di analisi della visualizzazione 3D in ambiente Cloud e relative problematiche D3.1 Documento di analisi della visualizzazione 3D in ambiente Cloud e relative problematiche Il Cloud Computing La visualizzazione nella Cloud Problematiche Virtualizzazione della GPU Front end Virtualization

Dettagli

Secondo la Free Software Foundation, un software si può definire libero solo se garantisce quattro "libertà fondamentali":

Secondo la Free Software Foundation, un software si può definire libero solo se garantisce quattro libertà fondamentali: OPEN SOFTWARE Tecnicamente, Open Source significa a codice sorgente aperto. La maggior parte dei programmi sono infatti scritti in linguaggi (più o meno) leggibili dagli umani, quali il C, C++, C#, ecc.;

Dettagli

DOL Modular Formazione online per insegnanti della scuola italiana Offerta didattica

DOL Modular Formazione online per insegnanti della scuola italiana Offerta didattica DOL Modular Formazione online per insegnanti della scuola italiana Offerta didattica A cura dello staff DOL Formazione online per insegnanti della scuola italiana si rivolge a docenti di qualsiasi livello

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica Il software Dipartimento di Ingegneria dell Informazione Universitàdegli Studi di Parma SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono

Dettagli

EIPASS Lim. Programma analitico d esame. ver. 3.0

EIPASS Lim. Programma analitico d esame. ver. 3.0 EIPASS Lim Programma analitico d esame ver. 3.0 Pagina 2 di 26 Premessa L impiego di risorse hardware e software in contesti di apprendimento rappresenta una delle tematiche più discusse nell attuale panorama

Dettagli

Modulo 1: Le I.C.T. UD 1.5a: Software e Sistemi Operativi IL SOFTWARE. Prof. Alberto Postiglione. Curtin, cap. 6.1

Modulo 1: Le I.C.T. UD 1.5a: Software e Sistemi Operativi IL SOFTWARE. Prof. Alberto Postiglione. Curtin, cap. 6.1 Modulo 1: Le I.C.T. : Software e Sistemi Operativi IL SOFTWARE Prof. Alberto Postiglione Curtin, cap. 6.1 Corso di Informatica Generale (AA 07-08) Corso di Laurea in Scienze della Comunicazione Università

Dettagli

PROGRAMMAZIONE INFORMATICA PRIMO BIENNIO. Opzione Scienze Applicate

PROGRAMMAZIONE INFORMATICA PRIMO BIENNIO. Opzione Scienze Applicate PROGRAMMAZIONE INFORMATICA PRIMO BIENNIO Opzione Scienze Applicate Anno scolastico 2015-2016 Programmazione di Informatica pag. 2 / 8 INFORMATICA - PRIMO BIENNIO OBIETTIVI SPECIFICI DI APPRENDIMENTO DELL

Dettagli

PON 2009-2011 Innovazione e Crescita a Supporto dell Efficienza dei Servizi per il Lavoro

PON 2009-2011 Innovazione e Crescita a Supporto dell Efficienza dei Servizi per il Lavoro PON 2009-2011 Innovazione e Crescita a Supporto dell Efficienza dei Servizi per il Lavoro Requisiti tecnici per la produzione di moduli formativi destinati all offerta didattica del progetto INCREASE Allegato

Dettagli

Virtual meeting istruzioni per l uso v 1.0 del 10 aprile 2012 - by LucioTS

Virtual meeting istruzioni per l uso v 1.0 del 10 aprile 2012 - by LucioTS Qui di seguito le istruzioni per partecipare ai virtual meeting 3rotaie. Il software (ad uso gratuito per scopi non commerciali) scelto è TeamViewer (scaricabile da http://www.teamviewer.com) che la momento

Dettagli

Indice degli argomenti del s.o. Software. Software. Buona lezione a tutti!! SISTEMI OPERATIVI

Indice degli argomenti del s.o. Software. Software. Buona lezione a tutti!! SISTEMI OPERATIVI Buona lezione a tutti!! SISTEMI OPERATIVI Gli appunti sono disponibili per tutti gratis sul sito personale del Prof M. Simone al link: www.ascuoladi.135.it nella pagina web programmazione, sezione classi

Dettagli

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

INFORMATICA. Il Sistema Operativo. di Roberta Molinari INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:

Dettagli

Novell ZENworks Configuration Management in ambiente Microsoft * Windows *

Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Guida GESTIONE SISTEMI www.novell.com Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Novell ZENworks Configuration Management in ambiente Microsoft Windows Indice: 2..... Benvenuti

Dettagli

3. Gestione di un sistema operativo a interfaccia grafica (elementi di base) 3.1 Software

3. Gestione di un sistema operativo a interfaccia grafica (elementi di base) 3.1 Software Pagina 29 di 47 3. Gestione di un sistema operativo a interfaccia grafica (elementi di base) 3.1 Software Come abbiamo già detto in precedenza, l informatica si divide in due grandi mondi : l hardware

Dettagli

Portale ScuolaMia. Guida all utilizzo del Portale. Il Portale ScuolaMia Guida all utilizzo del Portale Progetto Servizi Scuola-Famiglia via web

Portale ScuolaMia. Guida all utilizzo del Portale. Il Portale ScuolaMia Guida all utilizzo del Portale Progetto Servizi Scuola-Famiglia via web Portale ScuolaMia Guida all utilizzo del Portale Il Portale ScuolaMia Guida all utilizzo del Portale Progetto Servizi Scuola-Famiglia via web VERSIONE 1.0 DEL 17 FEBBRAIO 2010 INDICE IL PORTALE SCUOLAMIA...

Dettagli

1 Che cos è bsmart.it

1 Che cos è bsmart.it Scopri quali novità ti aspettano per l anno scolastico 2013-2014 1 Che cos è bsmart.it bsmart.it è un ambiente gratuito per insegnare e per apprendere, che aprirà a insegnanti e a studenti di tutta Italia

Dettagli

Ingegneria del Software Interattivo. - I siti web - Un breve glossario. Un breve glossario (cont.) Parte sesta: I siti web. 1.

Ingegneria del Software Interattivo. - I siti web - Un breve glossario. Un breve glossario (cont.) Parte sesta: I siti web. 1. Parte sesta: I siti web Ingegneria del Software Interattivo - I siti web - Docente: Daniela Fogli 1. I siti web Nel Contesto Riferimenti: Brajnik, Umano G., Toppano, E. Creare siti web multimediali, Pearson,

Dettagli

Indice. Introduzione. Capitolo 1

Indice. Introduzione. Capitolo 1 indice Xp pro.qxd 4-04-2002 19:42 Pagina V Indice Introduzione XV Capitolo 1 Sistemi operativi Windows di nuova generazione 1 1.1 Introduzione 1 1.2 Introduzione alla famiglia Windows XP 1 Windows XP Home

Dettagli

Uso del computer e gestione dei file. Elaborazione testi. Foglio elettronico. Strumenti di presentazione

Uso del computer e gestione dei file. Elaborazione testi. Foglio elettronico. Strumenti di presentazione Il è finalizzato a elevare il livello di competenza nell utilizzo del computer, del pacchetto Office e delle principali funzionalità di Internet. Il percorso formativo si struttura in 7 moduli Concetti

Dettagli

Ministero dell Istruzione, dell Università e della Ricerca

Ministero dell Istruzione, dell Università e della Ricerca Allegato 1 Art. 15, comma 3, lett. a) e b) Legge 6 agosto 2008, n. 133 Caratteristiche tecniche e tecnologiche libri di testo PREMESSA Il libro di testo, nella sua versione a stampa, on line e mista, costituisce

Dettagli

REALIZZARE SOFTWARE DIDATTICO DI QUALITA' DI LIBERO UTILIZZO: UNA PROPOSTA

REALIZZARE SOFTWARE DIDATTICO DI QUALITA' DI LIBERO UTILIZZO: UNA PROPOSTA REALIZZARE SOFTWARE DIDATTICO DI QUALITA' DI LIBERO UTILIZZO: UNA PROPOSTA www.qualisoft.org PREMESSA Nel mese di giugno 2004 l'aree onlus - Associazione Regionale Età Evolutiva - di Cagliari ha organizzato

Dettagli

Sistemi Operativi: avvio

Sistemi Operativi: avvio Sistemi Operativi: avvio All avvio del computer, terminate le verifiche del BIOS, il controllo passa al sistema operativo. Il Sistema Operativo opera come intermediario tra l hardware del sistema e uno

Dettagli

INFORMATICA APPLICATA AL TESSILE - I

INFORMATICA APPLICATA AL TESSILE - I INFORMATICA APPLICATA AL TESSILE - I prof.ssa Enrichetta GENTILE PRE-REQUISITI Nessuno. OBIETTIVI FORMATIVI La conoscenza delle nozioni fondamentali dell Informatica e le abilità di base nell uso dei computer

Dettagli

Sistemi Operativi. Struttura astratta della memoria. Gerarchia dei dispositivi di. Memoria centrale. Memoria secondaria (di massa)

Sistemi Operativi. Struttura astratta della memoria. Gerarchia dei dispositivi di. Memoria centrale. Memoria secondaria (di massa) Struttura astratta della memoria Memoria centrale il solo dispositivo di memoria al quale la CPU puo accedere direttamente Memoria secondaria (di massa) Estensione della memoria centrale che fornisce grande

Dettagli

Valutare gli ambienti digitali e valutare negli ambienti digitali. E-learning, valutazione e università.

Valutare gli ambienti digitali e valutare negli ambienti digitali. E-learning, valutazione e università. Valutare gli ambienti digitali e valutare negli ambienti digitali. E-learning, valutazione e università. Luciano Cecconi Professore associato di Pedagogia sperimentale Facoltà di Scienze della Formazione

Dettagli

IN COLLABORAZIONE CON UNIVERSITÀ DI MACERATA

IN COLLABORAZIONE CON UNIVERSITÀ DI MACERATA I P S I A SAN BENEDETTO DEL TRONTO 20 settembre 2014 PROJECT WORK IN COLLABORAZIONE CON UNIVERSITÀ DI MACERATA Progettare l inclusione con le tecnologie 2 Dall aprile 2014, l IPSIA di San Benedetto del

Dettagli

ERP Commercio e Servizi

ERP Commercio e Servizi ERP Commercio e Servizi Sistema informativo: una scelta strategica In questi ultimi anni hanno avuto grande affermazione nel mercato mondiale i cosiddetti sistemi software ERP. Tali sistemi sono in grado

Dettagli

La piattaforma per la gestione elettronica documentale integrata

La piattaforma per la gestione elettronica documentale integrata Tutti noi prendiamo decisioni, facciamo valutazioni, pianifichiamo strategie basandoci sulle informazioni in nostro possesso. Il tempo è una risorsa preziosa, ottimizzarlo rappresenta un obiettivo prioritario.

Dettagli

Informatica. Il software (S.O.) e ancora sulle basi numeriche

Informatica. Il software (S.O.) e ancora sulle basi numeriche (S.O.) e ancora sulle basi numeriche http://159.149.98.238/lanzavecchia/docum enti/sscta.htm 1 Il sistema operativo Un insieme di programmi che gestiscono le risorse (cpu, memoria, dischi, periferiche)

Dettagli

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA) Il software Software Il software Il software è la sequenza di istruzioni che permettono ai computer di svolgere i loro compiti ed è quindi necessario per il funzionamento del calcolatore. Il software può

Dettagli

Revisione e implementazione di algoritmi di elaborazione delle immagini

Revisione e implementazione di algoritmi di elaborazione delle immagini Stagnaro Francesca Mat. 2543707 Relazione Finale di Tirocinio: Revisione e implementazione di algoritmi di elaborazione delle immagini Svolto presso l azienda Numensoft Snc di M. Peri & Soci III Anno di

Dettagli

Lezione 5: Software. Firmware Sistema Operativo. Introduzione all'informatica - corso E

Lezione 5: Software. Firmware Sistema Operativo. Introduzione all'informatica - corso E Lezione 5: Software Firmware Sistema Operativo Architettura del Calcolatore La prima decomposizione di un calcolatore è relativa a due macrocomponenti: Hardware e Software Firmware: strato di (micro-)programmi

Dettagli

Applied Research & Technology Dept.

Applied Research & Technology Dept. 17/12/08 Elenco Tesi Disponibili Applied Research & Technology Dept. La Società MBDA La MBDA Italia è un azienda leader nella realizzazione di sistemi di difesa che con i suoi prodotti è in grado di soddisfare

Dettagli

Calcolo numerico e programmazione. Sistemi operativi

Calcolo numerico e programmazione. Sistemi operativi Calcolo numerico e programmazione Sistemi operativi Tullio Facchinetti 25 maggio 2012 13:47 http://robot.unipv.it/toolleeo Sistemi operativi insieme di programmi che rendono

Dettagli

Proposta di un syllabus di Elementi di Informatica per il primo ciclo anno 2008

Proposta di un syllabus di Elementi di Informatica per il primo ciclo anno 2008 Ministero dell Istruzione, dell Università e della Ricerca Dipartimento per l Istruzione Direzione Generale per gli Ordinamenti del Sistema Nazionale di Istruzione e per l Autonomia Scolastica Proposta

Dettagli