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
  • List Price: $54.99
  • Save: $20.61 (37%)
FREE Shipping on orders over $35.
Only 5 left in stock (more on the way).
Ships from and sold by
Gift-wrap available.
GNU/Linux Application Pro... has been added to your Cart
Used: Very Good | Details
Sold by RentU
Condition: Used: Very Good
Comment: Fast shipping from Amazon! Qualifies for Prime Shipping and FREE standard shipping for orders over $35. Overnight, 2 day and International shipping available! Excellent Customer Service.. May not include supplements such as CD, access code or DVD.
Access codes and supplements are not guaranteed with used items.
Sell yours for a Gift Card
We'll buy it for $2.00
Learn More
Trade in now
Have one to sell? Sell on Amazon
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See all 2 images

GNU/Linux Application Programming (Programming Series) Paperback – April 3, 2008

ISBN-13: 978-1584505686 ISBN-10: 1584505680 Edition: 2nd

Buy New
Price: $34.38
16 New from $28.05 20 Used from $6.80
Amazon Price New from Used from
"Please retry"
"Please retry"
$28.05 $6.80
Free Two-Day Shipping for College Students with Amazon Student Free%20Two-Day%20Shipping%20for%20College%20Students%20with%20Amazon%20Student

Frequently Bought Together

GNU/Linux Application Programming (Programming Series) + Beginning Linux Programming + The Linux Programming Interface: A Linux and UNIX System Programming Handbook
Price for all three: $126.14

Buy the selected items together
If you buy a new print edition of this book (or purchased one in the past), you can buy the Kindle edition for only $2.99 (Save 92%). Print edition purchase must be sold by Amazon. Learn more.

Hero Quick Promo
Save up to 90% on Textbooks
Rent textbooks, buy textbooks, or get up to 80% back when you sell us your books. Shop Now

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: 1.8 x 7.2 x 9.2 inches
  • Shipping Weight: 3 pounds (View shipping rates and policies)
  • Average Customer Review: 4.3 out of 5 stars  See all reviews (14 customer reviews)
  • Amazon Best Sellers Rank: #1,298,213 in Books (See Top 100 in Books)

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.

Customer Reviews

Each topic is rather short, and very well written with examples and a step-by-step instruction of how to write simple programs.
Amazon Customer
If you know something about programming but want to know how to use those skills in the GNU/Linux environment this is one of the best books available.
Harold McFarland
There is some coverage of IPC ( shared memory, message queues, and pipes ) programming to link applications behind the scenes as well.
Robin T. Wernick

Most Helpful Customer Reviews

41 of 44 people found the following review helpful By Amazon Customer on July 18, 2005
Format: Paperback
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? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
36 of 38 people found the following review helpful By Paul Floyd on September 2, 2007
Format: Paperback
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? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
26 of 28 people found the following review helpful By Stock Investing Guy on December 7, 2005
Format: Paperback
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? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
16 of 17 people found the following review helpful By J. S. Hardman on October 20, 2007
Format: Paperback
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? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
18 of 21 people found the following review helpful By John Matlock on March 4, 2005
Format: Paperback
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? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again

Most Recent Customer Reviews

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.