Linux System Programming, 2nd Ed

Author:Robert Love
Publisher: O'Reilly
Pages: 456
ISBN: 978-1449339531
Audience: Experienced C Programmers wanting to work with the Linux kernel
Rating: 4.5
Reviewer: Harry Fairhead

 

What exactly is systems programming? Who should read this book?

 

The term can mean a number of different things to different programmers. In this case it is taken to mean using the low-level APIs provided by the kernel. Of course, if you don't know what exactly is provided by the kernel, this too is not going to help. 

Basically the kernel provides the file system, process management and memory management and that's about it. So in this book you can hope to learn how to work with files and some devices, manage threading and allocate memory. These are very basic tasks and the book really is about some very low level concerns.

The very first thing to say is that you aren't going to need to read this book unless you are a C programmer. You need to be very happy with C and a reasonably experienced programmer - this book is not for beginners.

 

Banner

 

Even though it isn't for complete beginners, the first chapter starts off with a reasonable introduction to the idea of the basic services provided and how to set up and use a suitable C compiler. It suggests that "even advanced users should read this chapter" and I think I agree. You can become "advanced" and still miss some of the information and outlook.

Chapter 2 starts a large set of chapters on the file system. It deals with basic File I/O. As well as how to work with files, it also gives you some insight into how Linux manages files. If you have used any low level file API then this sort of thing will be familiar. From here we move on to chapter 3 one buffered I/O and buffer management and chapter 4 on advanced file I/O, The final chapter on working with files goes further than many will need to venture but it is still worth knowing where to find explanations and examples of memory mapping and general optimizations. 

 

linluxsysprog2e

 

Chapter 5 starts a run of chapters on process management. It introduces the fundamental idea of a process and explains the fork operation. Chapter 6 pushes on into the same territory with a look at advanced processes including real-time. Chapter 7 brings the discussion to a close with a look at threading, including the POSIX threading API Pthreads, and a look at processor affinity. 

Chapter 8 is probably should be logically closer to the file I/O chapters as it deals with file and directory management. You may know how to open and read a file, but operating systems generally provide APIs for doing things like copying, deleting, creating files and folders. 

Chapter 9 is about memory management and explains address space, pages, getting memory and releasing memory.  Chapter 10 is about signals  - a sort of software interrupt that has long been part of Unix.  

The final chapter deals with the apparently simple, but often complex problem of time in Unix-like systems. It goes as far as POSIX clocks and the high resolution timer. 

The first part of the book is highly focused on two big topics - working with files and process management - but after that the topics are a bit more disorganized. Each chapter gives a full detailed discussion of the theory and then some short example of how to make use of the API being introduced. Don't expect any big examples as they would miss the point completely - this is about getting to grips with the tiny details of using the APIs, not general application architecture. There are also some notable omissions like networking, but my guess is there is another book in the pipeline. 

Recommended if you want to work with Linux in C. 

 

Banner


The Book of CSS3

Author: Peter Gasston
Publisher:No Starch Press, 2011
Pages: 304
ISBN: 978-1593272869
Aimed at: Intermediate web developers
Rating: 4.5
Pros: Tackles complex issues
Cons: Introduces ideas with insufficient explanation
Reviewed by: Ian Elliot

HTML5 gets all the publicity but in fact CSS3 is responsible for  [ ... ]



Taming Text

Author: Grant S. Ingersoll, Thomas S. Morton and Andrew L. Farris
Publisher: Manning
Pages: 320
ISBN: 978-1933988382
Audience: Java programmers interested in processing text
Rating: 4.5
Reviewer: Alex Armstrong

What do you think a book called "Taming Text" is all about? 


More Reviews

 

Last Updated ( Monday, 31 March 2014 )
 
 

   
RSS feed of book reviews only
I Programmer Book Reviews
RSS feed of all content
I Programmer Book Reviews
Copyright © 2014 i-programmer.info. All Rights Reserved.
Joomla! is Free Software released under the GNU/GPL License.