views:

685

answers:

7

I'm looking for a good book on Linux system programming and wondered whether anybody could recommend an up-to-date appropriate book that covers the subject well. Things like:

  • I/O and fileystems
  • Thread and processes
  • etc...

Can anybody suggest an appropriate book that they've read/used, not just something that they've seen on Amazon : ) many thanks...

+4  A: 

Advanced Linux Programming is freely available and is an excellent book on Linux system programming.

Ayman Hourieh
How up to date is this though? Seems to date back to 2001... link is here to online version: http://www.advancedlinuxprogramming.com/
Jon
A: 

There are some good recommendations in this StackOverflow question of the same subject:

http://stackoverflow.com/questions/381557/how-do-i-get-started-programming-in-linux

Wayne Koorts
That question deals with using Linux as a programming environment in general, perhaps with languages such as Java, Python, or Perl, while this one is specifically about *Linux system programming*.
Jonik
@Jonik: You really should go and read the items in the link before you comment.
Wayne Koorts
I did. Some of the recommendations may be relevant here too (and indeed some are already mentioned); many are not. Anyway, that /question/ isn't really of the same subject, as you suggested.
Jonik
What I said was that there are some good recommendations in the question, which there are.
Wayne Koorts
+7  A: 

Although you've specifically asked for an up-to-date book, I think it's worth mentioning Advanced Programming in the UNIX® Environment (2nd Edition). It was released in 2005, and is an update of the classic first edition (released in 1992) by the late W. Richard Stevens. I'm familiar with the first edition, but haven't seen the second one.

The first edition became a classic because it provided thorough yet clear descriptions of its topics, with copious code examples which were available for download. The second edition is updated to include Linux, FreeBSD and Mac OS X, and by all reports (e.g. reviews on Amazon) is just as good a book as the first edition.

TimB
Familiar with this one, I believe it was the reference book in my university course on unix systems programming, alas I never bought it, but thanks for the reminder, it's a classic alright : )
Jon
Source Code here: http://www.kohala.com/start/apue.html
Shiftbit
A: 
alex
If you have read it, can you elaborate a bit: why do you recommend it?
Jonik
+1  A: 

Linux Kernel Development by Robert Love. Gives you in-depth UNDERSTANDING of how Linux works. However, you will not find few-pages code samples in there. I read this book being almost a Linux newbie and afterwards was able to write kernel modules.

smok1
A: 

Linux Application Development is a good book to start with covering the basics on *nix development.

cover

Fredrik Leijon
+1  A: 

So after doing all the research into the books presented here, Beginning Linux Programming by Neil Matthew and Richard Stones was the book I chose in the end.

It was up to date (published in 2007), covered all the topics I wanted it to (including Threads, I/O, IPC etc...) as well as GUI programming with Gnome/KDE.

Having read the first three chapters, it's a good introductory text to system programming in general and covers some of the more advanced topics.

Jon