

Gerätedateien (engl.: Devices) enthalten im Unterschied zu »normalen« Dateien keine Daten. Ein Zugriff des Betriebssystems auf eine Gerätedatei bedeutet einen Zugriff auf das entsprechende Peripheriegerät, welches durch die Gerätedatei dargestellt wird. Häufig wird zwischen Gerät und Gerätedatei gar nicht mehr unterschieden, für beide wird einfach der Begriff »Device« verwendet.
Informationen über das Anlegen von Gerätedateien im Verzeichnis
/dev finden Sie im Kapitel »Creating Devices in the /dev
directory« der Serial HOWTO.
Devices haben unter Linux Major und Minor Numbers. Jeder serielle
Port kann durch zwei gültige Gerätedatein im /dev-Verzeichnis
repräsentiert sein: ttyS und cua. Die entsprchenden
Gerätetreiber (d.h. die Software, die auf diese Dateien zugreift)
verhalten sich leicht unterschiedlich. Das cua-Device ist überholt
und wird in Zukunft nicht mehr verwendet werden (siehe auch
Die cua-Gerätedatei).
DOS/Windows verwendet den Namen »COM« für die seriellen
Schnittstellen, während das setserial-Programm die Namen »tty00«,
»tty01«, ... gebraucht. Verwechseln Sie diese Bezeichner nicht mit
/dev/tty0, /dev/tty1, usw., die für Ihre Konsole
verwendet werden, aber keine seriellen Ports sind. Die standardmäßigen
DOS-Namen (COM1, usw) und I/O-Adressen sind in folgender Tabelle
aufgeführt (die Werte auf Ihrem System können evtl. davon abweichen):
set- IO
DOS serial major minor major minor Adresse
COM1 tty00 /dev/ttyS0 4, 64; /dev/cua0 5, 64 3F8
COM2 tty01 /dev/ttyS1 4, 65; /dev/cua1 5, 65 2F8
COM3 tty02 /dev/ttyS2 4, 66; /dev/cua2 5, 66 3E8
COM4 tty03 /dev/ttyS3 4, 67; /dev/cua3 5, 67 2E8
In allen Linux-Distributionen sollten die ttyS-Devices bereits
angelegt sein (und auch die cua-Devices, bis sie endgültig abgeschafft
werden). Sie können dies durch folgende Befehle überprüfen:
ls -l /dev/cua*
ls -l /dev/ttyS*
Bei einigen Installationen werden zwei zusätzliche Devices
angelegt, /dev/modem für das Modem und /dev/mouse
für die Maus. Beides sind symbolische Links auf die entsprechende
Gerätedatei in /dev, die Sie während der Installation
ausgewählt haben (wenn Sie eine Bus-Maus haben ist
/dev/mouse ein Link auf das Bus-Maus Device).
Es gab einige Diskussionen um den Sinn von /dev/mouse und
/dev/modem. Von der Verwendung dieser symbolischen Links wird
abgeraten. Insbesondere könnten sich Probleme mit den Lock-Dateien
ergeben, wenn Sie das Modem für eine Einwahl von aussen zur Verfügung
stellen wollen und /dev/modem verwenden. Sie können diese
Links verwenden, aber stellen Sie sicher, dass sie auf das
richtige Device verweisen. Andererseits müssen Sie u.U. andere
Applikationen umkonfigurieren, wenn Sie diese Links verändern oder
löschen.
Jedes ttyS Device hat eine korrespondierendes cua Device.
Aber das cua Device wird in Zukunft abgeschafft, und so empfiehlt
es sich, ttyS zu verwenden (solange cua nicht explizit
notwendig ist). Es gibt einen Unterschied zwischen cua und ttyS,
aber ein findiger Programmierer kann es erreichen, dass sich ein
ttyS Port wie ein cua Port verhält, so dass es keine
Notwendigkeit mehr für cua gibt. Eine Ausnahme bilden
einige ältere Programme, die cua verwenden müssen.
Worin besteht nun der Unterschied? Der hauptsächliche Unterschied
zwischen cua und ttyS besteht darin, was in einem
C-Programm passiert, wenn ein normaler open()-Aufruf versucht,
einen Port zu öffnen. Ein cua Port kann einfach geöffnet werden,
selbst wenn die Modem Signalleitungen überprüft werden und die
DCD Leitung ein Öffnen eigentlich verbietet (weil sich niemand eingewählt
hat und es daher auch kein Trägersignal gibt). Durch schlaue
Programmierung kann man es aber erreichen, dass sich ein ttyS
Port genauso verhält wie ein cua Port.
Dies ist der Grund, warum cua früher für abgehende und ttyS für
eingehende Verbindungen verwendet wurde.
Ab Linux Kernel 2.2 wird eine Warnmeldung in die Kernel-Logdatei
geschrieben, wenn ein cua Port verwendet wird. Dies ist ein Zeichen
dafür, dass cua Ports nicht mehr lange unterstützt werden.

