Book: FreeBSD Device Drivers - A Guide for the Intrepid - J. Kong

I've been reading ^ this lately and it's super cool. Have been running FreeBSD
14.0 - CURRENT for a couple months and trying to learn about the kernel and
drivers. The first several chapters have introduced how to use make_dev to
create devices, and how to implement the d_foo functions such as d_open,
d_ioctl, d_read, et cetera (a struct with pointers to all these functions is
passed to make_dev, if I remember corretly). Also we've seen how to implement
basic sysctl, and now chapter four we are going over thread synchronization
issues and the need for various types of lock structures (mutexes and such).