Les fichiers spéciaux (HPUX)

vendredi 17 avril 2009
par  Jerome ROBERT
popularité : 5%

Les fichiers spéciaux

 

A. introduction

1. présentation

Les fichiers spéciaux font référence aux
périphériques et se trouvent dans le répertoire
/dev.

ls -l /dev/term

crw—w----

1

root

tty

128,12

Dec 31

17:21

app1

|

|

|

|

|

|

|

|

type et droits

liens

propriétaire

groupe

majeur,mineur

date

heure

nom du fichier

|

 

 

 

|

|

 

 

c caractères

|

identifie les périphériques d’une classe

b blocs

 

classe du périphérique

 

 

 

p tubes

 

Le répertoire /dev

/dev/pts

contient les fichiers spéciaux pour les
pseudos tty ( telnet ou rlogin )

/dev/pty

répertoire des pseudos tty esclaves

/dev/md

contient les fichiers spéciaux pour les
mémoires sur disque ( zone mémoire en partition
disque )

/dev/dsk

contient les fichiers spéciaux pour les
disques en mode blocs

/dev/rdsk

contient les fichiers spéciaux pour les
disques en mode caractères

/dev/term

contient les fichiers spéciaux pour les
terminaux

/dev/....

fichiers spéciaux pour streams, accès
mémoire, console, etc...

 

Les noms des fichiers spéciaux changent d’une machine à
l’autre. Ils sont gérés à l’aide de programmes
spécialisés du noyau. Ces gestionnaires de
périphériques sont appelés des drivers. Il
existe deux types de « drivers » : mode bloc et mode
caractère .

Deux entiers sont associés à chaque fichier spécial
 :

  •  le majeur qui désigne
    le driver,

  •  le mineur ( transmis au majeur ) qui désigne un
    périphérique particulier pour ce driver ou une
    utilisation particulière du périphérique ( une
    densité par exemple )

 

2. Les modes d’accès aux périphériques :

  • Mode bloc ( disques durs, disquettes )

 

L’accès à ces périphériques se fait à
l’aide de requêtes au système de gestion de fichiers du
noyau. Celui-ci gère un ensemble de tampons caches permettant
de différer les écritures physiques et d’anticiper
éventuellement les lectures. Un périphérique
géré en mode bloc donne la possibilité de
création d’un filesystem. 

 

  • Mode caractère ( terminaux , bandes , imprimantes ...
    )

- Transferts d’octets séquentiels ( accès brut )
- Gestion de caractères spéciaux et d’interruptions

 

Dans ce mode caractère, il existe deux types de lecture :
- Type canonique : Les caractères, stockés dans un tampon, ne sont transmis que sur réception d’un caractère de validation.
- Type raw : La lecture s’effectue caractère par caractère.( Exemple  : un éditeur plein écran )

 

De ce fait, les périphériques en mode bloc ont deux
entrées sous /dev : l’une de type b et l’autre de type c .

droits d’accès

nombre de lien
sur le fichier

proprio

groupe

major
number

minor
number

date et heure
de dernière
modification

Nom du fichier
spécial

crw-rw-rw-

2

bin

bin

212

0x010040

Dec

12

12:11

/dev/rmt/0mn

crw-r------

1

bin

bin

214

0x002000

Dec

12

12:11

/dev/rdsk/c0t2d0

brw-rw-rw

1

bin

bin

26

0x002000

Dec

12

12:11

/dev/dsk/c0t2d0

 

 

 

3. Les fichiers spéciaux associés aux terminaux

 

Les fichiers spéciaux associés aux
terminaux, modems et imprimantes n’ont pas de sous répertoires
spécifiques et sont stockés dans le répertoire
/dev.

/dev/ttyCpP

terminaux

/dev/ttydCpP

terminaux

/dev/culCpP

modem

/dev/lpC

imprimante

avec

C : Désigne le numéro d’unité du contrôleur de la carte MUX
P : Désigne le numéro de port sur la carte MUX.

 

4. Les fichiers spéciaux associés aux disques

 

/dev/[r]dsk/cCtTdD[sS]

C

désigne le contrôleur

T

désigne le numéro de cible, numéro
de disque ( adresse SCSI )

D

désigne le numéro d’unité du périphérique

S

 désigne le numéro de section
du disque

 

5. Les fichiers spéciaux associés aux cassettes

 

/dev/rmt/cCtTdD[options]

Options :

T

désigne le numéro de cible

BEST

Active les options les plus performantes offertes par le
périphérique

h|m|l

indique la densité h (high):6250bpi, m(medium):1600,
l(low):800

n

non rembobinage

c

compression des données

b

mode Berkeley en lecture

 

B. La mise en oeuvre de nouveaux périphériques

 

1. commande ioscan

La commande ioscan pemet de détecter les modules hardware
du système ( processeurs, mémoire, cartes d’interface,
disques, lecteurs de bandes, ...). Pour chaque module, la commande
liste par défaut le "hardware path" du module, sa
clase et une description.

 

Syntaxe :

/usr/sbin/ioscan [-k|-u]
[-d driver|-C class] [-I
instance] [-H hw_path] [-f[-n
]|-F[-n]] [devfile]

/usr/sbin/ioscan -M <I>driver</I>

-H
<I>hw_path</I>

[-I instance]

 

Les options :

k

Liste les données d’entrées/sorties du noyau.

u

Restreint l’affichage aux matériels "utilisables"
( ceux qui ont une instance et un driver au sein du noyau )

d driver

Restreint l’affichage aux matériels contrôlés
par le driver mentionné

C class

Restreint l’affichage à la classe de matériels
mentionné

I instance

Restreint l’affichage à l’instance mentionné

H

Restreint l’affichage aux matériels correspondant à
un "hardware path"

f

liste détaillée

n

liste également les noms des fichiers spéciaux

M divers

Spécifie le driver à utiliser (à combiner
avec l’option H )

-F

la liste est affichée sous forme de champs séparés
par une virgule



Exemples :

/usr/sbin/ioscan -k
  
H/W Path Class Description
==========================================
56              bc Bus Converter
56/52           ext_bus HP 28655A - SCSI Interface
56/52.0         target
56/52.0.0       tape SCSI Tape
56/52.1         target
56/52.1.0       disk HP C2247M1 - SCSI Disk
56/52.2         target
56/52.2.0       disk HP C2247M1 - SCSI Disk
56/52.3         target
56/52.3.0       disk TEAC FC-1 ... - SCSI Disk
56/52.5         target
56/52.5.0       disk HP C2247M1 - SCSI Disk
56/52.6         target
56/52.6.0       disk HP C2247M1 - SCSI Disk
...
/usr/sbin/ioscan -f
Class I H/W Path Driver S/W State H/W Type Description
========================================================================
...
ext_bus         0 8/0           c720            CLAIMED INTERFACE F/W SCSI
target          0 8/0.5         tgt             CLAIMED DEVICE
disk            0 8/0.5.0       sdisk           CLAIMED DEVICE HP C2247
ba              0 8/12          bus_adapter     CLAIMED BUS_NEXUS Core I/O Adapter
ext_bus         2 8/12/0        CentIf          CLAIMED INTERFACE Parallel Interface
audio           0 8/12/1        audio           CLAIMED INTERFACE Audio
tty             0 8/12/4        asio0           CLAIMED INTERFACE RS-232C
ext_bus         1 8/12/5        c700            CLAIMED INTERFACE SCSI
target          1 8/12/5.0      tgt             CLAIMED DEVICE
disk            1 8/12/5.0.0    sflop           CLAIMED DEVICE TEAC FC-1
...
lan             0 8/12/6        lan2            CLAIMED INTERFACE LAN
bc              2 10            ccio            CLAIMED BUS_NEXUS I/O Adapter
graphics        0 10/0          graph3          CLAIMED INTERFACE Graphics
...
/usr/sbin/ioscan -fn -H 2/0/7
Class I H/W Path Driver S/W State H/W Type Description
===========================================================================
ext_bus 1 2/0/7         c700    CLAIMED INTERFACE Built-in F/W SCSI
target  3 2/0/7.5       target  CLAIMED DEVICE
disk    2 2/0/7.5.0     sdisk   CLAIMED DEVICE HP C2247
                /dev/dsk/c1t5d0 /dev/rdsk/c1t5d0
...

2. commande mknod

Dans une configuration standard, les fichiers spéciaux sont
fournis à l’installation du système et l’ajout des
périphériques usuels se fait à l’aide d’un
utilitaire qui lance lui-même la commande.

De ce fait, il est rare que cette commande « mknod »
soit utilisée directement par l’administrateur, sauf, par
exemple, pour recréer une entrée accidentellement
détruite ou pour créer délibérément
des synonymes ( mêmes couples « majeur - mineur » ).

 

La commande /etc/mknod permet de créer :

  • un fichier spécial

/etc/mknod nom b | c majeur mineur
/etc/mknod /dev/term/app1 c 128 12

 

  • un tube nommé

/etc/mknod nom p
/etc/mknod /dev/fifo p

 

3. commande mksf

La commande mksf est utilisée afin de créer un
fichier spécial si le périphérique est déjà
connu du système. 

Syntaxe :

/sbin/<B>mksf</B> [-C class | -d
driver] [-D directory] [-H
hw-path] [-I instance] [-q|-v]
[options-spécifiques] [fichier-spécial]

/sbin/<B>mksf</B> [-C class | -d
driver] [-D directory] [-H
hw-path] -m minor [-q|-v]
[-rfichier-spécial

 

Les options : 

C

sélectionne les périphériques qui
appartienne à une classe donnée.

d

sélectionne un périphérique particulier
par le nom de son pilote de périphérique.

D

installe le fichier spécial dans le répertoire
précisé et non dans le répertoire
d’installation du périphérique par défaut. Le
répertoire doit exister.

H

choisir le périphérique en donnant son adresse
physique (H/W Path)

I

sélectionne l’instance du périphérique
(LUN)

q

mode silencieux 

v

mode verbeux

r

création du fichier spécial en mode RAW

options-spécifiques

Permet l’activation d’options spécifiques, possible avec
certains pilotes de périphériques

fichier spécial

sélection un nom alternatif de fichier spécial
pour le périphérique 

 

Exemple

mksf -d tape2 -I 0 -b DDS2

crée un fichier spécial de type caractère
nommé /dev/rmt/c0t0d0DDS2 pour le lecteur de bande
magnétique à l’instance 0 en format non compressé.

mksf -d mux2 -I 0 -p 5 -c -i -a 2

crée un fichier spécial type terminal pour un
modem en mode appel entrant avec protocole CCITT connecté
sur le port 5 du premier MUX avec comme fichier /dev/cua0p5

mksf -C printer -I 1 /dev/laser

crée un fichier /dev/laser et le connecte à
l’imprimante avec l’instance numéro 1.

 

4. commande insf

 

La commande insf est utilisée pour créer un ou
plusieur fichiers spéciaux si le périphérique
n’a pas encore été initialisé. Elle crée
le ou les fichiers spéciaux pour ce périphérique
et obtient aussi un numéro d’instance pour le périphérique.

 

syntaxe :

/sbin/<B>insf</B>

/sbin/<B>insf</B> [-C class | -d
driver] [-D directory] [-e]
[-H hw-path] [-I instance]
[-n npty] [-q|-v] [-s
nstrpty] [-p
<I>first-optical-disk</I>:<I>last-optical-disk</I>]

Les options :

C

sélectionne les périphériques qui
appartienne à une classe donnée.

d

sélectionne un périphérique particulier
par le nom de son pilote de périphérique.

D

installe le fichier spécial dans le répertoire
précisé et non dans le répertoire
d’installation du périphérique par défaut. Le
répertoire doit exister.

H

choisir le périphérique en donnant son adresse
physique (H/W Path)

I

sélectionne l’instance du périphérique
(LUN)

q

mode silencieux 

v

mode verbeux

e

crée ou ré-installe le ou les fichiers des
périphériques

n

Spécifie le nombre d’enter. Par défaut : npty
vaut 60 pour les divers <B>ptym</B> et
<B>ptys</B>.

s

Spécifie le nombre d’enter pour le drivers pts.
Par défaut nstrpty vaut 60.

p

Options pour les disques optiques

 

Exemples :

insf -C tty

Pour créer les fichiers spéciaux de tous les
périphériques de la classe tty.

insf -H 4.2.0 -e

Pour créer les fichiers spéciaux pour le
périphérique à l’adresse physique 4.2.0

insf -e -n 100 -d ptym

Pour créer 100 fichiers spéciaux liés au
pilote de pseudo-terminaux.

 

C. Autres commandes :

 

1. Commande lsdev :

Pour connaître les drivers et leur numéro.

syntaxe : 

/usr/sbin/<B>lsdev</B> [-h] [-d
driver | -C class] [-b
block_major] [-c char_major] [-e
major] [major ...]

 

Tapez lsdev vous obtenez :

Character

Block

Driver

Class

64

64

lv

lvm

175

27

disc2

disk

177

28

disc3

disk

212

-1

tape0

tape

...

Le driver d’un logical volume s’appelle lv, il a comme major
number 64 en mode caractère et en mode bloc. Le driver d’un
lecteur de DAT s’appelle tape0, il a comme major number 212 en mode
caractère, un lecteur de DAT ne peut être accédé
en mode bloc, d’où le -1.

Vous pouvez regarde le fichier /usr/conf/master.d vous
avez la liste exhaustive des major number et des drivers susceptibles
d’être reconnus par le système.

 

2. commande lssf :

La commande lssf affiche les caractéristiques des fichiers
spéciaux.

syntaxe :

/sbin/<B>lssf</B> fichier_spécial ...

 

Exemples :

Apr&egrave;s avoir ex&eacute;cuter: mksf -d tape2 -H 8.6.1
-b 1600 -a rmt/c2t6d0m

. <BR># lssf
dev/rmt/c2t6d0m

tape2 instance 2 bpi 1600 att
address 8.6.1 rmt/c2t6d0m

# /usr/sbin/lssf /dev/rdsk/c0t6d0
disc3 card instance 0 SCSI
target 6 SCSI LUN 0

# /usr/sbin/lssf /dev/rmt/c0t3d0BESTn
tape2 card instance 0
SCSI target 3 SCSI LUN 0 at&t no rewind best density available at
address 2.0.3/dev/rmt/c0t3d0BEST


Commentaires  Forum fermé

Statistiques

Dernière mise à jour

mercredi 4 octobre 2023

Publication

273 Articles
Aucun album photo
Aucune brève
6 Sites Web
2 Auteurs

Visites

139 aujourd’hui
565 hier
862638 depuis le début
8 visiteurs actuellement connectés