Les mystères de l’ioctl()

Magazine
Marque
GNU/Linux Magazine
Numéro
216
Mois de parution
juin 2018


Résumé
Nous avons maintes fois évoqué le développement de pilotes Linux dans les colonnes de GLMF ou Open Silicium, et ce depuis de nombreuses années (pour ma part depuis 2000 ! [1]). Dans ces nombreux articles, nous avons abordé les principes ainsi que des API spécifiques (PCI, USB, etc.). Dans ce nouvel article, nous allons spécifiquement nous attacher à une fonctionnalité bien connue des systèmes UNIX/Linux (y compris des « UNIX like ») en l’occurrence l’appel système ioctl().

Rédiger un article dédié à ioctl() peut paraître saugrenu au commun des mortels. L’idée peut paraître étrange même dans le clan des spécialistes Linux, car les développeurs de pilotes noyau sont finalement assez peu nombreux, la tendance étant – à juste titre – de privilégier les solutions en espace utilisateur pour la majorité des développements industriels. L’auteur lui-même a publié dans Open Silicium numéro 19 un article intitulé « Comment ne pas écrire de pilote Linux » [2] et ça n’était pas (uniquement) de la provocation ! D’autres spécialistes comme notre confrère Chris Simmonds (2net.com) ont d’ailleurs publié des articles dans le même sens [3].

Malgré tout et en dépit des difficultés et désavantages d’une solution en espace noyau (licence, complexité d’écriture, mise au point, maintenance), l’écriture d’un pilote est parfois nécessaire lorsqu’il s’agit de piloter un périphérique spécial avec les meilleures...

Cet article est réservé aux abonnés. Il vous reste 96% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite