Kernel Config Weight

Table Of Contents:

Project overview
This is a project to examine size/memory usage impact affected by each kernel configuration.

Rationale
Especially in 2.6 series it is said, Linux Kernel has been improved and new features are added, then the Kernel size and memory consumption seem to get larger and larger. But till now, we have few information about which part of kernel is larger than others, and which part is bloating neither.

The motivation of this project is to grab the fact. THE FACT means below.


 * 1) Making clear which part of kernel is larger than others. This project uses kernel-configuration item as an interface which defines "part" border.
 * 2) Making clear how kernel size has changed along versions. If size is bloating, figure out which part of kernel is bloating especially.
 * 3) Investigating whether there is significant size difference among architectures or not.

The accomplishment of this project has two points of view. One is for embedded system engineers, and another is for kernel developers.


 * 1) For embedded system engineers
 * The examination result of this project will be helpful to configure and make size-optimized kernel.
 * It will be useful for basic data to select kernel version.
 * 1) For kernel developers
 * The examination result of this project will point out a part of inefficient implementation to improve.
 * The examination tool developed by this project will be able to be used to examine how certain patches impact the kernel size.

It goes without saying that our final target is not only to figure out the fact, but also to improve and slim down Linux Kernel. The purpose of this project is to provide a gunsight to hunters.

Note
 * Basic concept and examination result summary are presented on Japan Regional Technical Jamboree several times and CELF Project Bof at OLS2006] (July 21st, 2006). The presentation slide is available. There are links to the presentation slides on the OLS2006 page too.

Tools and detail

 * [wiki:/Kconfig Size _Rev 0_1 Kconfig Size tool rev 0.1] (obsolete)
 * [wiki:/Kconfig Size _Rev 0_2 Kconfig Size tool rev 0.2]