Y'know, when I was learning my way around Unix system programming, I was told "the source code is the documentation" and that worked for me. When I wanted to find out if there was a C library function to do what I wanted, or how it worked, I read the C library source code. When I didn't like how the library worked I changed it and recompiled it.