Source-linked AI summary
Analysis and Visualization of the Linux Kernel's Software Evolution Using the City Metaphor
Malte Hansen, Lukas Damerau, Moritz Bugla, David Moreno-Lumbreras, Wilhelm Hasselbring
TL;DR
The Linux kernel’s scale and longevity make its structure and evolution challenging to understand. This paper uses ExplorViz to analyze repository commits and visualize the kernel as a 3D city. The visualizations show increased Rust line counts since 2025, while Rust remains a small share of repository SLOC.
Problem
The Linux kernel’s size and long maintenance history make understanding its internal structure and code evolution challenging.
Source: §I · p. 1Method
ExplorViz combines Git-commit analysis with a city-metaphor visualization, persisting repository structure and metrics for exploration.
Source: §I · p. 1, §II · pp. 1–2, §V · p. 4Results
The visualizations show Rust line counts increasing significantly since 2025; only 13 of 473 files stayed unchanged between the selected July 2025 and July 2026 commits, and Rust represents about 0.4% of repository SLOC.
Source: §IV · p. 4Takeaways & Limitations
The approach’s filters and configuration options support flexible exploration of different aspects of the Linux kernel repository.
Source: §V · p. 4
Abstract
from arXiv · showhide
The Linux kernel is one of the largest and longest-maintained open source projects in existence. With more than 40 million lines of code, understanding the kernel's internal structure and assessing its software evolution is a great challenge. In this paper, we present an approach to visualize the Linux kernel using our software visualization tool ExplorViz. We analyze commits from the Linux Git repository using a custom analysis service. The web-based frontend utilizes the 3D city metaphor for visualization of the software structure. Metrics such as the number of lines are collected for each file and are accumulated for directories and commits. Calculated metrics can be mapped to the building's dimensions or be displayed via a heat map. A wide range of visualization, search, and filter options enable the interactive exploration of the visualized data. We present both a visualization of all files in the kernel repository and a visual analysis of the code evolution of Rust files in the Linux kernel. Demo video: https://youtu.be/3ODnERqD8g0
I. INTRODUCTION
The Linux kernel’s size and longevity make its structure and evolution difficult to comprehend. This paper presents an ExplorViz visualization approach and outlines its repository-analysis and visualization demonstrations.
I. INTRODUCTION
- The kernel’s many source files and long history make understanding its internal structure and code evolution challenging.Prior research has visualized different aspects of the kernel, while the city metaphor has been used to show software structure and evolution.Source: §I · p. 1
- ExplorViz presents a comprehensive visualization of the Linux kernel repository, with a dedicated Code Analyzer integrated into the system.The passage contrasts this integrated analysis service with frameworks that rely on external tools.Source: §I · p. 1
- The paper first describes repository-analysis architecture, then visualizes all kernel files and examines Rust code evolution.It concludes with a summary and outlook.Source: §I · p. 1
II. TOOL ARCHITECTURE
ExplorViz’s architecture analyzes Git repositories over commit ranges, stores the resulting structure and metrics, and serves them to the frontend for exploration.
II. TOOL ARCHITECTURE
- ExplorViz’s static-analysis focus extends its city-metaphor visualization for comprehensive exploration of the Linux kernel, beyond its earlier dynamic trace analysis.The earlier dynamic analysis handles OpenTelemetry-compliant observation traces, including traces converted from ftrace logs.Source: §II · p. 1
- The Code Analyzer can clone and analyze a GitHub repository or analyze an already cloned repository, processing commits and files against selected filters.It analyzes all files at the oldest commit in a range, then only added and modified files at later commits.Source: §II · p. 1
- For supported source files, the analyzer collects file size and code metrics including lines, classes, functions, and variables.It supports C/C++, Python, and Rust, but does not deeply analyze assembly, shell scripts, or Makefiles.Source: §II · p. 2
- The Landscape Service persists analysis results in a Neo4j graph database, and its HTTP endpoints provide commit, landscape, and file-metric data to the frontend.Additional file details are served on demand to keep transferred data structures small.Source: §II · p. 2
III. VISUALIZATION OF THE LINUX KERNEL REPOSITORY
The repository is rendered as a navigable 3D city, with file metrics mapped to buildings and filters used to isolate large files.
III. VISUALIZATION OF THE LINUX KERNEL REPOSITORY
- The city represents the repository as a foundation, folders as nested districts, and files as buildings; building dimensions can encode computed metrics.The example uses the box layout algorithm for the nearly 100,000-file repository and maps building height linearly to SLOC.Source: §III · pp. 2–3
- Filtering for at least 10,000 SLOC yields 149 files: 117 C header files and 32 C files.The visualization reveals a cluster of high-SLOC files in the drivers/gpu/dcn directory, including C header files.Source: §III · p. 3
- The largest identified nonheader C files include Realtek device power tables; rtw8852c_table.c has 57,117 SLOC.Source: §III · p. 3
IV. CODE EVOLUTION OF RUST FILES
The paper applies commit-based visualization to examine Rust’s adoption in the Linux kernel. The selected commits show substantial file change, while Rust remains a small share of repository SLOC.
IV. CODE EVOLUTION OF RUST FILES
- The Rust migration began against a history of C and assembly use; the first Linux release with published Rust code was version 6.8 in March 2024.The Rust for Linux project aims to introduce more Rust code, following an April 2021 RFC.Source: §IV · pp. 3–4
- The analysis samples the first master-branch commit each month; its first Rust-containing commit was in November 2022, placing initial inclusion between October 1 and November 1.A sampled December 2022 commit without Rust-file changes was skipped.Source: §IV · p. 4
- Rust line counts in the kernel have increased significantly since 2025, motivating a comparison of the July 2025 and July 2026 commits.The chart displays a selected metric on its y-axis; the example uses line count, including whitespace and comments.Source: §IV · p. 4
- Only 13 of 473 Rust files remained unchanged between the July 2025 and July 2026 commits.The visualization shows many files added or modified and few deleted or unchanged.Source: §IV · p. 4
- Rust accounts for about 0.4% of the repository’s 27.8 million SLOC, and the authors infer it will not completely replace C in the foreseeable future.Source: §IV · p. 4
V. CONCLUSIONS AND FUTURE WORK
The paper presents static analysis and city-metaphor visualization of the Linux kernel, including all repository files and Rust code added through Rust for Linux. It identifies future work on contributor activity and animated code evolution.
V. CONCLUSIONS AND FUTURE WORK
- The approach analyzes all files in the Linux kernel repository and visualizes the collected data using the city metaphor.It also performs a visual analysis of Rust code added through the Rust for Linux project.Source: §V · p. 4
- Filter and configuration options support flexible exploration of different aspects of the Linux kernel repository.Source: §V · p. 4
- Future work includes adding contributor-activity data to help identify potential knowledge silos and animating code evolution to make structural and architectural changes easier to comprehend.Source: §V · p. 4
VI. SUPPLEMENTARY MATERIALS
The ExplorViz software stack, documentation, and a demonstration video are available online.
VI. SUPPLEMENTARY MATERIALS
- The complete ExplorViz software stack is available on GitHub.Source: §VI · p. 4
- Complementary documentation is available on the ExplorViz website.Source: §VI · p. 4
- A demonstration video is available online.Source: §VI · p. 4