A set of lab assignments from university courses (often used at Epitech or other engineering schools). Each lab comes with a PDF description and a skeleton code repository. You implement the missing parts—e.g., writing a simple scheduler or a memory allocator.

Although the full book is commercial, the author has released extensive sample chapters and lab exercises as PDFs. These cover:

Not every PDF claiming to teach kernel programming is good. Look for:

You can automate PDF generation from AsciiDoc/Markdown kernel notes using GitHub Actions.

If you want to go beyond the obvious repositories, use these search operators on GitHub.