views:

691

answers:

5

This just occurred to me in answering another question. Can anyone recommend any good, current, systems programming books, for really any variant of UNIX? Such a book would teach file and directory structure, fork/exec, pipes, FIFOS, and semaphores. I'd think (looking back on my similar course) that a reasonable final project would be writing a full shell, and possibly a lightweight HTTP daemon.

The UNIX Programming Environment by Kernighan and PIke comes closest, but is pretty old.

+1  A: 

Advanced unix programming

+11  A: 
Bob Somers
+1, probably the best book for learning systems programming in UNIX. The second edition is also quite current including Linux 2.4 and Solaris 9.
Robert Gamble
Thing thing I love about it too is that it makes it very clear when a particular system call is different in each and specifies how they differ.
Bob Somers
Best book up to 2009 on the subject.
ojblass
+4  A: 

You may want to have The Art of Unix Programming for light (?) reading. This book is freely available online.

Linux Device Drivers is probably another good book you may want to take a look if you need to go deep into the kernel.

PolyThinker
+1  A: 

A great book on systems that covers the above subjects, though not Unix-specific (they try to remain reasonably agnostic), is "Computer Systems: A Programmer's Perspective" by Bryant and O'Hallaron.

Interestingly, the class they teach from this textbook actually involves writing a shell and a caching proxy service, just like you suggested.

SquareCog
A: 

I enjoyed the Unix Systems Programming book. It's not an ultimate reference book, but rather teaches the nuances of the POSIX standard for the standard Unixy things and the threading and timers sections are really good.

s1n