Further information about kernel programming, especially regarding portable modules and networking, can be found at the following sites.
| "Linux Device Drivers, 2nd Edition": Online Book | O'Reilly's book. Worth its weight in gold. |
| LWN.net v2.4/v2.6 porting guide | Everything you need to know to write portable kernelspace code |
| KernelNewbies.org | Contains a host of useful information. Don't let the name put you off. |
| linux kernel cross reference | complete cross references for various kernel versions. Use its identifier search instead of grepping your own sourcetree. |
| the linux kernel API (alternate link) | reference manual for the kernel's equivalent of libc |
| "the linux kernel" | an aptly named kernel overview |
| the linux kernel mailing-list FAQ | read this before posting to the list |
| The Linux Kernel Module Programming Guide | module centric documentation |
| module init tools FAQ | information on porting modules to the v2.6 kbuild infrastructure |
| "HOWTO Add a New Network Protocol in LINUX" | in case you need to hook into the protocol handling subsystem |
| BPF(4) man page | for those of you that don't know, the linux socket filter is based on this: the Berkeley Packet Filter. |
| LinuxJournal: "Roll your own firewall with netfilter" | a brief primer into netfilter programming |
| "HOWTO use netfilter hooks" | more detailed information on netfilter programming |
| "The journey of a packet through the linux 2.4 network stack" | a primer into the linux kernel network stack |
| "A Map of the Networking Code in Linux Kernel 2.4.20" | you can't get more detailed than this. |
| "Network Buffers And Memory Management" | by Alan Cox. Describes the main network datastructure (sk_buff) in great detail, especially regarding memory usage |
| the linux kernel procfs guide (alternate link) | Information on using /proc for kernelspace/userspace communication |
| "Understanding The Linux Virtual Memory Manager" | All you ever might need to know about linux VM management. Might be a bit outdated, as the VM changed a lot lately. |
Do you know of other useful kernel programming links? Or have you found an error? Please post a message in our kernel programming forum (anonymous posting is allowed).