
Advanced Linux Programming – book with free PDF (2001) - nonrecursive
http://advancedlinuxprogramming.com/
======
ctur
Two alternative, and better, choices, if you're willing to spend a few dollars
(and hopefully expense it to your manager):

The Linux Programming Interface: [http://www.amazon.com/Linux-Programming-
Interface-System-Han...](http://www.amazon.com/Linux-Programming-Interface-
System-Handbook/dp/1593272200/)

Advanced Programming in the UNIX Environment: [http://www.amazon.com/Advanced-
Programming-UNIX-Environment-...](http://www.amazon.com/Advanced-Programming-
UNIX-Environment-3rd/dp/0321637739/)

A not-too-distant third choice, Linux System Programming:
[http://www.amazon.com/Linux-System-Programming-Talking-
Direc...](http://www.amazon.com/Linux-System-Programming-Talking-
Directly/dp/1449339530/)

~~~
stplsd
In my opinion these are best two books on the subject. Stevens' book is
classic and have been updated quite recently (3rd edition came out 3 years
ago), LPI is very extensive and have some specific Linux info not present in
Stevens' book and is clearly influenced by Stevens book.

~~~
b3h3moth
Stevens is dead many years ago. The second and the third editions were written
by Rago. He is a good author but he is not Stevens.

------
richm44
I'd recommend this book instead 'The Linux Programming Interface'
[http://man7.org/tlpi/](http://man7.org/tlpi/) it's a lot more recent and the
content is excellent, though it's not a free download. The author is also the
maintainer of the linux man pages.

~~~
jaimehrubiks
Well I don't think it is so much better, I is very usefull but it seems to my
more like a manual than a book

------
nickles
>>
[http://advancedlinuxprogramming.com/about.html](http://advancedlinuxprogramming.com/about.html)

This appears to be the first edition of the book, published in 2001. Is this
book still useful, considering it's 15 years old?

~~~
notalaser
Some of the subjects it treats are low-level enough (and of Unix-ish heritage)
that their treatment is probably not irrelevant today. The performance
considerations of threads and processes are probably out of date, but their
API (sections 3 and 4) is largely still the same. Same for shared memory and
other IPC mechanisms described in section 5. The API re. section 7 still
applies -- /proc has expanded considerably since 2001, but it's still used in
the same manner. Chapter 8 is probably more out of date than others, but you
can still follow it. Stuff in 9 is probably not used much anymore, an #10,
while adequate, would probably be considered incomplete today.

I'd say it's still useful to someone who comes to Linux from other platforms,
or to people who are already using Linux but aren't familiar with systems
programming under it.

Edit: although, as someone else pointed out, APUE is probably a better choice
(and was a better choice back in 2001, too).

------
ruraljuror
I am getting interested in Unix programming, but essentially starting from
scratch. I've read through the first two chapters of the _The Linux
Programming Interface,_ and while I think it is a great book, so far it has
not been easy for me to find points of entry. I think it might not be the best
book for me to start with.

I've just started _How Linux Works,_ but I thought I might take this
opportunity to ask for suggestions for someone trying to get started (doesn't
have to be a book).

~~~
brudgers
Raymond's _The Art of Unix Programming_ is a good resource for understanding
the design philosophy of Unix...and by extension Linux. It explains much of
the context and history behind why things are done the way they are done and
what good _nix programs do to be good_ nix programs.

[http://www.catb.org/esr/writings/taoup/html/](http://www.catb.org/esr/writings/taoup/html/)

------
ak2196
Stevens APUE is a much better choice.

------
bluedino
Is this a good read after finishing Beginning Linux Programming (big red book
by WROX) by Neil Matthew and Richard Stones?

------
jaguar86
This is a good write up for IPC related stuff -
[http://beej.us/guide/bgipc/output/html/singlepage/bgipc.html](http://beej.us/guide/bgipc/output/html/singlepage/bgipc.html)

~~~
tyingq
It is somewhat helpful, but the examples for shared memory and mmap ignore
concurrency issues and refer you to a generic, non-language specific WikiPedia
page for guidance.

------
thatguy_2016
It seems many people dont like this book. Why's that?

------
known
[http://www.kohala.com/start/](http://www.kohala.com/start/)

------
kidgorgeous
why are all the chapters in separate pdf's? Is that unintentional or an
enticement to buy the book when it comes out? If it's the former, anybody got
a full pdf download link?

~~~
_kst_
The first line in the table on [http://advancedlinuxprogramming.com/alp-
folder/](http://advancedlinuxprogramming.com/alp-folder/) is a link to the PDF
of the full book.

[http://advancedlinuxprogramming.com/alp-folder/advanced-
linu...](http://advancedlinuxprogramming.com/alp-folder/advanced-linux-
programming.pdf)

(The size in the table is incorrect. It's 3866012 bytes, not 1273361. The
md5sum is correct.)

~~~
_kst_
The size has now been corrected.

------
maqbool
pretty good book

------
kev009
If you are doing "Linux programming" instead of UNIX programming, you are most
likely doing something wrong.

~~~
tkinom
Where can I find a "UNIX" distribution to try? :-)

Linux are in every android cell phones, PI, pc, etc.

~~~
cbd1984
z/OS is legally UNIX.

So's HP-UX and Solaris (probably not any of the Open Source variants,
however).

None of the Open Source BSDs qualify as UNIX, however.

