The Impact of Generic Data Structures: Decoding the Role of Lists in the Linux Kernel - Archive ouverte HAL
Communication Dans Un Congrès Année : 2020

The Impact of Generic Data Structures: Decoding the Role of Lists in the Linux Kernel

Résumé

The increasing adoption of the Linux kernel has been sustained by a large and constant maintenance effort, performed by a wide and heterogeneous base of contributors. One important problem that maintainers face in any code base is the rapid understanding of complex data structures. The Linux kernel is written in the C language, which enables the definition of arbitrarily uninformative datatypes, via the use of casts and pointer arithmetic, of which doubly linked lists are a prominent example. In this paper, we explore the advantages and disadvantages of such lists, for expressivity, for code understanding, and for code reliability. Based on our observations, we have developed a toolset that includes inference of descriptive list types and a tool for list visualization. Our tools identify more than 10,000 list fields and variables in recent Linux kernel releases and succeeds in typing 90%. We show how these tools could have been used to detect previously fixed bugs and identify 6 new ones.
Fichier principal
Vignette du fichier
lists.pdf (624.69 Ko) Télécharger le fichier
liliput.tar.gz (57.73 Mo) Télécharger le fichier
Origine Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-02931554 , version 1 (07-09-2020)
hal-02931554 , version 2 (10-09-2020)

Identifiants

Citer

Nic Volanschi, Julia Lawall. The Impact of Generic Data Structures: Decoding the Role of Lists in the Linux Kernel. ASE 2020 - 35th IEEE/ACM International Conference on Automated Software Engineering, Sep 2020, Melbourne / Virtual, Australia. ⟨10.1145/3324884.3416635⟩. ⟨hal-02931554v2⟩
360 Consultations
726 Téléchargements

Altmetric

Partager

More