Forum Linux.debian/ubuntu gestion des périphériques

Posté par  .
Étiquettes :
0
25
août
2004
j'ai essayé une fois la gentoo, et elle avait une gestion des disques durs différents de debian : en effet sous debian on trouve /dev/hdax où x prends ses valeurs de 1 à 32, alors que ces périphériques n'existent pas tous. Sous gentoo, seuls ceux qui existent sont présent !

Mes questions :
pourquoi cette différence ?
comment reproduire sous debian le comportement de gentoo ?
pourquoi Debian fait-il le choix de ne pas mettre en place ce système, et garde ce genre de bizarrerie ?
  • # Du côté de chez devfs

    Posté par  . Évalué à 3.

    Salut,
    La différence vient sans doute du fait que Gentoo utilise un système du noyau de type devfs, qui permet de créer les fichiers spéciaux à la volée, avec le démon qu'il faut, alors que debian ne se pose pas la question et créée par défault tous les fichiers spéciaux dont tu pourrais avoir besoin (cf. mknod et consort).

    Ensuite pourquoi le choix ... beh il faut demander à Debian :), le truc vient sans doute que devfs a parfois des problèmes et que Debian ne veut pas prendre de risque ...

    mes 2cts
    Caeies
  • # Re: gestion des périphériques

    Posté par  . Évalué à 3.

    comment reproduire sous debian le comportement de gentoo ?

    # apt-get install udev
    • [^] # Re: gestion des périphériques

      Posté par  . Évalué à 0.

      Par défaut gentoo est en devfs par udev
    • [^] # Re: gestion des périphériques

      Posté par  . Évalué à 3.

      j'avais fait ça une fois pour essayer, ça avait strictement rien changé. Je ne comprends rien à ces trucs.
      • [^] # Re: gestion des périphériques

        Posté par  . Évalué à 3.

        sur debian, tu trouveras une bonne doc dans /usr/share/doc/udev (path classique pour les debianeux ;-)

        sinon, l'intérêt de udev est que tu peux, en miminant un peu le cambouis, affecter toujours le même device linux (/dev/tondevice) à un périphérique donné (au hasard, ta clé USB mass-storage et ton appareil photo numérique mass-storage aussi).

        Plus de confusion pour savoir qui est /dev/sda1 ou /dev/sda2...

        et ça, c'est bien (c).
      • [^] # Re: gestion des périphériques

        Posté par  . Évalué à 5.

        Par défaut, lesdits « fichiers spéciaux » dans /dev occupent réellement une entrée du catalogue (et un inode !), même s'ils ne référencent aucun contenu stocké sur le disque. Les noms hda, hdb etc ne sont que des mnémoniques pour que l'utilisateur s'y retrouve, même s'ils sont standardisés, mais ce qui fait l'efficacité du fichier spécial, ce sont ces deux numéros MAJOR et MINOR qui vont eux réellement dire au kernel à quelle routine on souhaite causer.

        Le problème est qu'à terme cela bouffe beaucoup d'inodes, et que surtout, il faut tous les créer lorsque tu installes de nouveaux périphériques ou compile une nouvelle fonction dans le noyau. On utilise mknod pour faire cela.

        Pour éviter ces inconvénients, les mainteneurs de ta distrib préférée te les créent tous une fois pour toutes dans /dev. Si derrière le périph ou la fonction n'existe pas, le noyau répondra simplement « No such device » lorsque tu essaieras de lire ou d'écrire dans ce fichier.

        Mais quand même, dans un souci d'efficacité, est apparu dans le noyau un nouveau filesystem, devfs. Celui-ci fonctionne exactement de la même manière que /proc, c'est-à-dire qu'une fois ce volume monté sur un répertoire (en l'occurence /dev) tout ce que tu vois dedans est simulé par le kernel.

        Le noyau émule donc les /fichiers /dev standard et, pas bête, il ne génère que ceux qu'il sait gérer. Voila pourquoi sur une distrib normale, tu vas voir apparaitre tous les hda*, et lorsque tu montes devfs, seuls les disques présents apparaissent.

        Enfin, tu n'es pas sans savoir que lorsque tu fais mount, le volume concerné masque le contenu du répertoire sur lequel il est monté (sans l'écraser). Lorsque que tu le démontes, ce qu'il y a en dessous reparaît. Donc si ton devfs est monté sur un répertoire /dev déjà plein de fichiers spéciaux, il est très probable - et c'est heureux - que tu ne constates aucune différence de fonctionnement.

        Maintenant le devfs, on aime ou on aime pas:

        Avantages:
        - Tu récupères tous les inodes inutilement accaparés sur ton disque.
        - Tu n'as pas maintenir ton répertoire /dev à jour, le noyau le fait pour toi.
        - La liste des /dev est infiniment plus claire.
        - Tu sais immédiatement ce que le noyau sait gérer ou pas, et tu sais qu'un /dev présent pointe forcément sur une routine qui fonctionne.
        - Lorsque tu charges un nouveau pilote, en utilisant un module (modprobe), le noyau peut lui assigner dynamiquement un couple de numéros MAJOR/MINOR. Autrement, il faut attendre que l'autorité qui s'occupe de l'affectation de ces numéros t'en attribue un, ce qui sera forcément très long et probablement très incertain car ces numéros sont en nombre limité.

        Inconvénients:
        - C'est pas forcément standard
        - Il faut de toutes façons avoir un minimum de fichiers spéciaux « ordinaires » dans /dev pour permettre au système de s'initialiser correctement jusqu'à ce qu'il monte devfs
        - Le contenu du répertoire est volatile, et donc disparait à chaque démontage/remontage, ce qui exclut la création de liens symboliques dans le répertoire /dev, telles que /dev/cdrom ou /dev/mouse qui permettent de pointer directement le périphérique concerné, spécialement s'il s'agit de périphs amovibles ou USB.

        Personnellement, je préfère m'en passer et gérer le système moi-même. Au moins cela libère beaucoup de ressources, cela exclut d'avance beaucoup de pannes et de conflits potentiels, et cela me permet de n'apprendre que l'administration Unix standard, et pas le fonctionnement de tous les outils de maintenance propre à chaque distrib !

        Voila, bon courage.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.