LinuxKernelConf is (another) attempt at replacing the aging Linux configuration system (also known as CML1) and is now part of the kernel since 2.5.45. CML1 had a number of problems which made it difficult to maintain and it was even harder to extend the language.

The important changes which come with LinuxKernelConf are a new configuration syntax and a single parser for this language. Multiple utilities can be build on top of this, right now only the old configuration utilities are reimplemented which make use of it. The console utilities ("make config" and "make menuconfig") preserve their old behaviour for all the kernel hackers who loathe drastic behaviour changes. :-) The new X interface ("make xconfig") shows a bit how kernel configuration could be done in the future.

The new configuration syntax is now a collection of configuration options, which can have a number of attributes attached to it, so it's not a programming language like CML1 anymore. This makes the language more easily extensible, as new attributes can be defined as needed. Currently the configuration represents only the information from the old CML1 config files, but more than just configuration options can be easily added later.

Some more information with a small interview can be found at this kerneltrap article (follow-up article).

Current release: 1.4

"make install KERNELSRC=<patch/to/linux-2.5>" will install lkc into this kernel, this kernel has to be at least a 2.5.45 kernel. The 1.2 release is the last release which contains the converter to convert the CML1 config files into the new syntax, I'll later release it as a separate package to e.g. allow the conversion of a 2.4 kernel, should people be interested in this.

Old releases can be found here.

Some basic documentation is now available as well, which describes the new configuration syntax. Should there be anything unclear or missing, I'd be happy to hear about it.