Je cherche des infos sur la manière d'écrire un driver multi applicatif. En gros, un même /dev/toto peut être utilisé par plusieurs applications différentes.
J'ai l'impression que cela n'est pas une façon de faire très courante (il suffit de voir les /dev/machinX avec X de zero à n). Connaîtrez-vous un driver qui fonctionne ainsi ? Ou des infos sur la manière de faire ?
# Un voyage de mille lieues commence
Posté par TheBreton . Évalué à 2.
Voici le premier pas a faire pour tout connaitre sur les drivers.
http://lwn.net/Kernel/LDD3/
Bonne lecture.
# Euh... pas du tout
Posté par David Decotigny (site web personnel) . Évalué à 2.
Dans l'absolu, tout peripherique doit pouvoir etre ouvert et utilisé par plusieurs applications en meme temps. Si certains drivers (ie ce qui est derriere les /dev/machin) ne permettent pas cela, ce n'est /que/ parce que le *driver* ne le permet pas, pas parce que le systeme "en general" ne le permet pas. Par exemple, plusieurs applis peuvent ouvrir /dev/hda1 en meme temps si elles le veulent, et meme ecrire "en meme temps" (il y aura en fait sans doute une serialisation par le noyau, on a rarement vu un HD traiter plusieurs requetes venant du meme systeme en parallele). Il fut un temps ou, effectivement, certains periph tels /dev/audio, ne pouvaient pas etre ouverts par plusieurs applis en meme temps. Il y en a d'autres (je pense aux /dev/ttySX, a verifier). Mais c'est loin d'etre une generalite.
Et, comme suggere, le LDD est une excellente source pour comprendre comment une telle magie est possible. Une autre source (pub) : http://sos.enix.org .
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.