Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I recently interviewed at a major company and did well on programming questions such as:

  • "What is the time complexity of quicksort?
  • What is the opposite in C of malloc?
  • What is the opposite in C++ of new?
  • What is the first argument in a Python function?"

However, I couldn't answer many of the networking / operating system questions so I wonder how to fill this gap. I plan to read the book "Operating Systems" by Tanenbaum and I wonder even though SO is not a recommendation engine in this case if you can tell me other pointers or concrete recommendation how to practice linux/unix internals besides using a linux system in most ways I can and studying the aformentioned book?

I read this thread which is basically a duplicate of my questions Recommended reading to better understand unix/linux internals And I therefore have ordered the book "The Unix Programming Environment" even though it is old.

Any other advice / answer / comment? Maybe about

1) which tasks to perform to become more knowledgable about linux / unix internals.


share|improve this question

closed as not constructive by Michael Mrozek Jul 11 '12 at 16:09

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

Yesterday I interviewed with a major company and got asked 3 out of the above 4 questions. Coincidence? :) – rahmu Jul 11 '12 at 16:09
up vote 4 down vote accepted

One of the best books for learning in depth about Linux is a book called Rute. It is fairly old (last ed. 2001), but is still very useful, although by now some distros will use different systems (e.g. Upstart in Ubuntu):


Another excellent book is the Debian handbook, which is very useful if you are using Debian or Debian based systems:

Debian Handbook

I have also learned a lot from the Linux Command line book, which is extremely well written and available from linuxcommand.org.

share|improve this answer
Rute and the Debian Handbook (I don't know about the third one), will teach you how to use Linux, but won't teach you really about its internals. If you want to understand how Unix is made (as opposed to how to use it more efficiently), other books are more appropriate. – rahmu Jul 11 '12 at 16:10

I think the best book for Unix/Linux internals is

Unix Operating System by Maurice J. Bach

PDF is available on the Internet.

share|improve this answer

A combination of UNIX / Linux and programming: The Art of UNIX Programming. Very good book and has extensive information about how and why UNIX works, the way it does and why programs for UNIX are written in the way they are.

The book presents itself as a lecture about "why" and not about "how" and respects this motto.

share|improve this answer
"The Art of UNIX programming" is a great book, doing a wonderful job at defining (or attempting to define) what we informally call the Unix "philosophy". However it doesn't really teach you how Unix works, and definitely doesn't prepare you better for upcoming (potential) interviews. – rahmu Jul 11 '12 at 16:13

I'm not sure whether this is what you are after. It is a about systems programming, rather than the internals of Linux itself. It's called The Linux Programming Interface: A Linux and UNIX System Programming Handbook and covers everything from the basics of the filesystem to some more complicated stuff on capabilities and threads. Thoroughly recommend it.

share|improve this answer

The book that taught me most about Unix's internals was Advanced Programming in the UNIX environment originally written by W. Richard Stevens and updated by Stephen Rago to include mainly chapters about threading.

I'm assuming you're familiar with C so you won't have any problem following the book at all.

share|improve this answer
I downloaded the source today and will have a look. Thanks for the info. – Dac Saunders Mar 4 '13 at 13:51

Not the answer you're looking for? Browse other questions tagged or ask your own question.