Completed
each phase of the build encodes rules to control the inclusion and exclusion of source code
Class Central Classrooms beta
YouTube videos curated by Class Central.
Classroom Contents
When You Come to a Fork in the Road, Take It - Finding Configuration Constraints in Linux Kernel
Automatically move to the next video in the Classroom when playback concludes
- 1 Intro
- 2 the kernel has tons of configuration options
- 3 this configurability brings maintenance challenges
- 4 there are serious cases of unexpected interactions between configuration options
- 5 there are even more pernicious examples of bad combinations of configuration options
- 6 first steps towards tackling the maintenance challenges of configurability
- 7 a common problem: mapping code back to the configurations that control that code
- 8 what does linux's build system do?
- 9 let's look at the phases of build process
- 10 the build system as code generation using metaprogramming
- 11 configuration localization is finding the inverse of the build process
- 12 each phase of the build encodes rules to control the inclusion and exclusion of source code
- 13 we can use boolean logic to represent the "buildability" of code at each step
- 14 configuration localization then becomes the boolean satisfiability problem
- 15 when you come to a fork in the road, take it
- 16 tooling
- 17 SuperC does configuration-preserving C preprocessing (and parsing)
- 18 Kmax collects Kbuild Makefile conditions for each source file's constraints
- 19 Kclause converts Kconfig files into logical fomulas
- 20 conclusion