Generation of Debugging Interfaces for Linux Kernel Services

Résumé : Le noyau de Linux ne définit pas une interface de programmation précise et stable, ce qui complique le dévelopment des services noyau tels que les pilotes de périphériques et les systèmes de fichiers. Bien qu'il existe un ensemble de fonctions exportées pour utilisation par les modules du noyau, celles-ci sont continuellement modifiées et présentent des préconditions d'usages à la fois implicites et peu documentées, et qui, lorsqu'elles ne sont pas satisfaites, peuvent entrainer un crash ou un blocage de tout le système d'exploitation. Cependant, Linux n'offre aucun moyen spécifique de débogger de tels problèmes. Dans cet article, nous présentons Diagnosys, une approche pour construire automatiquement une interface d'aide à la mise au point des services noyau de Linux. Dans notre approche, un mainteneur du noyau utilise Diagnosys pour identifier des pré et post conditions sur l'utilisation des fonctions exportées. Le mainteneur met ensuite à disposition cette information qui sera téléchargée par des développeurs de services qui utilisent à leur tour Diagnosys pour générer une interface spécialisée à leur code. Cette interface est ainsi ajoutée au code de leur service de sorte que lors du test du service, elle enregistre des informations sur les problèmes potentiels. L'information enregistrée est ensuite disponible après redémarrage du noyau. Nous avons testé notre approche sur plusieurs versions du noyau de Linux. Nous montrons d'abord que les interfaces générées par notre approche fournissent des informations de journalisation utiles en cas de fautes. Nous montrons ensuite que les portions de code représentant des lacunes de sécurité sont répandues dans le noyau de Linux, et que de nombreuses fonctions exportées pour les services noyau de Linux présentent des pré et post conditions implicites et non triviales qui doivent être respectées pour assurer une exécution sûre. Finalement, nous montrons que notre approche induit uniquement de faibles pertes de performation.
Type de document :
Rapport
[Research Report] RR-7800, INRIA. 2011, pp.28
Liste complète des métadonnées

Littérature citée [1 références]  Voir  Masquer  Télécharger

https://hal.inria.fr/hal-00641262
Contributeur : Gilles Muller <>
Soumis le : mardi 15 novembre 2011 - 11:54:32
Dernière modification le : vendredi 25 mai 2018 - 12:02:03
Document(s) archivé(s) le : vendredi 16 novembre 2012 - 10:55:23

Fichier

RR-7800.pdf
Fichiers produits par l'(les) auteur(s)

Identifiants

  • HAL Id : hal-00641262, version 1

Collections

Citation

Tegawendé Bissyandé, Laurent Réveillère, Julia L. Lawall, Gilles Muller. Generation of Debugging Interfaces for Linux Kernel Services. [Research Report] RR-7800, INRIA. 2011, pp.28. 〈hal-00641262〉

Partager

Métriques

Consultations de la notice

367

Téléchargements de fichiers

138