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 rectangle.
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
Images: green
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 pixels!
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.