Die Klasse Device hat die Aufgabe, einem Treiber-Programm
einige Eigenschaften zur Verfügung zu stellen, die jeder Treiber
benötigt. Am Anfang eines Gerätetreibers wird eine Instanz dieser
Klasse angelegt, und dem Konstruktor
werden die Aufrufparameter des Programms übergeben. Mit Hilfe dieser
Parameter wird die Errorklasse initialisiert (siehe
Abschnitt
). Damit steht deren Funktionalität, ohne
eine explizite Initialisierung durchzuführen, automatisch zur
Verfügung.
Als nächstes werden alle Ein- und Ausgabeleitungen außer dem Messagesystemkanal geschlossen und das Programm zum Hintergrundprozeß gemacht. Diesen Vorgang nennt man im UNIX-Jargon ,,das Programm daemonisieren``. Dies ist notwendig, da es bei so vielen beteiligten Prozessen nicht möglich ist, für alle Prozesse ein eigenes Terminal zu haben, über das sie ihre Ein- und Ausgaben tätigen könnten. Würden sie alle dasselbe Terminal benutzen, könnte man die Ein- und Ausgaben nicht mehr eindeutig den einzelnen Programmen zuordnen. Daher wird die gesamte Kommunikation über das Messagesystem abgewickelt, über das die Prozesse auch untereinander kommunizieren. Man kann das Programm aber zu Testzwecken auch im Vordergrund laufen lassen, indem man den Parameter -n angibt. Dabei entfällt dann das ,,Daemonisieren``.
Wenn das Programm mit -? oder falschen Parametern aufgerufen
wird, besorgt die Klasse Device die Ausgabe einer Meldung, die
die Benutzung des Programms erklärt (siehe Abb. ).
Die Funktion get_names stellt die Namen zur Verfügung, die am Ende der Kommandozeile eingegeben wurden. Hier steht üblicherweise der Gerätename (z.B. dev/target/1 für den Targettreiber).
In MUPIX ist es möglich, mehrere unabhängige Bereiche (Domänen) zu
definieren, in denen Experimente gesteuert werden
(siehe [Kra92d]). Die Funktion get_domain der Klasse
Device gibt den Namen der Domäne wieder, in der das Experiment
läuft und der in der Umgebungsvariablen ST_DOMAIN festgehalten ist. Der
Domänenname wird für die Kommunikation benötigt.