Le système d'exploitation GNU-Linux/Les périphériques /dev

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche


  1. Qu'est-ce qu'un système d'exploitation ?
  2. Unix et Linux
  3. Partitionnement du disque
  4. Installation
    1. Installer Debian via le réseau
  5. Utilisateur Unix, l'interface console
    1. Le login
    2. Commandes de base
    3. L'aide en ligne man
    4. L'éditeur de texte vi
    5. Les shells
    6. La complétion
    7. Les jokers
    8. Les répertoires importants
    9. Redirection des entrées/sorties
    10. Invoquer un programme en tâche de fond
    11. Propriétaires et droits d'accès
    12. Processus
    13. Locale
  6. Administration du système
    1. Configuration du réseau
    2. Les utilisateurs et groupes
    3. Le processus d'initialisation
    4. Les systèmes de fichiers
    5. Le système virtuel /proc
    6. Les périphériques /dev
    7. L'ordonnanceur de travaux cron
    8. Le backup : tar et gzip
    9. ghost avec partimage
    10. sauvegarde de fichiers avec rsync
    11. Les fichiers journaux syslog
    12. Installation de nouveaux logiciels
    13. Le noyau Linux et les modules
    14. Autres commandes utiles
    15. Installation RAID1 logiciel + LVM + XFS
    16. Scripts de surveillance
    17. Réseaux sans fil
  7. Administration des services réseaux
    1. Le serveur de noms BIND
    2. Le serveur de configuration réseau DHCP
    3. Le serveur de shell distant SSH
    4. Le partage de fichiers Samba
    5. Le partage de fichiers NFS
    6. Le serveur d'impression CUPS
    7. Le serveur de fichiers FTP
    8. Le serveur Web Apache
    9. La base de données MySQL
    10. Le serveur de mails Postfix
    11. Les annuaires LDAP
    12. L'outil d'administration Webmin
    13. La supervision
  8. Sécurisation d'un serveur Linux
    1. Installation d'un service en mode chroot
    2. Protection avec iptables
  9. Médiagraphie
  10. Auteurs


Les fichiers spéciaux[modifier | modifier le wikicode]

Nous 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éfinit 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[modifier | modifier le wikicode]

dmidecode[modifier | modifier le wikicode]

Cette 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