Hacker News Comments on
The Design And Implementation Of The Freebsd Operating System
·
5
HN comments
- This course is unranked · view top recommended courses
Hacker News Stories and Comments
All the comments and stories posted to Hacker News that reference this book.BSDs are UNIX.https://www.amazon.com/Design-Implementation-FreeBSD-Operati...
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: https://www.youtube.com/watch?v=bVSXXeiFLgkIf you prefer text, you can find it in Chapter 1 of his book "The Design and Implementation of the FreeBSD Operating System": https://www.amazon.com/Design-Implementation-FreeBSD-Operati... (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": http://www.catb.org/esr/writings/taoup/html/historychapter.h...
⬐ luzer7Thanks, 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): http://www.amazon.com/Design-Implementation-FreeBSD-Operatin...
There are papers, such as Jonathan Lemon's "Kqueue: A generic and scalable event notification facility" presented at Usenix 2001: http://people.freebsd.org/~jlemon/papers/kqueue.pdf
There are kernel interface man pages:
http://www.freebsd.org/cgi/man.cgi?query=SYSCALL_MODULE&sekt...
http://www.freebsd.org/cgi/man.cgi?query=hhook&apropos=0&sek...
There are examples referenced by the man pages:
⬐ songgaoThanks 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.
⬐ teacup50⬐ justincormackI'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 http://www.freebsdnews.net/2014/04/02/design-implementation-...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 http://www.amazon.com/Understanding-Linux-Kernel-Third-Editi... (that's a very technical and in-depth book) and http://www.amazon.com/Linux-Kernel-Development-3rd-Edition/d... (that's a more gentle overview book) then dive in with http://www.amazon.com/UNIX-Filesystems-Evolution-Design-Impl... and write a very simple file system.Learn C as necessary.
The FreeBSD kernel book is worth a look too: http://www.amazon.com/Design-Implementation-FreeBSD-Operatin...
Surprised not to see "Design and Implementation of the FreeBSD Operation System" mentioned yet (http://www.amazon.com/Design-Implementation-FreeBSD-Operatin...).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: https://www.mckusick.com/courses/advorderform.html)