SYSFS

Systèmes de fichier virtuel SYSFS

SYSFS est un système de fichier virtuel basé sur RAMFS Introduit par le noyau Linux 2.6. Sysfs permet d'exporter depuis l'espace noyau vers l'espace utilisateur des informations sur les périphériques du système et leurs pilotes, et est également utilisé pour configurer certaines fonctionnalités du noyau. Il permet entre autre :

  • De récolter des informations sur le hardware

    • Remplaçant de PROCFS
  • Configurer certainnes fonctionnalités du kernel
    • Un fichier par valeur
      • ex: Le fichier ro pour les périphérique de type block
      • ex le fichier addres pour les périphérique réseau.

Créer sous l'insistance de Linus Torvalds pour :

  • Linux 2.5
  • Débugger le nouveau modèle de pilote

Avant :

  • Aucune méthode de représentation unifiée des relations pilote/périphérique
  • pas de mécanisme de hotplug

Devices

Répertoire :

/sys/devices
  • Couche physique
  • Relation paren/enfant
  • Complexe

Les autres dossier contiennes des liens symboliques vers les dossiers de /sys/devices

Bus & class

Répertoire :

/sys/bus
  • Différents bus (usb,pci,etc..)

Pour les imprimantes, son, usb, réseau...

    /sys/class    

Autre dossiers

Répertoire Description
/sys/block périphérique de type block
/sys/module module du kernel
/sys/power gestion de l'état d'activation de certain périphérique

Système de fichier virtuel UDEV

UDEV est un système de fichier virtuel qui fait le lien entre SYSFS et les information données par l'utilisateur. Cela pour permettre l'accès au périphérique de manière simple via des fichiers ou "nodes".

Exemple :

Le serveur graphique accède à la sourie via :

/dev/input/mice

A l'origine les fichiers étaient inscrit en dur :-1:

Puis arrivée de DEVFS : Système de fichier virtuel, mais statique :accept:

création de udev

  • Depuis Linux 2,6,13 (Août 2005)
  • Pour répondre au problème de hotplug
  • Ne représente que les périphériques réellement présents

    Pseudo périphérique

    devices Descrioption
    /dev/null Toute information envoyée vers ce périphérique est automatiquement détruite
    /dev/zero périphérique spécial qui renvoie uniquement le caractère null (ASCII NUL, 0x00) lors d'une lecture.
    /dev/full renvoie toujours le code d'erreur ENOSPC (c'est-à-dire "Pas d'espace sur le périphérique") sur l'écriture et fournit un nombre infini de zéro octets à Tout processus qui en découle
    /dev/random et /dev/urandom générateur de nombres aléatoires

Exemple avec /dev/full:

$ echo "Bonjour" > /dev/full
bash: echo: write error: No space left on device

Périphérique de type block

Il existe plusieurs devices de type block sur Linux :

Devices Description
/dev/fd[a,b,d,...] Périphérique pour lecteur de disquette
/dev/hd[a,b,d,...] Périphérique pour disque IDE
/dev/sd[a,b,d,...] Périphérique pour disque SISI, USB et SATA
/dev/sr[0,1,2...] Périphérique pour disque IDE
/dev/loop[0,1,2,...] Faux périphérique pour la création de faux DD

Configuration udev

Les configuration de udev peuvent être modifier dans :

/etc/udev/
/etc/udev/rules.d