Understanding ThreadsThe traditional Unix model was fork and exec, which is "expensive" in terms of cpu time. However (and this is the part that often gets left out), that doesn't mean that fork and exec is "bad" and threads are "good": it depends upon what it is you need to accomplish. Even at that, there are other considerations, as we shall see.
Understanding the Unix KernelI didn't like the first edition of this book, and I still don't like the current edition, though I admit I'm having a hard time understanding why.
Performance Tuning for Linux ServersI'm trying hard to like this more than I do. It's not that there isn't good stuff in here; there is. But I just can't get excited about it. Maybe it's the fact that there are so many different contributors. The editors have done a more than reasonable job of tying it all together to try to make it more monolithic, but..