Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.


This book is about writing software that makes the most effective use of the system you're running on -- code that interfaces directly with the kernel and core system libraries, including the shell, text editor, compiler, debugger, core utilities, and system daemons. The majority of both Unix and Linux code is still written at the system level, and Linux System Programming focuses on everything above the kernel, where applications such as Apache, bash, cp, vim, Emacs, gcc, gdb, glibc, ls, mv, and X exist. Written primarily for engineers looking to program (better) at the low level, this book is an ideal teaching tool for any programmer. Even with the trend toward high-level development, either through web software (such as PHP) or managed code (C#), someone still has to write the PHP interpreter and the C# virtual machine. Linux System Programming gives you an understanding of core internals that makes for better code, no matter where it appears in the stack. Debugging high-level code often requires you to understand the system calls and kernel behavior of your operating system, too. Key topics include:

  • An overview of Linux, the kernel, the C library, and the C compiler

  • Reading from and writing to files, along with other basic file I/O operations, including how the Linux kernel implements and manages file I/O

  • Buffer size management, including the Standard I/O library

  • Advanced I/O interfaces, memory mappings, and optimization techniques

  • The family of system calls for basic process management

  • Advanced process management, including real-time processes

  • File and directories-creating, moving, copying, deleting, and managing them

  • Memory management -- interfaces for allocating memory, managing the memory you have, and optimizing your memory access

  • Signals and their role on a Unix system, plus basic and advanced signal interfaces

  • Time, sleeping, and clock management, starting with the basics and continuing through POSIX clocks and high resolution timers

With Linux System Programming, you will be able to take an in-depth look at Linux from both a theoretical and an applied perspective as you cover a wide range of programming topics.

Subscriber Reviews

Average Rating: 4.25 out of 5 rating Based on 4 Ratings

"good level of detail" - by pochodo on 25-APR-2014
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
thumbs up!
Report as Inappropriate

"Great for skimming" - by kiran on 01-APR-2010
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
Sometimes you are in hurry and want to lookup how a particular system call looks and how to use it quickly and effectively, then this book becomes very handy.
Report as Inappropriate

Table of Contents



The publisher has provided additional content related to this title.


Visit the catalog page for Linux System Programming

  • Catalog Page

Visit the errata page for Linux System Programming

  • Errata