Advanced Linux Programming Resources, code samples and Free Book

Link to CodeSourcery“As Linux becomes a more mainstream player in the internet infrastructure market, there is a tremendous need for lucid programming texts that also convey some of the philosophy behind the Linux and GNU movements. This book does an incredible job of covering all that. I think it will be a standard against which other introductory programming texts for Linux (and with all due respect to Richard Stevens, possibly UNIX as well) are measured.” — Adam Goodman, Publisher, Linux Magazine

From the Back Cover

Advanced Linux Programming is intended for the programmer already familiar with the C programming language. Authors Alex Samuel, Jeffrey Oldham, and Mark Mitchell of CodeSourcery, LLC take a tutorial approach and teach the most important concepts and power features of the GNU/Linux system in application programs.

If you’re a developer already experienced with programming for the GNU/Linux system, are experienced with another UNIX-like system and are interested in developing GNU/Linux software, or want to make the transition for a non-UNIX environment and are already familiar with the general principles of writing good software, this book is for you. In addition, you will find that this book is equally applicable to C and C++ programming. Even those progamming in other languages will find this book useful since the C language APIs and conventions are the lingua franca of GNU/Linux.

Download Advanced Linux Programming

Download the full text of the book as PDF files .

The book is published under the Open Publication License, Version 1.0. Please consult the OPL for conditions on redistributing or modifying the book.

Download Code Listings

Download the code listings in this book as a gzipped tar file. Extract the code samples with this GNU/Linux command:

$ tar zxf ALP-listings.tar.gz

If you’re having trouble expanding the gzipped tar file, your web browser may be uncompressing it automatically during the download. If your browser downloads this file as ALP-listings.tar, you have an uncompressed tar file, so omit the z option when expanding it:

$ tar xf ALP-listings.tar

The code samples in this book are covered by version 2 of the GNU General Public License. Please consult the GPL for conditions on using, modifying, and redistributing the code in this book.

Browse Code Listings

You may also browse the code listings on-line.


Resources for Advanced Linux Programming

Here are some places to visit on the Internet to learn more about programming for the GNU/Linux system.

General information

  • is this book’s home on the Internet. Here, you can download the full text of this book and program source code, find links to other online resources, and get more information about programming GNU/Linux.
  • is the home of the Linux Documentation Project. This site is a repository for a wealth of documentation, FAQ lists, HOWTOs, and other documentation about GNU/Linux systems and software.

Information about GNU/Linux software

  • is the home of the GNU Project. From this site, you can download a staggering array of sophisticated free software applications. Among them is the GNU C library, which is part of every GNU/Linux system and contains many of the functions described in this book. The GNU Project site also provides information about how you can contribute to the development of the GNU/Linux system, by writing code or documentation, by using free software, and by spreading the free software message.
  • is the primary site for distribution of the Linux kernel source code. For the trickiest and most technically detailed questions about how Linux works, the source code is the best place to look. See also the Documentation directory for explanation of the kernel internals.
  • also distributes Linux kernel sources, patches, and related information.
  • is the home of the GNU Compiler Collection (GCC). GCC is the primary compiler used on GNU/Linux systems, and includes compilers for C, C++, Objective C, Java, Chill, and Fortran.
  • and are the homes of the two most popular GNU/Linux windowing environments, Gnome and KDE. If you plan to write an application with a graphical user interface, you should familiarize yourself with either or both.

Other sites

  • provides information about Intel processor architectures, including the x86 (IA32) architecture. If you are developing for x86 Linux and use inline assembly instructions, the technical manuals available here will be very useful.
  • provides similar information about AMD’s line of microprocessors and their special features.
  • is an index of open source software, generally for GNU/Linux. This site is one of the best places to stay abreast of the newest releases of GNU/Linux software, from core system components to more obscure, specialized applications.
  • contains information, techniques, and links to software related to GNU/Linux security. The site is of interest to users, system administrators, and developers.