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 but have not previously worked alongside the wider kernel community. Trainees will learn how to confidently participate in upstream kernel development and, in particular, how to contribute new kernel drivers.
This course will be held in 2 sessions.
Part I: Mechanics, takes place on Tuesday, July 11 at 04:00pm GMT.
Part II: Tips, tools and techniques, is on Tuesday July 18 at 04:00pm GMT.
Sessions will be two and a half hours long.
Please note this training is only available to Google employees.
Part I: Mechanics
- What is Upstreaming?
- How the Linux project is organised
- How to Upstream?
○ Patch Preparation
○ Patch Creation
○ Patch Posting
○ Feedback
○ Maintenance
○ Worked example - Lab/homework
○ Further reading
○ Minarai - Learning by watching
Part II: Tips, tools and techniques
- Talking with upstream
- Tags
- 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