Automotive Holiday Deals Books Holiday Gift Guide Shop Men's Athletic Shoes Learn more nav_sap_SWP_6M_fly_beacon Indie for the Holidays egg_2015 All-New Amazon Fire TV Get Ready for the Winter Gifts for Her Amazon Gift Card Offer cm15 cm15 cm15 $30 Off Amazon Echo $30 Off Fire HD 6 Kindle Cyber Monday Deals AutoRip in CDs & Vinyl Outdoor Deals on DOTD
GNU/Linux Application Programming (Programming Series) and over one million other books are available for Amazon Kindle. Learn more

Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.

  • Apple
  • Android
  • Windows Phone
  • Android

To get the free app, enter your email address or mobile phone number.

GNU/Linux Application Programming (Programming Series) 2nd Edition

15 customer reviews
ISBN-13: 978-1584505686
ISBN-10: 1584505680
Why is ISBN important?
This bar-code number lets you verify that you're getting exactly the right version or edition of a book. The 13-digit and 10-digit formats both work.
Scan an ISBN with your phone
Use the Amazon App to scan ISBNs and compare prices.
Sell yours for a Gift Card
We'll buy it for $2.48
Learn More
Trade in now
Have one to sell? Sell on Amazon
Buy used On clicking this link, a new layer will be open
$14.48 On clicking this link, a new layer will be open
Buy new On clicking this link, a new layer will be open
$28.07 On clicking this link, a new layer will be open
More Buying Choices
11 New from $28.07 14 Used from $14.48
Free Two-Day Shipping for College Students with Amazon Student Free%20Two-Day%20Shipping%20for%20College%20Students%20with%20Amazon%20Student

Take an Extra 30% Off Any Book
Take an Extra 30% Off Any Book
Use promo code HOLIDAY30 at checkout to get an extra 30% off any book for a limited time. Restrictions apply. Learn more | Shop now
$28.07 FREE Shipping on orders over $35. Temporarily out of stock. Order now and we'll deliver when available. We'll e-mail you with an estimated delivery date as soon as we have more information. Your account will only be charged when we ship the item. Ships from and sold by Gift-wrap available.

Frequently Bought Together

  • GNU/Linux Application Programming (Programming Series)
  • +
  • Beginning Linux Programming
Total price: $54.67
Buy the selected items together

Special Offers and Product Promotions

  • Take an Extra 30% Off Any Book: Use promo code HOLIDAY30 at checkout to get an extra 30% off any book for a limited time. Excludes Kindle eBooks and Audible Audiobooks. Restrictions apply. Learn more | Shop now

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.
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.

Product Details

  • Series: Programming Series
  • Paperback: 688 pages
  • Publisher: Charles River Media; 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.1 out of 5 stars  See all reviews (15 customer reviews)
  • Amazon Best Sellers Rank: #969,218 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

38 of 40 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.
Sorry, we failed to record your vote. Please try again
Report abuse
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.
Sorry, we failed to record your vote. Please try again
Report abuse
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.
Sorry, we failed to record your vote. Please try again
Report abuse
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.
Sorry, we failed to record your vote. Please try again
Report abuse
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.
Sorry, we failed to record your vote. Please try again
Report abuse

Most Recent Customer Reviews

Want to discover more products? Check out these pages to see more: programming in lua, regular expressions sed