Slashdot was reporting yesterday that OSes are sliming down. The post was talking about userland stuff like MySQL or CUPS but an obvious question is: how about the internals? Do they get better? One attempt to measure this is to look at the interactions between the various Linux filesystems and the rest of the kernel. When a filesystem is compiled as a module all its (unique) external calls show up as unresolved symbols. Here is a graph of them.
The left side shows the evolution over time for 15 filesystems. The four of them in red are interesting: nfs, ext4 and fuse all show stepper growth than the others while 9p shows a big jump (70 calls) in 2.6.17 but also a dive (62 calls) in 2.6.23.
The right side shows the current status in 2.6.28 of the 24 filesystems I looked at.
Two obvious conclusions:
- for most of the filesystems the trend is a slow growth.
- in absolute numbers the number of external calls is pretty big!
For me this is a clear indication that: things are pretty complicated and they don’t seem to get simpler. :P
Note: The numbers were obtained by using nm and grep for ‘U ’ on the final .o produced in the fs/fs. After switching to a new version (the v2.6.x from Linus’ tree) I did a ‘make menuconfig’, disabled the SMP, followed by ‘make prepare’.