HN Books @HNBooksMonth

The best books of Hacker News.

Hacker News Comments on
The Design And Implementation Of The Freebsd Operating System

Marshall Kirk McKusick, George V. Neville-Neil · 5 HN comments
HN Books has aggregated all Hacker News stories and comments that mention "The Design And Implementation Of The Freebsd Operating System" by Marshall Kirk McKusick, George V. Neville-Neil.
View on Amazon [↗]
HN Books may receive an affiliate commission when you make purchases on sites after clicking through links on this page.
Amazon Summary
The authors provide a concise overview of FreeBSD's design and implementation. Then, while explaining key design decisions, they detail the concepts, data structures, and algorithms used in implementing the systems facilities. As a result, readers can use this book as both a practical reference and an in-depth study of a contemporary, portable, open source operating system.
HN Books Rankings

Hacker News Stories and Comments

All the comments and stories posted to Hacker News that reference this book.
Not an article, but Kirk McKusick (a very longtime developer of BSD) gave a few talks on BSD and UNIX history (and the beginnings of TCP/IP), which are on YouTube:

If you prefer text, you can find it in Chapter 1 of his book "The Design and Implementation of the FreeBSD Operating System": (the chapter seems to be available in the book preview)

Eric S. Raymond also wrote a nice chapter on UNIX history in "The Art of Unix Programming":

Thanks, looks very interesting.
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:

Thanks for the references!

I actually started to look into FreeBSD kernel code recently. I've found that FreeBSD's ath driver code is cleaner and more straightforward compared to the ath/ath*k drivers in Linux. Not sure if this is coincidence or due to different philosophy between FreeBSD and Linux communities.

I've found similar across the board; I think it boils down to different philosophies/development cultures.
Indeed and there is a new edition of the Design and Implementation updated for FreeBSD 10/11

NetBSD is pretty approachable too. With the rump kernel you can run drivers in userspace, so you can use a normal debugger and so on, and not crash the OS you are running.

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:

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:

HN Books is an independent project and is not operated by Y Combinator or
~ [email protected]
;laksdfhjdhksalkfj more things ~ Privacy Policy ~
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.