4 ms·
Do you know there is "Understanding Linux Network Internals"? It's a fat beast but covers the subject in great detail. I had to write a device driver and needed
by mahmud 17y ago
Do you know there is "Understanding Linux Network Internals"? It's a fat beast but covers the subject in great detail. I had to write a device driver and needed to use a netlink socket for high speed chunked data transfer; for that particular purpose, I found ULNI to be too verbose and learned everything I needed from the Rubini book, the Love book, and various Linux Journal and LWN articles along with the requisite snooping into various sources.
Robert Love's book is a joy to read, very compact and quick, piecemeal introduction to the higher levels aspects of the kernel. Corbet, Rubini and Kroah-Hartman is good for some quick hands on. Supplment them with various other stuff online and linux/Documentation; nothing will force you to learn FAST like a buggy driver or a piece of unsupported hardware. I find casual academic hacking boring, and none of what I read makes sense until I am found by a very interesting problem.
Good luck.
- TallGuyShort 17y ago>> Rubini I dismissed that book just because I thought a book on "Device Drivers" wouldn't cover the networking modules specifically, and that's really all I'm interested in at this point. Was I wrong? Do they cover it in detail? >> Robert Love Ooh yes - I've looked at that book before and almost bought it. You say it's a "compact and quick piecemeal introduction to the higher level aspects of the kernel". Would you say that book is at least detailed enough for me to start confidently modifying the source code of the networking code once I'm done? It would be nice to understand the kernel as a whole form a high-level, but what I really need is a detailed look at the TCP/IP stack. >> Good luck. Thanks!
- mahmud 17y agoYou said you were "new to the whole scene"; you will at least need basic kernel hacking to work on the networking subsystem; at least enough to be able to use the appropariate memory allocation strategies; the options to kmalloc are not optional, you will have to grok what each strategy entails; same for slab buffers, synchronization primitives, error handling and clean up, etc. The book you REALLY want is ULNI; the driver model is essential for understanding the kernel because everything in the kernel is "pluggable", you almost use the same mechanisms to register a device driver, a file system, a network protocol, or something as basic as creating a new sysfs entry. If you're feeling too macho you can probably ignore Rubini and Love and just get ULNI and ctags ;-)
- TallGuyShort 17y agoNo I said I WASN'T new to the whole scene. I've written kernel code before, and I'm very familiar with all those mechanisms. However the networking code is extremely optimized, and a good walk-through of the code is necessary before one is able to associate each instruction with a particular action as it fits into the whole algorithm - and that's the kind of book I'm looking for. Thanks, though.