Although I've been working with Linux kernel for ages, I decided to browse through Linux Kernel in a nutshell, an excellent book on the practical things regarding working with the kernel. There certainly were things that I was not aware of. Here are my notes on these things.
Using a read-only source tree with O=/path/to/build/output
Some basic static analysis with
- sparse with C=1 or C=2.
Localversion-prefixed files in object and source trees.
Finding all kernel modules required by the running system, using modaliases in the /sys tree and modprobe with --show-depends. Or get-driver.sh helper script.
Kernel argument max_addr to force a upper bound on physical addresses used. Probably a good for validating a software image for a low cost board version. I've used mem=XX for this before, but I believe max_addr could yield even more realistic results.
The book included nice "demos" for tools like
- quilt for managing a set of patches against an upstream source tree
- ketchup as a frontend to upstream kernel archives.
These were not described in detail, but are interesting and I need to remember to read more about them later.
- format of modaliases
- seccomp for sandboxing processes
- kernel SPI support
- inotify mechanism
- oprofile tooling
- kernel security models.