Indice - Imparando.net

Transcript

Indice - Imparando.net
Istituto Tecnico Industriale Statale –Liceo scientifico tecnologico “Benedetto Castelli”
Progetto Lazzaro – Creazione di un laboratorio thin­client con Linux e LTSP
Indice
1. Software OpenSource e Free
1.1 ­Software Libero 1.2 ­Licenza
1.3 ­Le "quattro libertà"
2. L'architettura di un sistema GNU/Linux
2.1 ­L'architettura del sistema.
L'architettura di base.
Il funzionamento del sistema
Alcune caratteristiche specifiche di Linux
3. Software OpenSource per la didattica
4. Piano di lavoro
4.1 ­Obiettivi
4.2 ­Client
4.3 ­Server
5. Installazione Client
5.1 ­Damn Small Linux
Caratteristiche
Storia
5.2 ­Boot da Rete
6. Soluzioni client­server
6.1 ­IL progetto LTSP
Etherboot nel dettaglio:
Possibili problemi con il dischetto
6.2 ­La soluzione FreeNX
6.3 ­Testing delle due soluzioni (LTSP e FreeNX)
6.4 ­Distribuzione utilizzata: Edubuntu
7. Installazione e configurazione Server 7.1 ­Amministrazione del server
8. Schede dei software installati
9. Realizzatori della guida
1
Istituto Tecnico Industriale Statale –Liceo scientifico tecnologico “Benedetto Castelli”
Progetto Lazzaro – Creazione di un laboratorio thin­client con Linux e LTSP
Capitolo 1 ­ Software OpenSource e Free
1.1 ­ Software Libero Il software Open Source e' software rilasciato con una licenza che permette a chiunque di utilizzarlo, studiarlo, modificarlo e redistribuirlo.
La parola libero non implica la possibilità di utilizzare il software libero in maniera indiscriminata: un software libero è comunque soggetto ad una licenza d'uso, a differenza ad esempio del software di pubblico dominio.
Rispetto al software proprietario, la licenza d'uso del software libero permette di:
●
eseguire il programma per qualsiasi scopo
●
accedere alla struttura interna del programma (codice sorgente), studiarla ed eventualmente modificarla
●
ridistribuirlo in un numero di copie illimitato
1.2 ­ Licenza
La licenza d'uso pone in genere i seguenti vincoli, di cui i principali sono:
●
gli autori precedenti del software devono essere menzionati anche nelle versioni modificate, lasciando intatto il loro copyright
●
non è possibile applicare una licenza d'uso incompatibile con la licenza originaria o che vada contro le norme della licenza stessa. Per esempio chiunque può riemettere un software rilasciato sotto LGPL usando la licenza GPL (tale operazione è anche chiamata upgrade della licenza), mentre non è possibile fare il contrario (naturalmente se non si è il detentore unico del copyright)
●
normalmente, nella licenza, vi è una clausola che sancisce la non usabilità del software se non si rispetta la licenza d'uso o se una o più norme della stessa licenza non sono valide per termini di legge
●
quando si distribuisce un binario occorre o distribuire insieme anche i sorgenti o garantire per iscritto la possibilità a tutti gli utenti di venirne in possesso dietro richiesta ed al solo costo del supporto
1.3 ­ Le "quattro libertà"
Secondo Richard Stallman e la Free Software Foundation da lui fondata (magari può essere utile mettere una breve descrizione su cosa fa la FSF), un software per poter essere definito libero deve garantire quattro "libertà fondamentali":
●
libertà di eseguire il programma per qualsiasi scopo (chiamata "libertà 0")
●
libertà di studiare il programma e modificarlo ("libertà 1")
2
Istituto Tecnico Industriale Statale –Liceo scientifico tecnologico “Benedetto Castelli”
Progetto Lazzaro – Creazione di un laboratorio thin­client con Linux e LTSP
●
libertà di copiare il programma in modo da aiutare il prossimo ("libertà 2")
●
libertà di migliorare il programma e di distribuirne pubblicamente i miglioramenti, in modo tale che tutta la comunità ne tragga beneficio ("libertà 3")
Per il nostro progetto abbiamo scelto il software open source ( Linux ) per diverse ragioni, quali:
­ libertà
­ la possibilità di girare su hardware obsoleto
­ il costo
­ la facilità di amministrazione
Nel caso particolare abbiamo utilizzato Edubuntu, una versione modificata della distribuzione Linux Ubuntu già adattata per scopi didattici.
La distribuzione in particolare contiene software quali Dr.Geo (clone di Cabri), OpenOffice (clone di Office), Audacity (editor audio), Gimp (editor immagini), Blender (editor 3D), Firefox (browser web), Thunderbird (client e­mail) e molti altri.
Capitolo 2 ­ L'architettura di un sistema GNU/Linux
2.1 ­ L'architettura del sistema.
Prima di addentrarci nei dettagli dell'amministrazione di un sistema GNU/Linux, conviene fornire un quadro generale per introdurre i vari concetti su cui si basa l'architettura di questo sistema, che è basata su quella, consolidatasi in 30 anni di impiego, dei sistemi di tipo Unix. Il fatto che questa architettura abbia una certa età fa sì che spesso i detrattori di GNU/Linux ne denuncino la presunta mancanza di innovatività, ma anche le case hanno da secoli le stesse basi architetturali (porte, muri e tetti), ma non per questo non esiste innovazione. Il vantaggio della architettura di Unix infatti è quello di aver fornito una solida base per la costruzione di sistemi affidabili ed efficienti, consolidata e corretta in decenni di utilizzo, tanto che ormai è divenuto comune il detto che chi non usa l'architettura Unix è destinato a reinventarla.
L'architettura di base.
Contrariamente ad altri sistemi operativi, GNU/Linux nasce, come tutti gli Unix, come sistema multitasking e multiutente. Questo significa che GNU/Linux ha una architettura di sistema che è stata pensata fin dall'inizio per l'uso contemporaneo da parte di più utenti. Questo comporta conseguenze non del tutto intuitive nel caso in cui, come oggi sempre più spesso accade, esso venga usato come stazione di lavoro da un utente singolo. Il concetto base dell'architettura di ogni sistema Unix come GNU/Linux è quello di una rigida separazione fra il kernel (il nucleo del sistema), cui si demanda la gestione delle risorse 3
Istituto Tecnico Industriale Statale –Liceo scientifico tecnologico “Benedetto Castelli”
Progetto Lazzaro – Creazione di un laboratorio thin­client con Linux e LTSP
hardware, come la CPU, la memoria, le periferiche e i processi, (le unità di esecuzione dei programmi), e i programmi del livello applicativo, che vanno dai comandi base di sistema, ai vari software, alle interfacce per l'interazione con gli utenti. Lo scopo del kernel infatti è solo quello di essere in grado di eseguire contemporaneamente molti processi in maniera efficiente, garantendo una corretta distribuzione fra gli stessi della memoria e del tempo di CPU, e quello di fornire le adeguate interfacce software per l'accesso alle periferiche della macchina e le infrastrutture di base necessarie per costruire i servizi. Tutto il resto, dall'autenticazione all'interfaccia utente, viene realizzato usando processi che eseguono gli opportuni programmi. Questo si traduce in una delle caratteristiche essenziali su cui si basa l'architettura dei sistemi Unix: la distinzione fra il cosiddetto user space, che è l'ambiente a disposizione degli utenti in cui vengono eseguiti i processi, e il kernel space, che è l'ambiente in cui viene eseguito il kernel. I due ambienti comunicano attraverso un insieme di interfacce ben definite e standardizzate; secondo una struttura come quella mostrata in fig. 1.1
Questa architettura comporta che solo il kernel viene eseguito in modalità privilegiata, ed è l'unico a poter accedere direttamente alle risorse dell'hardware. I normali programmi invece verranno eseguiti in modalità protetta, in un ambiente virtuale, l'user space, in cui essi vedono se stessi come se avessero piena disponibilità della CPU e della memoria, ma in cui possono accedere alle periferiche e alle altre funzionalità messe a disposizione del kernel solo attraverso una serie di chiamate di sistema standardizzate, le cosiddette system call, che vengono utilizzate attraverso l'interfaccia fornita dalla libreria di sistema (la GNU C library di fig. 1.1). In sostanza quello che succede è che da un certo punto di vista l'unico "vero" programma che viene eseguito è il kernel che si incarica di costruire questo ambiente virtuale in cui fare girare gli altri programmi. Una parte del kernel, quella indicata in fig. 1.1 come scheduler, si incaricherà della gestione del tempo del processore e provvederà a decidere volta per volta qual è il processo che deve essere eseguito in un determinato 4
Istituto Tecnico Industriale Statale –Liceo scientifico tecnologico “Benedetto Castelli”
Progetto Lazzaro – Creazione di un laboratorio thin­client con Linux e LTSP
momento (realizzando così il multitasking). Una seconda parte, quella indicata in fig. 1.1 come VM, (sigla che sta per Virtual Memory) si occuperà invece di gestire l'uso della memoria disponibile. La memoria virtuale è uno dei sottosistemi più importanti del kernel perchè è quella che fa in modo che ogni processo veda uno spazio di indirizzi proprio che poi viene rimappato nella memoria fisica effettivamente presente, così che sia impossibile che un processo possa accedere alla memoria di un altro processo. La memoria virtuale si incarica anche di gestire, in caso di esaurimento della RAM, l'eventuale spostamento delle pagine di memoria meno usate su uno opportuno spazio disco evitando di fermare l'esecuzione di un processo per una temporanea mancanza di memoria. Infine c'è un'ultima parte del kernel, indicata in fig. 1.1 con l'indicazione generica driver, che si incaricherà di accedere alle periferiche per conto dei programmi. Questa permette di definire una interfaccia di accesso generica per qualunque dispositivo, cui spesso si fa riferimento dicendo che in un sistema unix­like tutto è un file. La conseguenza più importante di questa separazione fra user space e kernel space è che in questo modo non è possibile che un singolo programma possa disturbare l'azione di un altro programma o del kernel stesso, e questo è il principale motivo della stabilità di un sistema Unix nei confronti di altri sistemi in cui i processi non hanno di questi limiti, o vengono, per vari motivi, eseguiti all'interno del kernel.
Il funzionamento del sistema
Per illustrare meglio la distinzione fra kernel space e user space prendiamo brevemente in esame la procedura di avvio del sistema. All'accensione del computer viene eseguito il programma che sta nel BIOS; questo dopo aver fatto i suoi controlli interni esegue la procedura di avvio del sistema. Nei PC tutto ciò viene effettuato caricando dal dispositivo indicato nelle impostazioni del BIOS un apposito programma, il bootloader, che a sua volta recupera (in genere dal disco) una immagine del kernel che viene caricata in memoria ed eseguita. Una volta che il controllo è passato al kernel questo, terminata la fase di inizializzazione (in cui ad esempio si esegue una scansione delle periferiche disponibili, e si leggono le tabelle delle partizioni dei vari dischi) si incaricherà di montare il filesystem su cui è situata la directory radice, e farà partire il primo processo. Per convenzione questo processo si chiama init, ed è il programma di inizializzazione che a sua volta si cura di far partire tutti gli altri processi che permettono di usare il sistema. Fra questi processi ci saranno ad esempio quelli che forniscono i vari servizi di rete, quelli che eseguono vari compiti di amministrazione, così come quelli che si occupano di chiedere nome e password dell'utente che si vuole collegare, e che una volta completato il collegamento (procedura che viene chiamata login) lanciano altri programmi per mettere a disposizione dell'utente l'interfaccia da cui inviare i comandi, che potrebbe essere sia una shell a riga di comando che una delle tante interfacce grafiche disponibili. E da rimarcare poi come anche tutti i programmi che un utente di un sistema GNU/Linux può utilizzare una volta che si è collegato non hanno niente di diverso da quelli appena citati. Tutti i programmi funzionano allo stesso modo: vengono eseguiti dal kernel come processi ed eseguono le loro operazioni attraverso le opportune system call che esso mette a disposizione. Da questo punto di vista eseguire sulla shell un programma per vedere la lista dei file non ha niente di diverso dall'eseguire in 5
Istituto Tecnico Industriale Statale –Liceo scientifico tecnologico “Benedetto Castelli”
Progetto Lazzaro – Creazione di un laboratorio thin­client con Linux e LTSP
ambiente grafico un programma di scrittura o un programma di fotoritocco, o dal lanciare un server web che viene eseguito anche quando nessuno è collegato al sistema. Questo significa ad esempio che il kernel di per sè non dispone di primitive per tutta una serie di operazioni, come la copia di un file, che altri sistemi operativi (come Windows) hanno al loro interno: tutte le operazioni di normale amministrazione di un sistema GNU/Linux sono sempre realizzate tramite degli opportuni programmi. Tutto ciò ci dice anche che benchè costituisca il cuore del sistema, il kernel da solo sarebbe assolutamente inutile, così come sarebbe inutile da solo il motore di una automobile, senza avere le ruote, lo sterzo, la carrozzeria, e tutto il resto. Per avere un sistema funzionante dal punto di vista di un utente normale infatti occorre avere, oltre al kernel, anche tutti i programmi che gli permettano di eseguire le varie operazioni con i dischi, i file, le periferiche. Per questo al kernel vengono sempre uniti degli opportuni programmi di gestione per il sistema e tutta una serie di programmi applicativi, ed è l'insieme di questi e del kernel che costituisce un sistema funzionante. Di solito i rivenditori, o anche gruppi di volontari, come nel caso di Debian, si preoccupano di raccogliere in forma coerente i programmi necessari, per andare a costruire quella che viene chiamata una distribuzione. Sono in genere queste distribuzioni (come Debian, Mandrake, RedHat, Slackware), quelle che si trovano sui CD con i quali si installa quello che, con una semplificazione molto brutale, viene chiamato solo "Linux". Il gruppo principale di questi programmi, e le librerie di base che essi e tutti gli altri programmi usano, derivano dal progetto GNU della Free Software Foundation: è su di essi che ogni altro programma è basato, ed è per questo che è più corretto riferirsi all'intero sistema come a GNU/Linux, dato che Linux indica solo una parte, il kernel, che benchè fondamentale non costituisce da sola un sistema operativo. Si tenga presente infine che anche se il kernel tratta tutti i programmi allo stesso modo, non tutti hanno la stessa importanza. Nell'esempio appena fatto abbiamo accennato ad un programma particolare, init, che ha un ruolo privilegiato in quanto è quello che si occupa dell'inizializzazione del sistema quando questo viene fatto partire. Anche init però alla fine non è che un programma che usa le system call e viene eseguito dal kernel come un qualunque altro processo; la sua unica peculiarità infatti è quella di essere lanciato per primo direttamente dal kernel. Questo ci porta ad un'altra caratteristica fondamentale dell'architettura dei sistemi unix­like che è quella per cui qualunque processo può a sua volta avviarne di nuovi. E questo che permette l'avvio del sistema eseguendo un unico programma di inizializzazione come init, dato che questo potrà poi lanciare altri programmi, che a loro a volta ne potranno lanciare degli altri ancora, fino a fornire tutte le funzionalità richieste per il a funzionamento del sistema. Benchè sia possibile per usi particolari (ad esempio in sistemi embedded che devono svolgere un solo compito) far partire un qualunque altro programma al posto di init, in pratica tutti i sistemi Unix usano questo specifico programma per gestire l'avvio del sistema, ed è a seconda degli ulteriori programmi che init mette in esecuzione che alla fine della procedura di avvio ci si troverà davanti ad un terminale a caratteri o ad una interfaccia grafica, e si avrà, a seconda di quanto deciso (ed installato) dall'amministratore, un server di posta, un server web, una workstation, ecc.
6
Istituto Tecnico Industriale Statale –Liceo scientifico tecnologico “Benedetto Castelli”
Progetto Lazzaro – Creazione di un laboratorio thin­client con Linux e LTSP
Alcune caratteristiche specifiche di Linux
Benchè Linux stia diventando il più diffuso, esistono parecchi altri kernel unix­like, sia liberi che proprietari, nati nella tumultuosa e complessa evoluzione che dallo Unix originario della AT/T ha portato alla nascita di una miriade di sistemi derivati (BSD, Solaris, AIX, HP­UX, Digital Unix, IRIX, solo per citare i più noti) che si innestano tutti in due rami principali, quelli derivati dal sistema sviluppato dalla AT/T, detto SysV (da System V, l'ultima versione ufficiale) e quelli derivati dal codice sviluppato all'università di Berkeley, detto BSD (da Berkeley Software Distribution). La prima caratteristica distintiva di Linux è che esso è stato riscritto da zero, per cui non è classificabile in nessuno di questi due rami e prende invece, a seconda dei casi, le migliori caratteristiche di ciascuno di essi. Un'altra delle caratteristiche peculiari di Linux rispetto agli altri kernel unix­like è quella di essere modulare; Linux cioè può essere esteso inserendo a sistema attivo degli ulteriori "pezzi", i moduli, che permettono di ampliare le capacità del sistema (ad esempio fargli riconoscere una nuova periferica). Questi possono poi essere tolti dal sistema in maniera automatica quando non sono più necessari: un caso tipico è quello del modulo che permette di vedere il floppy, caricato solo quando c'è necessità di leggere un dischetto ed automaticamente rimosso una volta che non sia più in uso per un certo tempo. In realtà è sempre possibile costruire un kernel Linux comprensivo di tutti i moduli che servono, ottenendo quello che viene chiamato un kernel monolitico (come sono i kernel degli altri Unix); questo permette di evitare il ritardo nel caricamento dei moduli al momento della richiesta, ma comporta un maggiore consumo di memoria (dovendo tenere dentro il kernel anche codice non utilizzato), ed una flessibilità nettamente inferiore in quanto si perde la capacità di poter specificare eventuali opzioni al momento del caricamento, costringendo al riavvio in caso di necessità di cambiamenti. Per contro in certi casi l'uso dei moduli può degradare leggermente le prestazioni (quasi sempre in maniera non avvertibile) e può dar luogo a conflitti inaspettati (che con un kernel monolitico avrebbero bloccato il sistema all'avvio). Questi problemi oggi sono sempre più rari, in ogni caso non è possibile utilizzare i moduli nel caso in cui la funzionalità da essi fornite siano necessarie ad avviare il sistema. Una terza peculiarità di Linux è quella del Virtual File System (o VFS). Un concetto generale presente in tutti i sistemi Unix (e non solo) è che lo spazio su disco su cui vengono tenuti i file e di dati è organizzato in quello che viene chiamato un filesystem. Lo spazio disco grezzo è normalmente suddiviso in settori contigui e di dimensione fissa, ma all'interno del sistema questo viene organizzato in maniera tale da permettere il rapido reperimento delle informazioni memorizzate su questi settori, anche quando queste sono sparse qua e là sul disco; si ha così quello che l'utente vede come un singolo file. Quello che contraddistingue Linux è che l'interfaccia per la lettura del contenuto del filesystem è stata completamente virtualizzata, per cui inserendo gli opportuni moduli nel sistema diventa possibile accedere con la stessa interfaccia (salvo limitazioni della realizzazione, in maniera completamente trasparente all'utente) ai più svariati tipi di filesystem, a partire da quelli usati da Windows e dal DOS, dal MacOS, e da tutte le altre versioni di Unix. Quello che è importante tenere presente da subito è che la disponibilità di una astrazione delle operazioni sui file rende Linux estremamente flessibile, dato che attraverso di essa è in grado di supportare con relativa facilità, ed in maniera nativa, una varietà di filesystem superiore a quella di qualunque altro sistema operativo.
7
Istituto Tecnico Industriale Statale –Liceo scientifico tecnologico “Benedetto Castelli”
Progetto Lazzaro – Creazione di un laboratorio thin­client con Linux e LTSP
Capitolo 3 ­ Software OpenSource per la didattica
Vediamo ora i vantaggi con l’introduzione dell’open source nelle scuole. Un vantaggio evidente anche se non fondamentale è quello Economico: oggi le scuole spendono molti soldi per aggiornare i computer obsoleti e come tutti sanno un computer nuovo significa anche una nuova licenza Microsoft, sia per il sitema operativo che a volte anche per gli applicativi di Office. A questo punto è preferibile per una scuola spendere questi soldi per aggiornare tutti i computer o spendere di meno per comprare un solo computer che riesca a gestire tutti gli altri. La risposta sembra ovvia…
I computer obsoleti che vengono recuperati possono anche essere dei semplici Pentium 100 con 32 MB di RAM e addirittura senza disco fisso visto che tutte le operazioni vengono fatte sul server. Quindi l’unica spesa è quella di comprare un server: in base alla quantità di computer obsoleti che si vogliono “resuscitare” un computer di media potenza (Pentium 4 non di utlima generazione) con almeno 2 GB di RAM può elaborare calcoli per 30 computer senza nessun problema. In questo modo la scuola risparmierebbe il 75% rispetto a cambiare tutte le singole macchine del proprio laboratorio.
Altro vantaggio molto rilevante, tanto più in quanto l'istituzione scuola dovrebbe sensibilizzare rispetto a questo tema, riguarda l’aspetto Eco­Ambientale: l’hardware presente nei computer obsoleti è ritenuto rifiuto speciale e comporta fasi di smaltimento lunghe e costose. Per evitare questi ulteriori costi spesso le normative in materia non vengono rispettate e si disperdono nell'ambiente sostanze estremamente inquinanti quali piombo, mercurio, cadmio e cromo esavalente. Il riuso, evita le problematiche descritte e permette anche un notevole risparmio energetico. Questo perché un odierno personal computer consuma in media 150W a pieno carico, mediante il riutilizzo dei computer il server ottimizza i carichi di lavoro delle CPU, consentendo un risparmio energetico di circa il 60%!
E come non parlare di Sicurezza: ogni accesso al server da parte delle singole macchine può essere fatto attraverso una password in modo da limitare eventuali accessi non autorizzati ed essendo il server che svolge tutto il lavoro si possono implementare efficientemente filtri per la navigazione Web, sistemi di backup automatizzati, evitando le quotidiane problematiche che si riscontrano nella gestione di una rete di computer.
Un ulteriore vantaggio riguarda i Programmi e le conseguenti problematiche di installazione, aggiornamento, ecc.: il mondo open source gode di una vasta gamma di programmi in tutti gli ambiti (OpenOffice,The Gimp, Dr.Geo, Audacity, GCompris) il tutto ovviamente sempre senza nessun costo aggiuntivo. Anche gli aggiornamenti sono semplici, tutto viene fatto sul server senza intervenire su ogni singola macchina come invece viene fatto in laboratori in cui ogni macchina è a se stante.
Tutto questo può portare a nuove offerte nell’ambito della Formazione di studenti e docenti: si potranno tenere corsi sulla filosofia open source, sulle sue caratteristiche e la sua evoluzione. Si portano avanti quindi discorsi riguardanti la storia, dall’avvio di Unix fino a Linux parlando anche dei vari personaggi del panorama open source. E con la voglia di docenti e studenti si può diventare protagonisti creando aree di progetto che sviluppano applicativi liberi rendendoli fruibili anche ad altre scuole.
8
Istituto Tecnico Industriale Statale –Liceo scientifico tecnologico “Benedetto Castelli”
Progetto Lazzaro – Creazione di un laboratorio thin­client con Linux e LTSP
Capitolo 4 ­ Piano di lavoro
4.1 ­ Obiettivi
L'obbiettivo era recuperare hardware obsoleto in modo che potesse essere utilizzato per normali scopi didattici.
Per raggiungere questo obiettivo sono state prese in considerazione diverse ipotesi:
­ Utilizzare Damn Small Linux, una distribuzione creata apposta per girare su harware obsoleto
­ Utilizzare FreeNX, software per l'utilizzo remoto di una interfaccia X
­ Utilizzare LTSP ( Linux Terminal Server Project ), software che permette di rendere i computer dei terminali dipendenti da un server, in modo che possano girare anche senza l'utilizzo di dispositivi di memorizzazione di massa permanenti (hard disk).
Abbiamo testato tutte le possibilita' e come soluzione abbiamo adottato l'utilizzo di LTSP come software principale e come "failsafe" (soluzione di emergenza) abbiamo installato Damn Small Linux, che permette comunque di utilizzare i computer in caso di malfunzionamento del server principale.
4.2 ­ Client
Come prima cosa sui client abbiamo rimosso il sistema operativo Windows 98 che era servito agli elettronici per testare il funzionamento dell'hardware e della rete, successivamente abbiamo eseguito l'installazione su hard disk della distribuzione Damn Small Linux, una distribuzione del sistema operativo Linux che richiede pochissime risorse hardware per un funzionamento, seppur limitato, utile ad un'attività didattica. Questa distribuzione comprende un editor di testo (Ted), un foglio di calcolo, un browser (Dillo, Mozilla Firefox) per la navigazione in Internet, un client di posta, editor di immagini (XPaint), riproduzione audio (Xmms), un lettore PDF (Xpdf) e altri vari strumenti. In realtà questo sistema operativo non dovrebbe essere utilizzato, è solo un supporto nel caso in cui avvenisse un malfunzionamento del server.
L'idea è quella di riutilizzare hardware obsoleto (10 PC datati) come PC attuali sfruttando la potenza di un server e la rete.
Essendo PC datati, le loro schede di rete non supportavano il boot da rete, che comporta il caricamento del Kernel di Linux tramite la rete e non caricandolo dal hard disk, quindi abbiamo dovuto trovare un modo per bypassare questo problema. Abbiamo risolto con uno stratagemma, scoprendo un sito che offriva delle immagini da montare su floppy, per immagine si intende il kenel pacchettizzato e compresso, che avviavano il computer via rete bootando il PC da floppy; quindi per ogni PC abbiamo utilizzato le informazioni riguardanti il modello delle schede di rete e per ognuno di queste abbiamo fatto un floppy che permettesse il boot da rete.
9
Istituto Tecnico Industriale Statale –Liceo scientifico tecnologico “Benedetto Castelli”
Progetto Lazzaro – Creazione di un laboratorio thin­client con Linux e LTSP
L'indirizzo del sito da dove scaricare questi programmi è: http://rom­o­matic.net/
Dopo questo lavoro sui client, bisognava solamente impostare il BIOS dei PC in modo che partissero leggendo il floppy da noi creato, così siamo entrati nel setup iniziale di ogni computer ed abbiamo impostato le priorità dei dispositivi di avvio, mettendo come primo della lista il floppy e come secondo l'hard disk.
4.3 ­ Server
Il server era un pentium 4 a 3,0 Ghz con 2 Gb di RAM.
Abbiamo installato una distribuzione GNU/Linux, EdUbuntu (che verra' analizzata in seguito), che fornisce gia' integrati molti software a scopo didattico, e un ambiente di base gia' predisposto per una struttura del tipo Server­Terminali.
Finita l'installazione abbiamo proceduto a configurare le varie componenti del sistema necessarie per il corretto funzionamento del progetto LTSP quali server DHCP, server NFS e server OpenSSH.
Capitolo 5 ­ Installazione Client
5.1 ­ Damn Small Linux
Damn Small Linux (conosciuto anche come DSL) è una distribuzione Linux per l'architettura x86. Nata come sistema live per CD a forma di carta di credito, può oggi essere installata ed eseguita su dischi rigidi, chiavette USB, schede CompactFlash, dispositivi ZIP od anche su Microsoft Windows o Linux come sistema emulato grazie all'uso del programma QEMU.
Sono possibili due tipi di installazione: l'installazione "frugale" e la vera installazione. L'installazione frugale copia l'immagine del CD di installazione in una partizione del disco rigido e l'avvio da qui sarà equivalente all'avvio da CD. La vera installazione decomprime il sistema sul CD e lo copia sul disco regolandone, poi, alcuni parametri. Con quest'ultimo modo, si può poi installare il programma di gestione dei pacchetti APT che permette di ottenere un sistema operativo più simile a Debian GNU/Linux.
Caratteristiche
Damn Small Linux, tradotto letteralmente, significa "Linux Maledettamente Piccolo". Proprio questo è il concetto che sta alla base della distribuzione: in 50 MB (per questo può essere comodamente avviata da una semplice chiavetta usb) include un browser, strumenti di produttività da ufficio, giochi e lettori multimediali ed il Desktop Environment Fluxbox. Il requisito minimo di sistema è un processore 486 con 16 MB di memoria RAM: ciò gli permette una esecuzione rapida in vecchi computer x86.
Storia
Damn Small Linux è stata inventata e sviluppata inizialmente da John Andrews che personalizzò un'altra distribuzione, Model K, a sua volta ricavata da una Knoppix e ridotta alle dimensioni di 22 MB. Da allora, Damn Small Linux è cresciuta fino a diventare un progetto sviluppato da più programmatori, tra i quali Robert Shingledecker, che ha sviluppato 10
Istituto Tecnico Industriale Statale –Liceo scientifico tecnologico “Benedetto Castelli”
Progetto Lazzaro – Creazione di un laboratorio thin­client con Linux e LTSP
il sistema MyDSL, il DSL Control Panel, ed altro ancora. Oggi lo sviluppo è basato direttamente su Knoppix permettendo una maggiore facilità di miglioramento e di personalizzazione.
5.2 ­ Boot da Rete
Le schede di rete moderne supportano il boot da rete ovvero l'avvio del computer tramite la rete, ma nel caso la macchina sia troppo vecchia e non sia possibile abilitare dal BIOS il boot da scheda di rete, è possibile in molti casi utilizzare Etherboot per aggirare l’inconveniente. Nel caso corrente è stato usato un kernel lanciato da Grub, ma per macchine senza disco fisso è possibile utilizzare anche floppy o CD­ROM, la ROM adatta alla propria scheda, in formato di immagine floppy, cd, kernel o altro, si può ottenere facilmente dal sito ROM­o­matic.net . La nostra scelta è stata fatta in modo che tutti i pc utilizzassero lo stesso metodo, quindi abbiamo deciso di creare un floppy per ogni pc.
Capitolo 6 ­ Soluzioni client­server
6.1 ­ IL progetto LTSP
Il progetto LTSP (Linux Terminal Server Project) fornisce un modo semplice per (ri)utilizzare dei computer a basso costo come terminali, sia in modo grafico che in modo testo, collegandoli ad un server GNU/Linux.
In una tipica situazione d'ufficio o in un laboratorio scolastico su ogni postazione vengono normalmente utilizzati computer abbastanza potenti, basati su processori Intel o compatibili, ognuno con molti gigabytes di spazio su disco fisso. Ciascun utente memorizza i propri dati sul disco rigido presente nel computer e molto raramente vengono effettuati dei backup.
Ha veramente un senso avere un computer completo su ciascuna postazione ?
Ragionevolmente no. Possiamo migliorare questa situazione. Fortunatamente c'è un'alternativa. Utilizzando LTSP, si possono usare anche PC piuttosto datati o comunque di scarse prestazioni. Basta, eventualmente aggiungere una scheda di rete con supporto per il boot da rete. La maggior parte delle schede di rete ha un alloggio ove inserire una ROM che permette il boot da rete, o semplicemente installando il programma di Etherboot su un supporto (floppy disk).
Durante la fase di accensione (la fase di boot), il computer,seguendo le istruzioni del programma contenuto nel floppy disk, ottiene le informazioni necessarie per far funzionare la rete (come il proprio numero IP) ed il kernel Linux (la parte fondamentale di questo sistema operativo) dal server, quindi accede ai dischi (monta il filesystem) tramite il servizio NFS.
Il computer della postazione di lavoro (workstation) può essere configurato nei 3 modi sotto descritti:
• Interfaccia Grafica con Sistema X Window 11
Istituto Tecnico Industriale Statale –Liceo scientifico tecnologico “Benedetto Castelli”
Progetto Lazzaro – Creazione di un laboratorio thin­client con Linux e LTSP
Si utilizza X Windows. La workstation può essere usata per accedere a qualsiasi applicazione presente sul server o su altri server eventualmente presenti all'interno della stessa rete.
• Sessioni tramite telnet ad interfaccia in modalità testo
La workstation può instaurare una o più sessioni telnet con il server. Ogni sessione telnet viene collocata in uno schermo virtuale separato. Sono possibili più sessioni in contemporanea fino ad un massimo di 9 sessioni. Premendo i tasti da Alt−F1 a Alt−F9 sarà possibile passare da una sessione ad un'altra.
• Shell prompt (linea di comando)
La workstation può essere configurata in modo da fornire direttamente e semplicemente una linea di comando (la bash shell) sulla console. Questo può essere molto utile in alcuni casi, ad esempio quando è necessario, in fase di configurazione correggere eventuali problemi che possono insorgere con il sistema X Window o con il collegamento NFS.
Più nello specifico il metodo che abbiamo scelto consiste nel copiare l'Etherboot nel boot sector del floppy. Quindi tutto funziona come nel caso del boot rom(boot effettuato tramite una rom inserita nella scheda di rete). Il codice letto dal boot record del floppy viene eseguito, la scheda di rete viene inizializzata e il kernel viene caricato in memoria dal server via rete.
Etherboot nel dettaglio:
Consideriamo in prima istanza una singola workstation sul nostro segmento di rete, equipaggiata quindi con una scheda Ethernet e, di conseguenza, univocamente riconoscibile dal suo MAC­address. All'accensione tale macchina carica l'immagine contenuta nel floppy, così accede ai servizi di rete per ottenere quanto necessario per il boot. La prima informazione che deve ricavare è un indirizzo di rete IP che la identifichi, in modo da poter successivamente richiedere l'immagine del kernel e l'accesso al suo filesystem; per far ciò, in fase di accensione, istruita dall'immagine su floppy, la workstation effettua un broadcast notificando a un qualsiasi server BOOTP (BOOTstrap Protocol) o DHCP presente nel segmento di rete il suo MAC­address. A questo broadcast il server BOOTP, dopo aver consultato una tabella interna, risponde fornendo alla workstation un nome simbolico, un indirizzo IP, l'indirizzo IP del server da cui effettuare il boot e il nome di un'immagine del kernel che dovrà caricare. Una volta ottenute queste informazioni il client deve scaricare il kernel indicatogli ed eseguirlo: in questa fase entra in gioco il TFTP (Trivial File Transfer Protocol), una versione ridotta del più conosciuto FTP, priva di autenticazione, controlli e funzionalità complesse. Proprio utilizzando il protocollo TFTP il client scarica dal server fornitogli dal BOOTP il suo kernel. Eseguito il kernel cosi ottenuto ora non resta che montare un filesystem via rete e terminare la sequenza di boot del sistema.
Possibili problemi con il dischetto
Quando parte il boot dal floppy dovrebbe apparire qualcosa del tipo:
loaded ROM segment 0x0800 length 0x4000 reloc 0x9400
12
Istituto Tecnico Industriale Statale –Liceo scientifico tecnologico “Benedetto Castelli”
Progetto Lazzaro – Creazione di un laboratorio thin­client con Linux e LTSP
Etherboot 5.0.1 (GPL) Tagged ELF for [LANCE/PCI]
Found AMD Lance/PCI at 0x1000, ROM address 0x0000 Probing...[LANCE/PCI] PCnet/PCI−II 79C970A base 0x1000, addr 00:50:56:81:00:01
Searching for server (DHCP)...
<sleep>
L'esempio riportato qui sopra mostra cosa dovreste aspettarvi di vedere quando avviene il boot da floppy. Se non vengono visualizzati questi messaggi, che indicano che è partito l'Etherboot, allora probabilmente il dischetto floppy è sbagliato: o il dischetto floppy è danneggiato o l'immagine non è stata scritta sul floppy in modo corretto.
Se viene visualizzato un messaggio del tipo riportato qui sotto, allora probabilmente vuol dire che l'immagine che è stata generata non è quella adatta per la vostra scheda di rete.
ROM segment 0x0800 length 0x8000 reloc 0x9400
Etherboot 5.0.2 (GPL) Tagged ELF for [Tulip]
Probing...[Tulip]No adapter found
<sleep><abort>
Se arriva al punto in cui rivela la scheda di rete e mostra il corretto MAC address, allora il dischetto floppy è probabilmente corretto e funzionante.
Per ottenere un nuovo dischetto sarà neccessario andare sul sito web www.Rom−O−Matic.net di Marty Connor, che ha fatto un eccellente lavoro mettendo in piedi un'interfaccia per il web per la configurazione e la compilazione necessaria per creare un immagine bootrom con Etherboot. Sul suo sito, selezionate la versione più aggiornata disponibile (latest production release) di etherboot, selezionate il tipo di scheda di rete che avete (NOME DELLA SCHEDA) e che tipo di immagine volete. Per avere il formato per il floppy scegliete 'Floppy Bootable ROM Image'. Questa scelta aggiunge un header di 512 byte che fa sì che il boot loader venga caricato in memoria da dove poi viene eseguito. Inoltre avete anche la possibilità di modificare alcune opzioni di configurazione del Etherboot. A questo punto premete il pulsante 'Get ROM' (ottieni ROM) e una immagine personalizzata del bootrom verrà generata in breve tempo.
Dopo alcuni secondi che avete premuto il bottone, il vostro browser farà comparire una finestra pop−up "Save As" (o "Salva con nome") in cui sceglierete il nome con cui salvare il file sul vostro computer. Una volta che avete salvata l'immagine sul vostro disco fisso dovete scriverla sul vostro floppy. Inserite il disco floppy nel vostro lettore di floppy e date il seguente comando per scrivere sul floppy:
dd if=Etherboot_Image of=/dev/fd0
dove al posto di Etherboot_Image dovete mettere il nome del vostro file immagine, ed eventualmente il percorso se non è nella directory corrente(/../.. ../Etherboot_Image). Chiaramente questo comando deve essere eseguito su un computer Linux. A questo punto potrete ri­connettervi normalmente al server.
13
Istituto Tecnico Industriale Statale –Liceo scientifico tecnologico “Benedetto Castelli”
Progetto Lazzaro – Creazione di un laboratorio thin­client con Linux e LTSP
6.2 ­ La soluzione FreeNX
FreeNX è un proxy server open source per i protocolli di controllo remoto del display X11, RDP e VNC; è in grado di operare una compressione del traffico di rete incrementando notevolmente le prestazioni con linee lente. E' basato sulle librerie NX sviluppate dall'azienda NoMachine e rilasciate dalla stessa secondo licenza GPL. Con questa tecnologia è possibile collegarsi ad un server da remoto (anche su linee telefoniche lente) utilizzandolo anche da PC obsoleti, ed usare programmi altrimenti ingestibili da questi stessi PC. Può quindi essere considerato come alternativa a LTSP, ed è anche più semplice da installare e configurare. Il client è disponibile per Linux, Mac e Finestre. Il client FreeNX si può liberamente scaricare da www.nomachine.com. L'installazione non richiede nulla di particolare. Al primo avvio è sufficiente configurare l' indirizzo ip del server e porta ssh (in genere 22, se non l'abbiamo modificata); a questo punto possiamo entrare con l'utente di sistema Linux.
6.3 ­ Testing delle due soluzioni (LTSP e FreeNX)
Abbiamo testato i due tipi di soluzioni praticabili FreeNX e LTSP mettendole a confronto,tramite l'utilizzo contemporaneo del software disponibile su tutti i client e verificandone le prestazioni.
E' risultata una superiorità di prestazioni da parte di LTSP sotto diversi punti di vista:
●
maggiore fluidità e velocità nell'interazione con l'interfaccia grafica;
●
maggiore longevità e stabilità, FreeNX era più facilmente soggetto a crash (errori,instabilità...);
Questi motivi ci hanno portato a scegliere la soluzione LTSP e tenere l'altra, FreeNX , solo come ripiego nel caso di problemi con la prima.
6.4 ­ Distribuzione utilizzata: Edubuntu
"Ubuntu" è un'antica parola africana, dal significato "umanità agli altri". Un ulteriore significato è: "io sono ciò che sono per merito di ciò che siamo tutti". La distribuzione Edubuntu Linux migra lo spirito di Ubuntu nelle scuole, poichè è stato studiato per un ambiente scolastico. Per ora Edubuntu è rivolto solamente a questo ambiente ma nel prossimo futuro sarà adattato anche ad altri ambiti come quello Universitario. Deriva da Ubuntu, basata a sua volta su Debian.
Fra gli altri programmi, Edubuntu include Linux Terminal Server Project (LTSP), un gran numero di applicazioni educative tra le quali GCompris e la raccolta di programmi di edutainment di KDE, nonché Schooltool Calendar.
14
Istituto Tecnico Industriale Statale –Liceo scientifico tecnologico “Benedetto Castelli”
Progetto Lazzaro – Creazione di un laboratorio thin­client con Linux e LTSP
Edubuntu utilizza il desktop environment GNOME e la versione attuale supporta le piattaforme i386, AMD64 e PowerPC. Edubuntu include più di 16000 pacchetti ma il sistema di base si installa con unsingolo CD.
Capitolo 7 ­ Installazione e configurazione Server La distribuzione usata, Edubuntu, dispone dalla versione 6.10 un ambiente integrato per LTSP che ha permesso di evitare la parte di creazione di un ambiente in un chroot minimale per i client in quanto già predisposto.
Abbiamo assegnato al server un indirizzo di classe C e poi configurato tutti i client di conseguenza.
I file principali sono : /etc/ssh/sshd_config
Il file per la configurazione del demone ssh essenziale per l'avvio di applicazioni sul server dai client In questo file e' necessaria che sia abilitata l'opzione
X11Forwarding yes
per rendere possibile il forward di applicazioni grafiche sui client
/opt/ltsp/i386/etc/ltsp.conf
Il contiene la configurazione dei singoli client LTSP.
In questo file si possono fare configurazione globali (valide per tutti i client LTSP) o configurazioni specifiche a seconda dei client (come far caricare un modulo audio o un modulo video al particolare client, o abilitargli una stampante)
/etc/ltsp/dhcpd.conf
Il file per la configurazione del demone dhcp.
Nel nostro caso abbiamo impostato in modo che venissero assegnati degli indirizzi ip specifici a seconda del MAC Address di ogni scheda, in modo da avere un corrispondenza fissa tra un indirizzo ip e una macchina, in caso siano necessarie configurazioni speciali.
/etc/exports
Contiene i parametri per la configurazione di nfs, e sono indicati le cartelle da esportare via rete
Nel nostro caso conteneva
/opt/ltsp *(ro,no_root_squash,async)
15
Istituto Tecnico Industriale Statale –Liceo scientifico tecnologico “Benedetto Castelli”
Progetto Lazzaro – Creazione di un laboratorio thin­client con Linux e LTSP
che significa esportare la cartella /opt/ltsp verso tutta la rete in sola lettura.
/var/lib/tftpboot/ltsp/i386/
Cartella che contiene le immagini del kernel che utilizzeranno i client per bootare.
/opt/ltsp/i386
Cartella che contiene l'ambiente per il chroot del sistema minimale LSTP.
7.1 ­ Amministrazione del server
I vantaggi di una soluzione LTSP sono, oltre al risparmio di soldi e tempo di comprare e configurare diverse macchine, la facilita' di manutenzione e di amministrazione del tutto.
Poiche' LTSP e' una soluzione centralizzata tutto il lavoro di manutenzione deve essere svolto solo in un punto ( il server ), e operazione amministrative ( come l'installazione di un nuovo software ) devono essere svolte su una sola macchina.
Edubuntu mette a disposizione strumenti molto potenti per l'amministrazione quale Synaptic ( frontend grafico per apt ), che permette grazie a una connessione internet di installere e configurare molti software in pochi click, aptitude e ntop.
Aggiungere utenti e' altrettanto facile grazie agli strumenti integrati in gnome ( come users­
admin ) che permette in pochi secondi di aggiungere nuovi utenti e modificare i privilegi di utenti gia' esistenti.
Capitolo 8 ­ Schede dei software installati
Nella versione di Edubuntu 6.10 installata sui vari terminali sono presenti i seguenti programmi:
­ Il pacchetto di software OpenOffice.org, il quale comprende: Base, Calc, Draw, Math, Impress e Writer.
OpenOffice.org Base
OOo Base è un software che permette la creazione, la gestione e la modifica di database con un comodo frontend grafico, è l'equivalente di Microsoft Access.
OpenOffice.org Calc
OOo Calc è un software che gestisce i fogli elettronici, permette di effettuare calcoli, creare diagrammi e grafi, creare ed utilizzare macro e funzioni, è l'equivalente di Microsoft Excel.
16
Istituto Tecnico Industriale Statale –Liceo scientifico tecnologico “Benedetto Castelli”
Progetto Lazzaro – Creazione di un laboratorio thin­client con Linux e LTSP
OpenOffice.org Draw
OOo Draw è un software per la gestione delle immagini e per la grafica vettoriale, ha funzioni equivalenti a quelle di CorelDRAW.
OpenOffice.org Math
OOo Math è un software per la creazione e la gestione di formule matematiche, ogni formula creata con questo software può essere integrata negli altri prodotti di OpenOffice.org.
OpenOffice.org Impress
OOo Impress è un software che permette di creare e modificare delle presentazioni, è l'equivalente di Microsoft PowerPoint.
OpenOffice.org Writer
OOo Writer è un software che permette di creare e modificare testi, è un editor WYSIWYG ed è l'equivalente di Microsoft Word.
­ The Gimp The Gimp è un programma di fotoritocco e un editor di immagini vettoriali, è disponibile gratuitamente come free software ed è altamente modulare ( cioè può essere integrato con plug­in esterni, ed esiste una vasta comunità che sviluppa plug­in per Gimp ).
The Gimp è disponibile anche per Microsoft Windows e svolge molte delle funzioni che svolgono software proprietari molto costosi come PhotoShop.
­ Dr.Geo
Dr.Geo è un software che permette di lavorare con la geometria, creando e lavorando forme e figure e' molto simile a Cabri Geometrè, un software per Microsoft Windows.
­ Audacity
Audacity è un editor audio multipiattaforma che supporta molti formati di codifica, una modifica e un mixaggio di un numero infinito di tracce, equalizzazione, rimozione di rumori di fondo e molti altre cose.
Come per The Gimp Audacity e' supportato da una vasta comunità che sviluppa plug­in ed è impegnata ogni giorno al suo miglioramento.
Audacity e' disponibile come sotto licenza libera come Free Software.
17
Istituto Tecnico Industriale Statale –Liceo scientifico tecnologico “Benedetto Castelli”
Progetto Lazzaro – Creazione di un laboratorio thin­client con Linux e LTSP
­ Gcompris
GCompris è una raccolta di software di edutainment per bambini e ragazzi dai 2 ai 10 anni. Al suo interno sono contenute più di 70 possibili attività da svolgere relative ad alcuni campi tematici:
•
Scoprire il computer: l'utilizzo della tastiera, del mouse... •
Matematica: imparare a contare, memorizzare le le tabelline... •
Scienze: il ciclo dell'acqua, i sottomarini... •
Geografia: localizzare i vari luoghi su una mappa... •
Giochi: Scacchi, giochi di memoria... •
Lettura: allenamento alla lettura veloce... •
Altro: imparare a leggere l'orologio, puzzle di dipinti famosi... 18
Istituto Tecnico Industriale Statale –Liceo scientifico tecnologico “Benedetto Castelli”
Progetto Lazzaro – Creazione di un laboratorio thin­client con Linux e LTSP
Realizzatori della guida
Codazzi Roberto
[email protected] Pelucchi Nicolas
[email protected]
Stucchi Stefano
[email protected] Buttarelli Riccardo [email protected]
Cristini Nicolò
[email protected] , [email protected]
19