Found in 4 comments on Hacker News
teacup50 · 2014-04-20 · Original thread
The BSDs are far more approachable, and I recommend starting there for anyone interested in kernel development.

There are books, such as The Design and Implementation of the FreeBSD Operating System (by McKusick):

There are papers, such as Jonathan Lemon's "Kqueue: A generic and scalable event notification facility" presented at Usenix 2001:

There are kernel interface man pages:

There are examples referenced by the man pages:

seiji · 2012-07-27 · Original thread
As a start, read and understand (that's a very technical and in-depth book) and (that's a more gentle overview book) then dive in with and write a very simple file system.

Learn C as necessary.

The FreeBSD kernel book is worth a look too:

ja30278 · 2010-08-16 · Original thread
Surprised not to see "Design and Implementation of the FreeBSD Operation System" mentioned yet (

McKusick's 'Kernel Internals' class is based on this, and is well worth your time (though it's a bit pricey to purchase the videos on your own:

Fresh book recommendations delivered straight to your inbox every Thursday.