Hacker News new | past | comments | ask | show | jobs | submit login

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:

http://svnweb.freebsd.org/base/head/share/examples/




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.


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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: