The Impact of Generic Data Structures: Decoding the Role of Lists in the Linux Kernel
Nic Volanschi, Julia Lawall
摘要
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.
• Software and its engineering → Automated static analysis; Data types and structures; Software maintenance tools; Software reverse engineering; Maintaining software.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
相关 Paper
- Understanding the Linux Kernel, VisuallyHanzhi Liu, Yanyan Jiang, Chang XuEuroSys 2025 · 被引用 2 次
- TypeCraft: A Lightweight Data Type Profiler with High ResolutionZecheng Li, Xu Liu, Namhyung Kim, Blake Jones 等OSDI 2026
- Uncontained: Uncovering Container Confusion in the Linux KernelJakob Koschel, Pietro Borrello, Daniele Cono D'Elia, Herbert Bos 等USENIX Security 2023
- Balancing Analysis Time and Bug Detection: Daily Development-friendly Bug Detection in LinuxKeita Suzuki, Kenta Ishiguro, Kenji KonoUSENIX ATC 2024 · 被引用 6 次
- Finding broken Linux configuration specifications by statically analyzing the Kconfig languageJeho Oh, Necip Fazil Yildiran, Julian Braha, Paul GazzilloFSE 2021 · 被引用 46 次
