Linux System Programming — Danish Prakash

Linux System Programming

It took me more than a year to complete this book, of course, I didn’t read it every day but it’s one of the books I’ve spent the most time reading. An extremely dense explanation of the various system calls that make up what’s referred to as Linux system programming. It’s extremely theoretic although you can work up some of the example snippets that are strewn across the book.

The book explains the nitty gritty of the different Linux concepts such as process, file, and memory management in an easy-to-understand manner. For instance, explaining pathname resolution from the ground up. And answering questions such as why your file writes are so fast when the underlying disk is supposed to be slow. Or how pids are reused for processes when your machine has been running long enough. Or how the kernel makes use of copy-on-write to provide better performance without any tangible difference in functionality. There are many such examples and I could go on but that wouldn’t serve any purpose.

The last three chapters I felt were somewhat targeted, and a tad bit too theoretical for casual reading. But the first eight chapters and the treasure trove of information in them more than makeup for a little bit of theory at the end. I just wished the book had more practical exercises.