Linux kernel visualized as interactive 3D city for evolution insight

Analysis and Visualization of the Linux Kernel's Software Evolution Using the City Metaphor

Software Engineering

Summary

Understanding the Linux kernel, a huge and complex software project, is very hard because it has millions of lines of code that change over time. The authors created a tool that shows the Linux kernel like a 3D city where files are buildings, and their size or changes are shown by building height or colors. This visualization helps people explore and understand how the kernel’s code grows and evolves, especially looking at newer Rust language files. It makes it easier to see the structure and history of the kernel at a glance.

What this means in practice

  • For software maintainers: Use interactive 3D visualizations to explore structural changes and size growth in large software projects like the Linux kernel.
  • For programming language adoption teams: Track and analyze the growth and integration of new languages such as Rust within established codebases via visual evolution maps.

Authors

Malte Hansen, Lukas Damerau, Moritz Bugla, David Moreno-Lumbreras, Wilhelm Hasselbring

Abstract

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