A Kernel of Truth: KConfig menuing and kernel configuration in Eclipse

Session Type: 
Standard [35 minutes]

The KConfig specification presents unique challenges to an Eclipse developer. Linux Kernel, coreboot, seaBios and other very "close to the metal" type projects generate their configurations through a tree of KConfig files which describe the variables used in configuration and building as well as the look and feel of the menu. There are two primary problems that need to be overcome in the usage of KConfig inside Eclipse.
The first issue is technical. KConfig, by its nature, requires dynamic menuing. When a choice is selected, it can change the availability of other choices on the current menu or a different menu. For example, if I choose to add a VGA rom, I need to specify the file name and location in the binary. If I choose NOT to add a VGA rom, I should not be presented with those choices. Thus, on every choice made, the menu must reload itself while respecting the choices made.
The second issue is cultural. Adding menu options for configuration is often done as an afterthought for Kernel developers. There is generally no error checking in KConfig files, since they are plain text, and the rules can be broken easily and unknowingly. Though KConfig is a well documented, static DSL, developers rarely look at the specification when adding. They, as we all do, look at what has come before and model their additions on what has come before. Thus, any tool that relies on KConfig must also have information necessary to debug KConfig problems during load time.
I have built a tool that takes into account all of these issues and is able to generate KConfig menus and configuration files based on a selected tree of KConfig files. I feel that those developing tools for Kernel, bios and bootloader development would benefit greatly from this talk and would be able to provide constructive feedback necessary.
The talk will cover file parsing and flattening, tree generation, overcoming technical issues caused by sloppy usage by developers, storage and parsing algorithms required to make dynamic menuing work and the potential future of the tool. It will, of course, also include a demonstration of the tool.

Schedule info



Experience level: 

Copyright © 2013 The Eclipse Foundation. All Rights Reserved.