Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    Cover of Understanding Linux network internals

    Understanding Linux network internals

    Christian Benvenuti · 2005

    Systems & OS
    Open LibraryAmazon
    Stats for nerds
    2recommend
    7mentions
    7people
    2009–2020years
    29% recommend57% neutral14% critical

    Mentions per year

    2009201120132015201720192020

    What Hacker News says

    1. rramadassOct 2020
      I highly suggest reading at least one book on Computer Networking and my recommendation is for An Engineering Approach to Computer Networking: ATM Networks, the Internet, and the Telephone Network. You get a detailed overview of all the important network technologies.

      Next for TCP/IP; i suggest The TCP/IP Guide: A Comprehensive, Illustrated Internet Protocols Reference followed by the Stevens' books already mentioned by others.

      Finally to understand the interaction between HTTP application protocol and the underlying TCP/IP suite i suggest Web Protocols and Practice: Http/1.1, Networking Protocols, Caching, and Traffic Measurement.

      Only after you have some idea of the above should you look at the Linux specific implementation for which Understanding Linux Network Internals: Guided Tour to Networking on Linux is a good reference.

      thread
    2. n_tNov 2018
      Here is my list, which is biased towards Linux. Almost all the books mentioned here are dated and primarily written for 2.6 based kernels. Although many concepts are still applicable and in certain subsystems, the code will be as is with minor changes. So, despite them being old they are still good references.

      * Design and implementation of the FreeBSD operating system: Good and thorough deep dive in FreeBSD OS. Must have.

      * FreeBSD Device Drivers: A Guide for the Intrepid: Didn't quite read it all but looks fine for FreeBSD.

      * Mac OSX internals - a systems approach by Amit Singh: It was good back in days but now outdated.

      * Linux Device Drivers, 3ed : Very dated but still good to grasp Linux device drivers in general. The code examples are bit silly but good enough. There are some GitHub repos which have updated code for latest kernels.

      * Essential Linux Device Drivers by S Venkateswaran: It complements LDD3 book quite nicely. Has some real device examples and very exhaustive. Must have.

      * Linux kernel development by Robert Love: Very good for short/quick intro. Best for preparing before interviews ;)

      * Professional Linux kernel architecture by Wolfgang Mauerer: As other book, its dated but some of the explanations about interrupts, PCI, etc are good. His callgraph approach was very handy in understanding things.

      * The Linux programming interface by Michael Kerrisk: Not really about OS but next thing close to it - system programming (the real system programming). Must have.

      * Understanding Linux virtual memory manager by Mel Gorman: As other books, it's dated but still one of the best available to get a handle on memory management under Linux. Must have.

      * Understanding the Linux kernel: Dated but still my go to book to refresh certain subsystems. Must have.

      * Linux Kernel Programming by Michael Beck: Mentioned for historical reasons, else most out dated book here (2.4 based). Horrible editing and English but heck! I loved it back in the days :)

      * Linux kernel networking by Rami Rosen: Never read it but quite dated.

      * Understanding Linux network internals by Christian Benvenuti: A real bible of Linux networking. If nothing else, your jaw drops at the effort author made to write this book. Dated but unlike more generic Linux kernel things, network stack is still same in its core. Must have.

      * The Linux kernel primer: A top-down approach for x86 and PowerPC Architecture: Very dated book but good to read from PPC perspective. Lot of things have changed since its publication.

      * See MIPS Run by Dominic Sweetman: dated but gives good idea about MIPS internals and how Linux uses it.

      * IA-64 Linux Kernel: Design and Implementation: Its dated not just w.r.t code but also w.r.t. hardware. Nonetheless, it gives a good insight into IA-64 architecture and Linux from non-x86 perspective.

      * Definitive guide to Xen hypervisor: this is the only book on virtual machine which is not just from user perspective. While best way to learn VM is through reading architecture spec and code, this book still satisfied me w.r.t. virtual machine internals.

      Every other book on amazon about Linux kernel is more or less useless. For more academic book, "Operating systems - three easy pieces" is good.

      thread
    3. DanAtCAug 2019
      Any suggestions for Linux networking? I have Understanding Linux Network Internals but it’s a bit dated.
      thread
    4. warentJun 2017
      I replied to another user "40acres" in this thread about my process, check that out for additional details. Yes, watch videos and read books. "Tushar Roy - Coding Made Simple" on YouTube was a massive help. Some books I've read: Cracking the Coding Interview, Programming Interviews Exposed, Programming Pearls, Hacker's Delight, Mythical Man Month, Boolean Reasoning: The Logic of Boolean Equations, Understanding Linux Network Internals, Introduction to Algorithms CLRS, Return on Software: Maximizing the Return on Your Software Investment, Software Estimation: Demystifying the Black Art.

      I read (past and presently) a lot of business and finance books as well. Also tons of books teaching soft skills, which is hugely important.

      thread
    5. ezequiel-garzonOct 2012
      Dear HN community:

      Over the last years I've dealt with virtual servers from various providers. I have too often forgotten what I wanted to do with them, but in the process learned a lot. (Actually a bit for HN standards.) With all this momentum, and given the affordable dedicated servers that can be found today, I decided to try a new adventure: setting up my own virtual servers. The only issue is that now I'm beyond stuck. On the other hand, I really don't want to give up on this.

      I prefer building my knowledge with textbooks, even if it takes longer, than with copy-and-paste tutorials. But now I can't even seem to find such textbooks or sources. In particular, I'm stuck with the notion of mapping external and internal IP addresses, again while gaining understanding in the process. For example:

        - When exactly do I need bridging?
        - When do I need to request a MAC address in connection to the external IP?
        - Must I map IP to MAC ("bridge_hw" directive, I believe) explicitly? Why? When?
        - Where would you use route over iptables?
      
      Please note that I'm lost, so any attempts to answer these questions would probably lead to new ones! Rather, I'm looking for authoritative (and pedagogic!) sources. I read great things about Benvenuti's "Understanding Linux Network Internals", but this seems to take all the way down to kernel-level programming, which I imagine should be avoidable. Maybe "Linux Network Administrator's Guide", by Dawson et al, has a more hands-on approach that makes it more recommendable? I often go back to Frisch's "Essential System Administration". While I have by no means read it back to back, I believe the kind of discussion I'm seeking is not found at length there.

      Any references will be greatly appreciated. It doesn't have to be a published book, by the way. A blog, an article series, etc. will be welcome.

      Thanks in advance!

      thread
    6. mahmudAug 2009
      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.

      thread

    Related

    Linux Kernel NetworkingRami Rosen
    2018–2023

    Linux Kernel Networking

    Rami Rosen
    2 recommend · 5
    Cover of Embedded Linux primer
    2017–2023

    Embedded Linux primer

    Christopher Hallinan
    3 recommend · 3
    Cover of Essential Linux Device Drivers
    2018–2019

    Essential Linux Device Drivers

    Sreekrishnan Venkateswaran
    2 recommend · 2
    Cover of UNIX systems for modern architectures
    2009–2026

    UNIX systems for modern architectures

    Curt Schimmel
    4 recommend · 11
    Cover of Hands-On Network Programming with C
    2022–2024

    Hands-On Network Programming with C

    Lewis Van Winkle
    2 recommend · 2
    Cover of An engineering approach to computer networking
    2018–2024

    An engineering approach to computer networking

    Srinivsan Keshav
    2 recommend · 12
    Cover of UNIX systems programming
    2010–2024

    UNIX systems programming

    Kay A Robbins
    6 recommend · 12
    Cover of Understanding The Linux Kernel
    2007–2026

    Understanding The Linux Kernel

    Daniel P. Bovet
    24 recommend · 42