# Linux Terminal Server Project

LTSP (Linux Terminal Server Project) è un software libero atto a centralizzare una rete di computer GNU/Linux. In una rete di questo tipo i client sono in grado di avviarsi via rete senza alcun sistema operativo precedentemente installato, o persino senza disco rigido, ed essere unilateralmente gestiti in modo centralizzato da un server.

## Caratteristiche dei client

In una rete LTSP è possibile configurare due differenti tipi di client: i thin e i fat client, solitamente a seconda delle risorse hardware a disposizione sugli stessi.

### Thin client

Il thin client prevede caratteristiche hardware minimali, in quanto è utilizzato come proiezione visiva della sessione e dei processi instaurati sul server.
Il suo funzionamento è approssimativamente il seguente:
* Il BIOS del thin client sarà configurato per effettuare l'avvio via rete, ovvero tramite Preboot Execution Environment;
* Il thin client effettuerà richieste DHCP (o a volte BOOTP) al server centrale;
* Il server risponde con: indirizzo IP, gateway, server DNS e percorso per lo scaricamento del kernel;
* Il client scaricherà il kernel (che spesso si tratta di un bootloader derivato da SYSLINUX) attraverso il protocollo TFTP);
* Il client scaricherà anche il ramdisk iniziale (initrd), preparato appositamente con gli script di avvio;
* Il client provvede ad avviare il kernel: in questa fase il client inizia ad essere indipendente, e solitamente ri-effettua una richiesta DHCP;
* Il client carica in RAM il ramdisk iniziale e monta una cartella remota dal server utilizzando il protocollo NFS, per poter accedere a software non incluso nel limitato ramdisk iniziale;
* A seconda di come configurato potrà avviare un client X.Org, un client terminale, una sessione bash locale, un client RDP (per i client Microsoft Windows) o altri.
La peculiarità di questo sistema è che sui client non deve essere installato niente, fatta eccezione per il software di avvio di rete, che molti BIOS, schede di rete e schede madri integrano nativamente.
Nel caso non fosse presente il suddetto software di avvio di rete integrato esistono progetti come Etherboot e Netboot che si prefiggono lo scopo di preparare ROM per i chip delle varie schede. C'è da menzionare anche il progetto Rom-o-matic Archiviato il 3 febbraio 2007 in Internet Archive., "un'interfaccia web" per Etherboot, dalla quale si possono scaricare anche immagini avviabili per dischi fissi, cdrom, floppy disk e quant'altro.

### Fat client

Il fat client all'avvio scarica dal server un'immagine completa del sistema, diventando in grado di rendersi indipendente dal server e non appesantirlo. Il fat client sfrutta quindi le proprie caratteristiche hardware.

## Dispositivi locali

Nell'ultima versione di LTSP esiste anche il supporto ai dispositivi locali come CD-ROM, floppy disk, dischi fissi, e unità USB. È anche possibile usufruire dell'audio locale grazie ad un mini server ALSA inserito all'interno del ramdisk.

## Vantaggi
### Gestione

    Non occorre mantenere il software di un'intera rete di computer, basta mantenere solo il software sul server;

### Trashware

    È possibile recuperare computer in stato di obsolescenza;

### Energia elettrica

    Esistono thin client che abbattono notevolmente l'energia richiesta (~ 14 Watt a stazione) rispetto a una comune workstation che in media utilizza dai 100 ai 200 Watt.

## Svantaggi
### Carico di rete

    La banda a disposizione per ogni client deve essere almeno 54Mbps, meglio se 100, a causa del traffico della sessione grafica di X.org;

### Interruzione del servizio

    Se il server dovesse smettere di funzionare tutti i client non funzionerebbero più. Un sistema di cluster implementato a dovere ovvierebbe a questo problema;

### Carico del server

    Il server deve essere all'altezza del carico che deve gestire (parametri importanti sono una potenza di calcolo adeguata, RAM a sufficienza e velocità dei dischi accettabile).