awesome-linux-kernel icon indicating copy to clipboard operation
awesome-linux-kernel copied to clipboard

Useful resources for learning kernel

linux-kernel-awesome

Please contribute

  • Learning linux kernel sometimes feel like being in the dark.
  • It will be awesome if you contrbute this document!

Generic Operating System Stuff

The Linux Kernel Documentation

  • https://www.kernel.org/doc/html/latest/
  • There are some documents here, but especially
  • documentation on development process will be helpful
  • https://www.kernel.org/doc/html/latest/process/

Newbie Stuff

books

  • Linux Kernel in a Nutshell

    • explains how to configuring, building, installing, and customizing linux kernel
    • this book is freely available at
      • https://bootlin.com/community/kernel/lkn/
      • http://www.kroah.com/lkn/
  • Linux Kernel Development

    • an overview of each subsystem
    • based on 2.6 kernel
    • https://www.amazon.com/Linux-Kernel-Development-Robert-Love/dp/0672329468
  • Linux Device Drivers, Third Edition

    • explains how to write Device Drivers in Linux Kernel
    • based on 2.6 kernel
    • It's quite dated, author has deep understanding of linux kernel so helpful for newbies
    • this book is freely available at
      • https://bootlin.com/community/kernel/ldd3/
      • https://lwn.net/Kernel/LDD3/
  • Understanding the Linux Virtual Memory Manager

    • Written by Mel Gorman, 2004.
    • It's old (covers 2.4 and early version of 2.6 kernels) but nice introduction to virtual memory
    • Available at
      • https://pdos.csail.mit.edu/~sbw/links/gorman_book.pdf

sites

  • Linux Kernel Labs
    • lectures and labs for Linux Kernel
    • https://linux-kernel-labs.github.io/refs/heads/master/
  • Linux Insides
    • https://0xax.gitbooks.io/linux-insides/content/
  • Linux Weekly News
    • quality news and informations about newly changed feature
    • https://lwn.net/
  • The Eudyptula Challenge
    • http://eudyptula-challenge.org/
    • a series of programming exercises for the Linux kernel
    • this challenge is closed after since 2017 (T.T)
    • but you can find 20 challenges link below
    • https://github.com/agelastic/eudyptula
  • Linux Kernel Workbook
    • https://lkw.readthedocs.io/en/latest/index.html
  • EmbeTronicX
    • AWESOME resources for
      • Device Drivers
      • RTOS
      • Microcontrollers
    • https://embetronicx.com/