# Linux Terminal Server Project

Das Linux Terminal Server Project (LTSP) ist ein Linux-Programmpaket, das dazu dient, Benutzern von Terminals Zugriff auf den Terminalserver zu gewähren, von dem aus Anwendungen ausgeführt und mittels des Terminals gesteuert werden können. Einsatzgebiete sind beispielsweise Internetcafés oder Büros, bei denen an jedem Arbeitsplatz die gleichen Anwendungen zur Verfügung stehen und die Kosten pro Arbeitsplatz gering gehalten werden sollen. Der Effekt der Kostenminimierung entsteht dadurch, dass für die Terminals keine schnellen Systeme und mitunter keine Festplatten vorgehalten werden müssen. LTSP ist freie Software und seine Veröffentlichung steht unter der Lizenz GPLv2.

## Terminals

Die Terminals können aus alten, leistungsschwachen Rechnern bestehen (z. B. Pentium I mit 90 MHz, ohne Festplatte, 100 MBit Netzwerkkarte, Grafikkarte; ein vorhandener PCI-Bus erleichtert hierbei die Hardwareerkennung) oder aus dedizierten Thin Clients. Als Wirtsbetriebssystem dient eine beliebige Linux-Distribution. Das Booten der Terminals erfolgt über PXE-fähige Netzwerkkarten, mittels Diskette oder CD-ROM.

## Verwendete Technologie
### X-Server

Technisch gesehen vereinfacht LTSP die Ausnutzung der Fähigkeiten des grafischen X-Servers, ein beliebiges Linux-Programm in die zwei Teile Programmausführung und Anzeige zu trennen. Die Programmausführung erfolgt auf einem leistungsstarken Server, während die Anzeige zusammen mit der Eingabe über Tastatur oder Maus auf beliebig vielen Terminals erfolgen kann. Die Anzahl der Thin Clients wird hier von der Übertragungsrate des Netzwerkes und der Leistungsfähigkeit des Servers bestimmt.

### Lokale Geräte

Für den Einsatz von lokalen Geräten an den Thin Clients verwendet LTSP eine eigene Entwicklung, eine Mischung aus udev und FUSE. Mit dieser ist es möglich, USB-Massenspeicher, CD-Roms und Disketten an die Clients anzuschließen und sie auf dem Server auszulesen.

## Vor- und Nachteile

LTSP hat die gleichen Vor- und Nachteile, welche jede Terminalserver-Installation mit sich bringt.
Weitere spezifische Vorteile:
* Unterstützung lokaler (also im Thin Client eingebaute) Soundkarten und lokale Speichermedien wie USB-Stick oder CD-ROM.
* Möglichkeit preiswerter Ausstattungen von Schulen und Internetcafés. Ein Beispiel einer Linux-Distribution für Schulen mit vorinstalliertem Linux Terminal Server ist Edubuntu.
* Die Thin Clients benötigen keinerlei Software außer dem BIOS, also keine weiteren Systeme oder Programme in einem ROM. Sie müssen deshalb nicht aktualisiert werden und können Jahrzehnte verwendet werden. Es können auch alte PCs als Thin Clients dienen.
* Administratoren können fast alle Administrations-Aufgaben am System auch graphisch am Thin Client erledigen.

## 3D und Video

Da die eigentlichen Anwendungen auf dem Server ausgeführt werden und die Darstellung der Ausgabe auf den Clients über einen entfernten X-Server auf den Client über eine Ethernetverbindung realisiert wird, kommt es zu Problemen, z. B. beim Einsatz von OpenGL-Technologie. Angepasste Grafikkartentreiber stellen ein DRI (Direct Rendering Interface) bereit, über die Applikationen 3D-Anweisungen direkt über den internen Computerbus an die Grafikkarte leiten können. Ist die Grafikkarte physikalisch von der Anwendung getrennt, also nicht im selben Computersystem, ist diese schnelle Methode der 3D-Darstellung nicht möglich. Dies ist in LTSP-Systemen der Fall. Trotzdem bietet das X-Server-System die Möglichkeit, 3D-Anweisungen an die Grafikkarte zu leiten, ohne das Ergebnis lokal berechnen zu müssen. Voraussetzung ist natürlich ein X-Server mit Treibern, die 3D-Funktionen unterstützten (bei NVIDIA und ATI proprietär).
3D-Anwendungen sind also durchaus auf den Thinclients abbildbar, jedoch abhängig von der Ethernet-Anbindung, da alle OpenGL-Befehle über das Netzwerk gesendet werden.
Spiele mit relativ simplen 3D-Anforderungen wie X-Moto sind über eine 100-Mbit-Verbindung durchaus betrachtbar.
3D-Modelling-Anwendungen fallen nicht gänzlich in dieses Feld, da die finale 3D-Berechnung durch Software Renderingengines bewerkstelligt wird. Die OpenGL-Funktionalität des XServers findet allerdings während der Modellierung an sich Verwendung. Blender lässt sich via LTSP und vernünftigen Grafikkarten-Treibern beispielsweise gut bedienen.
Für die Videodarstellung gilt ähnliches. Unterstützt der X-Server mit den entsprechenden Treiber-Modulen ein passendes Video-Protokoll wie XVideo (wird etwa vom Standard VESA-Modul nicht unterstützt), ist eine gute Videodarstellung je nach Verbindungsrate zu erwarten. Mit einer 100-MBit-Verbindung ist das Ansehen einer SVCD durchaus möglich, HDTV-Inhalte überfordern jedoch selbst ein Gigabit-Netzwerk.

## Versionen
### LTSP Version 4

Ältere LTSP-Versionen stellen durch ihr Projekt eigene Softwarepakete der Linux-Umgebung für die Clients zur Verfügung (Kernel, libraries, x-server etc.). Diese sind auf Minimalismus, Größe und Geschwindigkeit optimiert. Ein Nachinstallieren von Programmen auf den Clients (bzw. deren NFS-Umgebung) bereitet schon alleine durch das Fehlen einer Paketverwaltung wie RPM oder APT Schwierigkeiten.
Mit der Zeit wuchs nicht nur die Leistung der Server- und Desktop-Rechner, sondern auch die der Thin Clients. Clients mit einer Leistung kleiner 300 MHz sind mittlerweile eher unüblich. So gilt es doch in der Regel zumindest gängige Monitore mit einer Auflösung ≥ 1280 × 1024 zu bedienen, wofür wiederum eine Grafikkarte mit AGP-Steckplatz gängig ist.
Somit ergeben sich für die Clients auch größere Arbeitsgebiete, wie etwa „Video decoding on client side“, Irda-Ansteuerung (Infrarot-Fernbedienung), Installation proprietärer Grafikkartentreiber (für AIX, TV-Out, OpenGL beispielsweise), Nutzung lokaler Geräte wie TV-Karten etc.

### LTSP Version 5

Die aktuellen LTSP-Versionen liefern den Clients eine Umgebung, die einer regulären Linux-Distribution entspricht. Dadurch kann der Benutzer das Linux-System der Thin Clients beliebig erweitern und Pakete nach eigenem Wunsch installieren. So lassen sich die Clients mit besserer Unterstützung für ACPI, Irda usw. erweitern. Da dies wenig mit dem ursprünglichen LTSP-Projekt gemein hat, erhielt es den Codenamen 'muekow'.

### LTSP ab Version 19.08

Am 18. August 2019 gab der Maintainer des Projekts bekannt, dass LTSP von Grund auf neu programmiert wurde und künftig die Versionsnummer „Jahr.Monat“ tragen werde. LTSP5 wurde damit zu einer historischen Version. Der Schwerpunkt soll künftig auf der Unterstützung von Fat Clients sowie UEFI und Wayland liegen. Debian liefert mit seiner 2022 aktuellen Version „Bullseye“ die stabile Version 21.01 aus.

## Unterschiede zwischen den Versionen

| Version | LTSP 4 | LTSP 5 (MueKow) |
| GUI Export | XDMCP | ssh -X |
| Remote login (X Display Manager) | KDM/GDM | LTSP Display Manager (LDM) |
| Paketform | tarball | In der Distribution |
| Root Dateisystem | NFS 3 | NBD |
| Authentifizierung | XDMCP | SSH |