Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Linux Foundation

When You Come to a Fork in the Road, Take It - Finding Configuration Constraints in Linux Kernel

Linux Foundation via YouTube

Overview

Explore the complexities of Linux kernel configuration in this 36-minute conference talk. Delve into the challenges of maintaining a highly configurable system and learn about unexpected interactions between configuration options. Discover the first steps towards addressing these maintenance challenges, focusing on mapping code back to controlling configurations. Examine the Linux build system as a code generation process using metaprogramming, and understand how configuration localization involves finding the inverse of the build process. Learn about tools like SuperC, Kmax, and Kclause that aid in configuration-preserving preprocessing, collecting Makefile conditions, and converting Kconfig files into logical formulas. Gain insights into using boolean logic to represent code "buildability" and how configuration localization becomes a boolean satisfiability problem.

Syllabus

Intro
the kernel has tons of configuration options
this configurability brings maintenance challenges
there are serious cases of unexpected interactions between configuration options
there are even more pernicious examples of bad combinations of configuration options
first steps towards tackling the maintenance challenges of configurability
a common problem: mapping code back to the configurations that control that code
what does linux's build system do?
let's look at the phases of build process
the build system as code generation using metaprogramming
configuration localization is finding the inverse of the build process
each phase of the build encodes rules to control the inclusion and exclusion of source code
we can use boolean logic to represent the "buildability" of code at each step
configuration localization then becomes the boolean satisfiability problem
when you come to a fork in the road, take it
tooling
SuperC does configuration-preserving C preprocessing (and parsing)
Kmax collects Kbuild Makefile conditions for each source file's constraints
Kclause converts Kconfig files into logical fomulas
conclusion

Taught by

Linux Foundation

Reviews

Start your review of When You Come to a Fork in the Road, Take It - Finding Configuration Constraints in Linux Kernel

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.