Die Ausgabe des Befehls ls -l zu einer typischen Gerätedatei sieht
ungefähr folgendermaßen aus:
crw------- 2 bin bin 193 0x010200 Jul 12 02:19 tty1p2 |
Die beiden fett gedruckten Felder sind die Major-Nummer (193, dezimal) und die Minor-Nummer (0x010200, hexadezimal).
Die Major- und die Minor-Nummer werden in numerischer Form
im Gerätetreiber kodiert; diese Form wird als dev_t-Format bezeichnet. Abbildung C-2, „Treibernummer
(dev_t-Format)“ verdeutlicht dieses Format. (PA-RISC verwendet
die Bytereihenfolge “Big-Endian”; d. h.
das Bit mit der Nummer 0 ist das Bit mit der höchsten Wertigkeit.)
Die Bits 0 bis 7 einer Gerätedatei in HP-UX
werden für die Kodierung der Major-Nummer verwendet.
Die Bits 8 bis 31 werden für die Kodierung der Minor-Nummer
verwendet. Die Hexadezimalnotation für die Minor-Nummer
entspricht dem Format 0xNNNNNN, wobei jede hexadezimale Ziffer N für jeweils vier Bits steht. (Dabei sind
Werte von 0 bis F gültig; 0 bedeutet, dass keines der vier Bits gesetzt ist,
bei der Ziffer F sind alle vier Bits gesetzt.)
Mit den Bits 8 bis 15 wird die Kartennummer der Schnittstellenkarte kodiert,
d. h. die Nummer, die die Reihenfolge angibt, in der HP-UX
beim Einbinden in das System die bestimmte Klasse der Schnittstellenkarte findet.
Diese Nummer wird in der Spalte I der ioscan-Ausgabe in dezimaler Notation angezeigt.
Mit den Bits 16 bis 31 werden treiberabhängige Merkmale
kodiert; diese sind in Tabelle C-4, „Bitzuordnungen für Bandlaufwerke“ Tabelle C-5, „Bitzuordnungen für Platten und magnetooptische
Geräte“ Tabelle C-6, „Bitzuordnungen für serielle Geräte,
Netzwerkgeräte und Drucker“ und Tabelle C-7, „Bitzuordnungen für verschiedene Geräte“ beschrieben.
Die Informationen in diesen Tabellen können beim Aufbau
von Minor-Nummern verwendet werden, wenn ein Treiber eine bestimmte
oder nicht standardmäßige Funktion eines Geräts
verwenden soll.
Tabelle C-1, „Dezimale, binäre und hexadezimale Ziffern“ zeigt die Umwandlung
der Bitzuordnung in hexadezimale Ziffern.
Tabelle C-1 Dezimale, binäre und hexadezimale Ziffern
Dezimal | Binär | Hex |
|---|
0 | 0000 | 0 |
1 | 0001 | 1 |
2 | 0010 | 2 |
3 | 0011 | 3 |
4 | 0100 | 4 |
5 | 0101 | 5 |
6 | 0110 | 6 |
7 | 0111 | 7 |
8 | 1000 | 8 |
9 | 1001 | 9 |
10 | 1010 | A |
11 | 1011 | B |
12 | 1100 | C |
13 | 1101 | D |
14 | 1110 | E |
15 | 1111 | F |
Beispiele
zum Erstellen von Minor-Nummern |
 |
Eine
Minor-Nummer für einen MUX-Treiber
Die bereits gezeigte Minor-Nummer 0x010200 für den Treiber mux2 kann wie folgt dargestellt werden:
Tabelle C-2 Minor-Nummer für den MUX2-Treiber
Bits | 8-11 | 12-15 | 16-19 | 20-23 | 24-27 | 28-31 |
|---|
Binär | 0000 | 0001 | 0000 | 0010 | 0000 | 0000 |
Hex (0x) | 0 | 1 | 0 | 2 | 0 | 0 |
| 0000 0001 | | Die acht Bits der Kartennummer ergeben 1 (tty1 im Namen der Gerätedatei). |
| 0000 0010 | | Die Anschlussadresse ist 2 (p2 im Namen der Gerätedatei). |
| 0000 0000 | | Die übrigen Bits sind jeweils auf Null
gesetzt. |
Eine
Minor-Nummer für ein SCSI-Plattengerät
Die Minor-Nummer 0x023000 steht für ein SCSI-Plattengerät
mit der SCSI-Adresse 3, die an eine SCSI-Schnittstelle mit der Kartennummer
2 angeschlossen ist. Diese Nummer kann wie folgt dargestellt werden:
Tabelle C-3 Minor-Nummer für ein SCSI-Plattengerät
Bits | 8-11 | 12-15 | 16-19 | 20-23 | 24-27 | 28-31 |
|---|
Binär | 0000 | 0010 | 0011 | 0000 | 0000 | 0000 |
Hex (0x) | 0 | 2 | 3 | 0 | 0 | 0 |
| 0000 0010 | | Die acht Bits der Kartennummer ergeben 2 (c2 im Namen der Gerätedatei). |
| 0011 | | Die SCSI-Adresse (Zieladresse) des Geräts
lautet 3 (t3 im Namen der Gerätedatei). |
| 0000 0000 0000 | | Die übrigen Bits sind jeweils auf Null
gesetzt. (d0 im Namen der Gerätedatei). |
Anpassen
der Bits zum Lesen einer Diskette
Die von Band- und Diskettenlaufwerken verwendeten Datenträger
haben unterschiedliche Schreibdichten. Es kann vorkommen, dass Sie
eine Diskette lesen müssen, die mit einer älteren
Technologie beschrieben wurde.
Beispiel: Ein Rechner der Serie 800, Modell E, hat ein integriertes
SCSI-Diskettenlaufwerk; normalerweise lautet die Minor-Nummer dieses Laufwerks 0x005000. Wenn Sie mit diesem Laufwerk eine Diskette lesen wollen,
die auf einem 2,88-MB-Laufwerk erstellt wurde, müssen Sie
die Minor-Nummern 0x005004 und 0x005005 erstellen. Wie in Tabelle C-5, „Bitzuordnungen für Platten und magnetooptische
Geräte“ gezeigt, werden mit diesen beiden Minor-Nummern
die Bits im Bereich 28-31 auf die Kapazität 2,88-MB angepasst;
bei Verwendung dieser Nummern können Sie also die Diskette
lesen, unabhängig davon, ob eine bestimmte Geometrie festgelegt
wurde oder nicht.