Next: Die Tastatur
Up: Die Linux-Console
Previous: Die Linux-Console
Der Monitor selbst wird nicht vom Betriebssystem angesteuert, das ist Sache der Grafikkarte. Um ein Zeichen auf dem Bildschirm darzustellen, gibt Linux bestimmte Befehle an die Grafikkarte, die dann entsprechende Signale an den Monitor sendet.
Beim einfachen Textbildschirm können nur Zeichen aus einem beschränkten Zeichensatz (Font) dargestellt werden. Jedes dieser Zeichen ist aus einzelnen Bildpunkten aufgebaut. Wie so ein Zeichen im Einzelnen aussieht, wird zunächst nicht vom Betriebssystem, sondern von der Grafikkarte bestimmt. Der Zeichensatz ist dort in einem nicht flüchtigen Speicher (ROM) gespeichert.
Nach dem Einschalten arbeitet Linux also im Prinzip mit dem gleichen Zeichensatz wie MS-DOS. Dieser Zeichensatz hat zwar mit dem IBM-PC eine sehr weite Verbreitung, in einer internationalen, offenen Systemwelt hat er aber keinen Bestand. Für den Austausch von Daten zwischen Unix-Systemen im Internet sind die Zeichensätze nach der ISO-Norm besser geeignet. Aus diesem Grund ist Linux standardmäßig nach dem ISO-Latin1-Zeichensatz ausgerichtet, in dem zu den 126 internationalen ASCII Zeichen noch die Sonderzeichen der mittel-, nord- und südeuropäischen Länder enthalten sind.
Um diese Zeichen darzustellen, benutzt der Kernel eine Übersetzungstabelle, die die ISO-Latin1-Zeichen in die entsprechenden Codes des PC-Zeichensatzes umsetzt. Weil der PC-Zeichensatz nicht alle Buchstaben von ISO-Latin1 enthält, hat dieser Standardzeichensatz von Linux viele Lücken, die durch das PC-Zeichen Nummer 254 dargestellt werden.
Linux stellt noch drei weitere Übersetzungstabellen zur Verfügung. Eine dient zur Darstellung von vt100-Grafikzeichen, eine andere stellt den PC-Zeichensatz identisch dar und die letzte kann frei definiert werden, indem vom Benutzer mit dem mapscrn(1)-Kommando eine Tabelle aus dem Verzeichnis /usr/lib/kbd/consoletrans geladen wird.
4|c| | CONTROL-O | CONTROL-N | |||
1 | ISO-Latin1 | PC | ESC(B | ESC)B | |
2 | vt100-Grafik | PC | ESC(0 | ESC)0 | |
3 | PC | PC | ESC(U | ESC)U | |
4 | benutzerdefiniert | PC | ESC(K | ESC)K |
Die aktuelle Tabelle wird durch einen von zwei Zeigern bestimmt, zwischen denen für jedes virtuelle Terminal separat mit CONTROL-O und CONTROL-N umgeschaltet werden kann. Jeder der beiden Zeiger kann mit den in der Tabelle gezeigten ESC-Sequenzen auf eine der vier Tabellen gesetzt werden.
Per Default ist der zweite Zeiger auf die vt100-Grafiktabelle eingestellt. Deshalb erscheint ein typisches Durcheinander von Strichgrafiken und Großbuchstaben, wenn versehentlich eine Binärdatei mit CONTROL-N auf den Bildschirm geschrieben wurde. Sie erhalten das alte Schriftbild wieder, indem Sie mit CONTROL -O auf den ersten Zeiger zurückschalten.
Wenn Sie mit einer der ESC-Sequenzen einen der Zeiger auf eine andere Tabelle setzen, gilt diese Übersetzung für alle virtuellen Terminals, die aktuell mit diesem Zeiger arbeiten.
Wenn Ihnen der PC-Zeichensatz nicht genügt, können Sie mit dem setfont-Kommando einen komplett neuen Zeichensatz in den Kernel laden. Dabei werden die Pixelbilder der einzelnen Zeichen ersetzt. Sie können damit den vollständigen ISO-Latin1-Zeichensatz oder auch hebräische oder kyrillische Schriftzeichen laden.
Die Fontdateien befinden sich im Verzeichnis
/usr/lib/kbd/consolefonts. Um beispielsweise den
vollständigen ISO-Latin1-Zeichensatz zu aktivieren, sind die
folgenden Kommandos nötig:
$ setfont iso01.f16
Loading 8x16 font from file /usr/lib/kbd/consolefonts/iso01.f16
$ mapscrn trivial
Loading symbolic screen map from file /usr/lib/kbd/consoletrans/trivial
$ echo "^[(K"
$ _
Nach dieser Einstellung haben Sie auf der Console genau den gleichen
Zeichensatz wie in einem xterm.
Jedes virtuelle Terminal kann durch ein ``reset'' in einen definierten Zustand (zurück-) gebracht werden. Wenn kein Kommando dieses Namens vorhanden ist, kann dasselbe Ergebnis durch setterm -reset oder durch Eingabe von ESC-c erreicht werden.
Das Linux Anwenderhandbuch