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
Buy New
$34.75
Qty:1
  • List Price: $54.99
  • Save: $20.24 (37%)
FREE Shipping on orders over $35.
Only 6 left in stock (more on the way).
Ships from and sold by Amazon.com.
Gift-wrap available.
GNU/Linux Application Pro... has been added to your Cart
Trade in your item
Get a $2.00
Gift Card.
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.75
20 New from $30.75 19 Used from $14.90
Amazon Price New from Used from
Kindle
"Please retry"
Paperback
"Please retry"
$34.75
$30.75 $14.90
Free%20Two-Day%20Shipping%20for%20College%20Students%20with%20Amazon%20Student

$34.75 FREE Shipping on orders over $35. Only 6 left in stock (more on the way). Ships from and sold by Amazon.com. Gift-wrap available.


Editorial Reviews

Review

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.


Shop the new tech.book(store)
New! Introducing the tech.book(store), 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

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.4 out of 5 stars  See all reviews (13 customer reviews)
  • Amazon Best Sellers Rank: #1,160,973 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

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
This book is perfect for someone who had normal training in C/C++ and now needs to understand how to develop on a GNU/Linux system.
James A. Krell

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


What Other Items Do Customers Buy After Viewing This Item?


Frequently Bought Together

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

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