Upstream Kernel Development shows trainees how to contribute to the Linux kernel. This includes understanding the role of kernel maintainers, how to best align their work with the Linux release schedule, how to handle feedback and what to do if things don’t go to plan.
This course covers the “social” aspects of upstream kernel development. It is best suited to trainees who understand how to write kernel drivers and want ideas and pragmatic advice in order to engage more effectively with the wider kernel community. Trainees will learn how to confidently participate in upstream kernel development and, in particular, how to contribute new kernel drivers.
Part I: Mechanics
- What is Upstreaming?
- How the Linux project is organised
How to Upstream?
- Patch Preparation
- Patch Creation
- Patch Posting
- Worked example
- Further reading
- Minarai - Learning by watching
Part II: Tips, tools and techniques
- Talking with upstream
- Thinking like a maintainer
- Kernel versioning and release flow
Sharp tools and smart techniques
- Train your style
- Filtering mailing lists
- Source navigation
- Static checkers
- Handling regressions and bisectability testing
- What do do when you are ignored
- Case study: Mailbox upstreaming