>il parait que le code de devfs était pas super en plus
Oui, le code etait sujet à pas mal de racing conditions, et à des modprobe storms. En gros, comme l'ouverture d'un inode /dev/truc spawnait un modprobe pour charger le module adequat, si un process ouvrait sauvagement un device plein de fois, il arrivait que le noyau lance plusieurs modprobe en parallele... rien de bon
Mais le point le plus bloquant concernant devfs, c'est le fait que le mainteneur est injoignable, et personne n'est en mesure de reprendre le code (surtout un manque d'envie).
Greg KH s'est donc dis que grace a hotplug[1] + sysfs[2] et un daemon udevd serialisant les evenements hotplug[3], il etait en mesure de "peupler" /dev dynamiquement un peu comme devfs le faisait, mais cette fois ci uniquement coté userspace. Cependant udev n'est pas equivalent a devfs, en particulier, udev ne charge pas les modules a l'ouverture de l'inode du device (car le module n'etant pas chargé, aucun evennement hotplug n'est généré, donc aucun appel a udev n'est fait)... Voila voila.
Il y avait une conférence enregistrée en MPEG4 où Greg KH expliquait tout çà, je n'ai malheureusement pas l'url dans mes signets. Peut etre quelqu'un pourra la poster.
[1] chaque module détectant des changements d'état parmi les devices qu'il prend en charge lance /sbin/hotplug, en fait `cat /proc/sys/kernel/hotplug` en placant des variables d'environnement adequat... le reste est fait en userspace, montage d'un volume, mise en place des droits, creation d'un symlink /dev/mon_jukebox, etc...
[2] filesystem virtuel habituelment monté sur /sysfs qui représente le matériel géré par le noyau sous une forme arborescente logique et présentant l'état de chaque device.
[3] udevd est en gros une sorte de fifo à evennements hotplug, et qui en fonction des regles contenues dans /etc/udev.d/* cree les bons noeuds dans /dev
[^] # Re: virtual filesystem
Posté par Edouard Gomez . En réponse au message qu est ce que udev ? devfs ?. Évalué à 5.
Oui, le code etait sujet à pas mal de racing conditions, et à des modprobe storms. En gros, comme l'ouverture d'un inode /dev/truc spawnait un modprobe pour charger le module adequat, si un process ouvrait sauvagement un device plein de fois, il arrivait que le noyau lance plusieurs modprobe en parallele... rien de bon
Mais le point le plus bloquant concernant devfs, c'est le fait que le mainteneur est injoignable, et personne n'est en mesure de reprendre le code (surtout un manque d'envie).
Greg KH s'est donc dis que grace a hotplug[1] + sysfs[2] et un daemon udevd serialisant les evenements hotplug[3], il etait en mesure de "peupler" /dev dynamiquement un peu comme devfs le faisait, mais cette fois ci uniquement coté userspace. Cependant udev n'est pas equivalent a devfs, en particulier, udev ne charge pas les modules a l'ouverture de l'inode du device (car le module n'etant pas chargé, aucun evennement hotplug n'est généré, donc aucun appel a udev n'est fait)... Voila voila.
Il y avait une conférence enregistrée en MPEG4 où Greg KH expliquait tout çà, je n'ai malheureusement pas l'url dans mes signets. Peut etre quelqu'un pourra la poster.
[1] chaque module détectant des changements d'état parmi les devices qu'il prend en charge lance /sbin/hotplug, en fait `cat /proc/sys/kernel/hotplug` en placant des variables d'environnement adequat... le reste est fait en userspace, montage d'un volume, mise en place des droits, creation d'un symlink /dev/mon_jukebox, etc...
[2] filesystem virtuel habituelment monté sur /sysfs qui représente le matériel géré par le noyau sous une forme arborescente logique et présentant l'état de chaque device.
[3] udevd est en gros une sorte de fifo à evennements hotplug, et qui en fonction des regles contenues dans /etc/udev.d/* cree les bons noeuds dans /dev