Programming Books C Java PHP Python Learn more Browse Programming Books
GNU/Linux Application Programming (Programming Series) and over one million other books are available for Amazon Kindle. Learn more

Sorry, this item is not available in
Image not available for
Image not available

To view this video download Flash Player


Sign in to turn on 1-Click ordering
Sell Us Your Item
For a $3.17 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Start reading GNU/Linux Application Programming (Programming Series) on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

GNU/Linux Application Programming (Programming Series) [Paperback]

M. Tim Jones
4.4 out of 5 stars  See all reviews (13 customer reviews)

List Price: $54.99
Price: $34.05 & FREE Shipping on orders over $35. Details
You Save: $20.94 (38%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
Only 10 left in stock (more on the way).
Ships from and sold by Gift-wrap available.
Want it tomorrow, July 11? Choose One-Day Shipping at checkout. Details
Free Two-Day Shipping for College Students with Amazon Student


Amazon Price New from Used from
Kindle Edition --  
Paperback $34.05  
Shop the new
New! Introducing the, a hub for Software Developers and Architects, Networking Administrators, TPMs, and other technology professionals to find highly-rated and highly-relevant career resources. Shop books on programming and big data, or read this week's blog posts by authors and thought-leaders in the tech industry. > Shop now

Book Description

April 3, 2008 1584505680 978-1584505686 2nd
GNU/Linux is the Swiss army knife of operating systems. You'll find it in the smallest devices (such as an Apple iPod) to the largest most powerful supercomputers (like IBM's Blue Gene). You'll also find GNU/Linux running on the most diverse architectures, from the older x86 processors to the latest cell processor that powers the PlayStation 3 console. GNU/Linux Application Programming, Second Edition gets you up and running developing applications on the GNU/Linux operating system, whether you're interested in creating applications for an iPod or a Blue Gene. This completely updated edition covers all the necessary tools and techniques with many examples illustrating the use of GNU/Linux APIs. Split into fi ve distinct parts, the book covers GNU tools, topics in application development, shells and scripting, debugging and hardening, and introductory topics, including the fundamentals of virtualization. See why thousands of programmers have chosen GNU/Linux Application Programming to teach them how to develop applications on the GNU/Linux operating system!

Frequently Bought Together

GNU/Linux Application Programming (Programming Series) + C: How to Program, 7th Edition
Price for both: $165.34

Buy the selected items together
  • C: How to Program, 7th Edition $131.29

Editorial Reviews


PART 1: INTRODUCTION Chapter 1: GNU/Linux History Chapter 2: GNU/Linux Architecture Chapter 3: Free Software Development Chapter 4: Linux Visualization and Emulation PART 2: GNU TOOLS Chapter 5: The GNU Compiler Toolchain Chapter 6: Building Software with GNU make Chapter 7: Building and Using Libraries Chapter 8: Building Packages with automake/autoconf Chapter 9: Source Control in GNU/Linux Chapter 10: Data Visualization with Gnuplot PART 3: APPLICATION DEVELOPMENT TOPICS Chapter 11: File Handling in GNU/Linux Chapter 12: Programming with Pipes Chapter 13: Introduction to Sockets Programming Chapter 14: GNU/Linux Process Model Chapter 15: POSIX threads (pthreads) Programming Chapter 16: IPC with Message Queues Chapter 17: Synchronization with Semaphores Chapter 18: Shared Memory Programming Chapter 19: Advanced File Handling Chapter 20: Other Application Development Topics PART 4: GNU/LINUX SHELLS AND SCRIPTING Chapter 21: Standard GNU/Linux Commands Chapter 22: Bourne-Again Shell (Bash) Chapter 23: Editing with sed Chapter 24: Text Processing with awk Chapter 25: Parser Generation with flex and bison Chapter 26: Scripting with Ruby Chapter 27: Scripting with Python Chapter 28: GNU/Linux Administration Basics PART 5: DEBUGGING AND TESTING Chapter 29: Software Unit Testing Frameworks Chapter 30: Debugging with GDB Chapter 31: Code Hardening Chapter 32: Coverage Testing with GNU gcov Chapter 33: Profilin with GNU gprof Chapter 34: Advanced Debugging Topics Appendix A: Acronyms and Partial Acronyms Appendix B: About the CD-ROM

About the Author

M. Tim Jones is an embedded software architect and the author of numerous books, including AI Application Programming, Second Edition (Charles River Media), BSD Sockets Programming from a Multilanguage Perspective (Charles River Media), Artifi cial Intelligence: A Systems Approach, and many articles on a variety of technical subjects. His engineering background ranges from the development of kernels for geosynchronous spacecraft to embedded systems architecture and networking protocols development. Tim is a consultant engineer for Emulex Corp. in Longmont, Colorado.

Product Details

  • Series: Programming Series
  • Paperback: 688 pages
  • Publisher: Cengage Learning; 2nd edition (April 3, 2008)
  • Language: English
  • ISBN-10: 1584505680
  • ISBN-13: 978-1584505686
  • Product Dimensions: 9.2 x 7.4 x 1.7 inches
  • Shipping Weight: 3 pounds (View shipping rates and policies)
  • Average Customer Review: 4.4 out of 5 stars  See all reviews (13 customer reviews)
  • Amazon Best Sellers Rank: #988,296 in Books (See Top 100 in Books)

More About the Author

I'm M. Tim Jones, embedded firmware engineer and author. My interests include artificial intelligence, networking protocols and embedded Linux.

I started my career in 1984, building onboard firmware for geosynchronous communications satellites, and today develop protocol firmware for embedded networking and storage products at Emulex, Corp.

Customer Reviews

Most Helpful Customer Reviews
36 of 38 people found the following review helpful
2.0 out of 5 stars Disappointing code examples September 2, 2007
Looks like I'm going to break the mould of giving five star reviews to this book.

Part I is a brief overview of the history and motivation behind Linux. No bones there.

Part II covers compiler and related tools. I learnt a few things from these chapters (I wasn't familiar with either autotools or gcov).

Part III covers application development. The emphasis is mainly on IPC. There are some grim errors in the code. In particular, I winced when I saw the use of asserts that contained statements performing actions with (necessary!) side-effects. Compiled in optimized mode in most environments, this code will crash. For this section, Stevens/Rago APUE or Rochkind AUP serve much better.

Part IV, shell scripts and tools is OK, as is part V, debug/test.

I'm not sure why there's a CD included. It contains the source code (of little value, easily downloaded) and all of the diagrams used in the book. I can't imagine that they will ever come in handy.
Comment | 
Was this review helpful to you?
41 of 44 people found the following review helpful
5.0 out of 5 stars Gets you up and running with Linux programming July 18, 2005
All the topics that one needs to read to come up to speed with Linux programming, development and maintenance, scripting and even tuning are covered in this book. The author starts with the basic architecture of the Linux operating system, and delves into the details of each part: scheduler, memory manager, virtual file system, network, ipc and init. The reader starts with an overview of what the Linux operating system looks like "under the hood", and is taken thru a series of sections that cover application development using each section of the Linux kernel. Overview application programming, performance analysis and debugging using various GNU tools such as the the GCC complier, make, gcov and gprof are given first and are used throughout the book by the author to further demonstrate the features and benefits of the available GNU tools.

By now, the reader is presented with the necessary tools needed to create application, and is not time to delve into specific programming techniques and API's. The book starts with simple file handling API's and examples, and goes into more complicated topics such as:

* Linux Pipes

* Sockets programming

* Multi-process development and the Linux process model

* Multi-threaded development and the Linux threading model

* Messages Queues

* Synchronization and Semaphores

* Shared memory programming

Even though each of these topics are very complicated and an entire text could easily dedicated to it, the author with elegance covers each topic such that the reader could get an overview of what is at stake. Each topic is rather short, and very well written with examples and a step-by-step instruction of how to write simple programs.
Read more ›
Comment | 
Was this review helpful to you?
26 of 28 people found the following review helpful
5.0 out of 5 stars A Useful Book! December 7, 2005
I've read several books on programming, and several on Linux. This book covers a ton of stuff, some easy, some complex, but all useful.

I would recommend this book to any programmer wanting to know how to use makefiles, autoconfig, file handling, programming with sockets or pipes, multi-threaded programming, awk,sed, dynamic libaries,flex bison, the list goes on and on.

I don't know that this is introductory, but parts are, and the book can be grown into. It's arranged much better then my list of topics above.

I liked this book so much that I logged onto amazon just to write this review. It is a great book.
Comment | 
Was this review helpful to you?
16 of 17 people found the following review helpful
3.0 out of 5 stars Lazy authoring and dodgy code October 20, 2007
Bought this book as it had so many good reviews on I really should have paid more attention to the one review that said "Disappointing" (Paul Floyd of Grenoble, France).

I haven't yet read the bits about history, tools or shell scripting. What I have read is the section covering application development. This skims through areas such as sockets, threading, semaphores, mutexes, message queues, memory-mapped files etc. All useful areas, but this book does little more than tell you what the man pages tell you. That's where the first bit of lazy authoring comes in. The second bit of lazy authoring is the complete absence of an explanation of how to use these areas together, or an example of using them together. Given the list of topics, an example would have been useful that starts a worker thread to handle a TCP connection, that thread waiting on file descriptors and a timeout using select or poll, using mutexes to protect data, a message queue to communicate between the main thread and the worker thread, and possibly a memory-mapped file to create a circular log of the last N actions performed. Unfortunately the author didn't attempt that. But we should possibly consider ourselves lucky that he didn't, as the example code he does provide contains some major failings, most notably putting code inside assertions that is required even in optimised release builds. When this code gets compiled out in an optimised release build the examples fail. Obvious to anyone that knows about assertions, but not necessarily to everyone reading the book.
Comment | 
Was this review helpful to you?
18 of 21 people found the following review helpful
5.0 out of 5 stars In Between the Program and the Operating System March 4, 2005
This book fits into an interesting and often neglected spot between the operating system (Linux) and the programming language (C). There are lots of books on both C and Linux. This one ties the two areas together.

The C language is a general language with applications on many operating systems. Linux, of course is one operating system that can use C. Inbetween the two lie the areas of taking the raw language and turning the code into an application that can actually be of use to someone.

Contained within the GNU/Linux system are many software packages to establish the programming environment. There's the compiler and operating system. But more than that are systems to optimize the resulting code, to combine the program you wrote with other standardized routines from the system. These other utility programs have names like gcov, gprof, automake and so on. To the newcommer to GNU/Linux, there is a bewildering array of names (that only kind of make sense) for programs that ease your development task.

In addition there's discussion on various programming concepts such as the Linux file system, programming threads, piped, sockets and so on. Again, these are areas that are part of the standard GNU/Linux system but which are discussed here in ways to make them useful to the applications developer.

This is a carefully positioned book that will be of great help to the beginning developer.
Comment | 
Was this review helpful to you?
Most Recent Customer Reviews
5.0 out of 5 stars Post 2000 Linux Programming on the Half Shell
Since 2006 there have only been a few books published on Linux programming, an area that was quite lively until 2002. Read more
Published 13 months ago by Robin T. Wernick
4.0 out of 5 stars Good starting for Linux programming
Well-rounded coverage of essential topics for someone who needs to know what is Linux programming. Linux is open source, and there is already tons of information out there on the... Read more
Published 23 months ago by वाचक
4.0 out of 5 stars Straighforward and useful, but lack of care in the code examples
This book fulfills its main purpose, of teaching the basics about linux programming. I was between this book (GLAP) and the 4th edition of Beginning Linux Programming (BLP). Read more
Published on April 17, 2011 by Guilherme Maciel Ferreira
4.0 out of 5 stars Overall good, small number of mistakes with sample code
I am an experienced software engineer but have not had much experience programming for Unix/Linux environment. Read more
Published on November 8, 2010 by Brian Laskey
5.0 out of 5 stars Wonderful book
This book is perfect for anyone who needs to write application software for GNU/Linux. It describes all those miscellaneous features for programming that are above the kernel but... Read more
Published on April 25, 2008 by James A. Krell
5.0 out of 5 stars Great reference if you program for the Linux platform
This book covers a wide breadth of what you need to get started with Linux programming. The writing is very good and readable. Read more
Published on July 1, 2007 by Timothy T. Wee
5.0 out of 5 stars great book to get you going
I've been programming for a good while but I am relatively new to Linux. Sure I've flirted with it a little in the past but I've mostly been down in the worlds of Nulceus, vxworks,... Read more
Published on June 9, 2007 by Amazon Customer
5.0 out of 5 stars Great introduction to Linux Application programming
Written for application developers, this book is a great source of information on working with the GNU/Linux architecture and process model. Read more
Published on March 31, 2005 by Harold McFarland
Search Customer Reviews
Search these reviews only

What Other Items Do Customers Buy After Viewing This Item?


There are no discussions about this product yet.
Be the first to discuss this product with the community.
Start a new discussion
First post:
Prompts for sign-in

Look for Similar Items by Category