Treemap Visualization of the Linux Kernel 2.5.33
Treemaps are well known
in the information visualization community for visualizing tree data structures,
such as directories.
This page shows a treemap of the Linux Kernel 2.5.33 as a squarified treemap,
using the MillionVis system
designed by Jean-Daniel
Fekete at the Human Computer Interaction
Laboratory of the University of Maryland.
These are static snapshots created on the fly by the interactive program.
The Kernel Map
The whole kernel is visualized below. The root directory is the whole
rectangle. It is split into several directories, each being a contained
rectangle. The process is repeated recursively to the leaves (the files
here). Rectangles are laid out to be as square as possible within an
interactive computation time (look at the treemap page for more information.)
You can see the directory name at the center of each top-level directory's
The size of each rectangle is proportional to the size of its contents, here
the file sizes. Files are colored according to their extensions:
Source files : yellow
Header files : pink
Text files : dark blue
Makefiles/.in files: light blue
Shell scripts: red
Non-registered file suffixes: grey (i.e. README.foo)
Colors fade to black when going deeper in the hierarchy. The deepest
hierarchy seems to be in the arch subdirectory.
No red or green files appear because they are too small and take less than
a pixel. The next image shows the same information using a logarithmic
scale, showing some executable files and pictures (.fig files).
Each file is rendered as a shaded rectangle so that it is distinghuishable
from its neighbours and there is no need to draw a one pixel outline around
it. When displaying many items, those outlines would use all the available
The program is interactive; the top right corner shows the redisplay speed
and the number of visualized items (more than one pixel large.)
The top left shows the path under the mouse.
The Linux Kernel Treemap with a Linear Scale
The Linux Kernel Treemap with a Logarithmic Scale
The Linux Kernel Arch Treemap
Among the architecture dependent files, the m68k directory seems to contain
some very large files. They are assembly files contained in the ifpsp060
subdirectory (I have no clue on what they are.)
The Linux Kernel Drivers Treemap
We have zooned in the drivers directory to see the subdirectories more clearly.
We also see that the scsi divers are large and made of large files.
The Linux Kernel File Systems Treemap
This is a zoomed in version of the fs subdirectory. the nls directory
is the winner here.
The Linux Kernel Include Treemap
The only striking point is the size of the asm-ia64 directory.
The Linux Kernel Net Treemap
Here, we realize that ipv4 is larger than ipv6! Even irda is larger
than ipv6, which is unexpected.