Recommended reading to better understand Unix/Linux internals

47,436

Solution 1

Here are some suggestions on how to understand the "spirit" of Unix, in addition to the fine recommendations that have been done in the previous posts:

  • "The Unix Programming Environment" by Kernighan and Pike: an old book, but it shows the essence of the Unix environment. It will also help you become an effective shell user.

  • "Unix for the Impatient" is a useful resource to learn to navigate the Unix environment. One of my favorites.

If you want to become a power user, there is nothing better than O'Reilly's "Unix Power Tools" which consists of the collective tips and tricks from Unix professionals.

Another book that I have not seen mentioned that is a fun light and education reading is the "Operating Systems, Design and Implementation", the book from Andy Tanenbaum that included the source code for a complete Unix operating system in 12k lines of code.

Solution 2

You definitely want to read Advanced Programming in the Unix Environment by Stevens. Don't let the Advanced title scare you away, its very readable.

Solution 3

Solution 4

Books/sites/manuals that I am using frequently:

  • The Linux Kernel: This book is published online as a part of TLDP (The Linux Documentation Project). It is not up-to-date and not an internal manual, but provides useful information and introductory materials about principles and mechanisms of the kernel.

  • Understanding Linux Kernel: IMHO, it is the best book for beginners who has background about the operating systems' design and concept. It is accepted as up-to-date, covers version 2.6 of the kernel. There is an HTML version of the book on the web, but I think it is most probably warez.

  • Some book about virtual memory management

While studying linux kernel internals, you usually need to learn how hardware works and what hardware provides in abstract manner. Intel has great manuals for this.

If you need to study about operating systems' design and concept, I suggest following book: Operating System Concepts.

Solution 5

O'REILLY Linux Kernel in a Nutshell
and O'REILLY Linux Device Drivers

Share:
47,436

Related videos on Youtube

Hemant
Author by

Hemant

Updated on September 17, 2022

Comments

  • Hemant
    Hemant almost 2 years

    I've worked on *nix environments for the last four years as a application developer (mostly in C).

    Please suggest some books/blogs etc. for improving my *nix internals knowledge.

    • Admin
      Admin almost 14 years
      with your experience only reading kernel source would help .)
    • Admin
      Admin almost 14 years
      RTFS is always best, but sometimes a little lite reading makes the source a little easier to understand.
    • Admin
      Admin almost 14 years
      Someone who has editing privileges really ought to edit that title.
    • Admin
      Admin almost 12 years
      I am currently following Matt Might's advice in his article, What Every Computer Science Major Should Know. He recommended The Unix Programming Environment by Kernighan and Pike, Linux Server Hacks, UNIX and Linux System Administration Handbook by Nemeth, Synder, Hein and Whaley, Linux Kernel Development by Love, and Unix Network Programming by Stevens, Fenner and Rudoff.
    • Admin
      Admin over 11 years
      @Anthony, those are excellent resources, but more oriented to the userland/command line. Also, particularly Linux is changing very fast right now, you'd need to keep up to date. Nice resources are LWN and kernelnewbies.
  • JJ.
    JJ. almost 14 years
    Linux kernel in a nutshell is about how to build and install the kernel, not really about the internals of Linux/Unix. Not to say it's not a good book, but I'm a bit biased. Oh, both of these books are free online if you want to look at them there.
  • Hemant
    Hemant almost 14 years
    +1. book on "virtual memory manager" ?? seems very interesting. thanks :-).
  • xenoterracide
    xenoterracide almost 14 years
    I have 2nd ed which is also very good IMO
  • Daniel Näslund
    Daniel Näslund over 11 years
    +1 for the Lions book. MIT's xv6 is modern version of Lions v6 that runs on x86 machines and uses ANSI C. Both source code and associated textbook can be downloaded.
  • amphibient
    amphibient over 11 years
    why is a book with 864 pages called anything "for the impatient"?
  • Christopher Poile
    Christopher Poile almost 11 years
    @amphibient I take it you haven't seen the "for the patient" edition.
  • islandman346
    islandman346 about 10 years
    This isn't "internals"....