Linux Kernel Hacking 101
This presentation will describe the working life of a Linux kernel (or, more generally, open source) developer. It will show a newcomer what to expect of the development process and the community, and will help her get started with the existing rich set of resources for skill building and practice.
The first part of the talk will describe the cyclic process of planning, creating, polishing, and delivering a contribution. It will help the attendee discover what kinds of contributions to focus on, including that baffling initial contribution that starts the cycle of involvement. It will also describe the big picture surrounding the communication, creation, and delivery descriptions that come next.
The communication and community part of the talk will discuss both the mechanics and the benefits of interacting with the developer community. It will introduce the channels over which community members interact, with some emphasis on IRC for the benefit of developers coming from outside the Open Source community.
The part dealing with creation of the contribution is the most kernel specific part of the talk. It gives insight into detangling existing kernel code, and describes how to do testing and debugging without the benefit of external libraries and tools.
Finally, the part describing delivery of the contribution describes the acceptance process that is peculiar to the kernel. It also goes into source control practices, because Git is used to create the deliverable patch set. This is the most technical portion of the talk.
There already exist numerous and well crafted resources for developing specific skills at the developer's own pace. Rather than attempt to repeat that material in the talk, the slide deck includes a resources list. The deck is available from the Github repo for the talk, at https://github.com/shegeek/kernel-hacking-101.