Le système d'exploitation GNU-Linux/Les périphériques /dev
Les fichiers spéciaux
modifierNous allons nous intéresser plus particulièrement au répertoire /dev :
Ce dossier contient tous les périphériques matériels, par exemple : un lecteur CD-ROM, une carte son, une carte réseau, etc.
Il contient également les pseudo-périphériques. Quelques exemples :
- /dev/zero génére des zéros
- /dev/random génère de l'aléatoire
- /dev/null constitue un trou noir à octets, et notamment utilisé pour se débarrasser des fichiers et des affichages
- /dev/loop0 permet de créer de faux périphériques de type block (stockage) à partir de fichiers créés avec la commande dd
Si on liste le contenu de /dev
# ls -l /dev | more
On s'aperçoit que certains périphériques sont de type c (de l'anglais character) dans ce cas ils communiquent octet par octet. Ex : un port série.
Alors que d'autres sont de types b (blocks) ils communiquent par blocs de données (ex: un disque dur).
Par ailleurs le noyau identifie chaque périphérique au moyen de deux numéros, le majeur (en vert) et le mineur (en rouge), exemple :
# ls -l /dev/sda* brw-rw---- 1 root disk 8, 0 2007-09-22 18:08 /dev/sda brw-rw---- 1 root disk 8, 1 2007-09-22 18:08 /dev/sda1 brw-rw---- 1 root disk 8, 2 2007-09-22 18:08 /dev/sda2 brw-rw---- 1 root disk 8, 3 2007-09-22 18:08 /dev/sda3 brw-rw---- 1 root disk 8, 4 2007-09-22 18:08 /dev/sda4
Les partitions sda1 à sda4 ont le même majeur. Le majeur correspond au premier disque dur SCSI ou SATA.
Le noyau identifie ensuite chaque partition grâce au numéro mineur.
Les majeurs et les mineurs sont définis dans la documentation accompagnant le noyau Linux dans le fichier /usr/src/linux/Documentation/devices.txt ... et oui! comme vous pouvez vous en douter, le noyau Linux est livré avec une documentation très fournie disponible dans le répertoire Documentation/ livré avec le noyau, voir chapitre Le noyau Linux et les modules.
Extrait de /usr/src/linux/Documentation/devices.txt :
... 8 block SCSI disk devices (0-15) 0 = /dev/sda First SCSI disk whole disk 16 = /dev/sdb Second SCSI disk whole disk 32 = /dev/sdc Third SCSI disk whole disk ... 240 = /dev/sdp Sixteenth SCSI disk whole disk ... Partitions are handled in the same way as for IDE disks (see major number 3) except that the limit on partitions is 15. ...
La commande mknod sert à créer de nouveaux périphériques :
# mknod /dev/bidon b 42 0
On peut également directement lui affecter les droits d'accès :
# mknod -m 660 /dev/bidon b 42 0
udevd
modifierdmidecode
modifierCette commande affiche les informations sur les périphériques hardware. Par exemple pour déterminer la version et puissance de la RAM :
sudo dmidecode --type 17
Getting SMBIOS data from sysfs.
SMBIOS 3.0 present.
Handle 0x0019, DMI type 17, 40 bytes
Memory Device
Array Handle: 0x0018
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 4096 MB
Form Factor: SODIMM
Set: None
Locator: ChannelA-DIMM0
Bank Locator: BANK 0
Type: DDR3
Type Detail: Synchronous
Speed: 1600 MHz
Manufacturer: 0215
Serial Number: 00000000
Asset Tag: 9876543210
Part Number: CMSO8GX3M2C1600C11
Rank: 2
Configured Clock Speed: 1600 MHz
Minimum Voltage: Unknown
Maximum Voltage: Unknown
Configured Voltage: 1.35 V