 (Larger Image)
|
GNU/Linux Application Programming (Programming Series)
Product Group: Book
Publisher: Charles River Media (2005-02-02)
ISBN: 1584503718
EAN: 9781584503712
UPC: 619587037189
Dewey Decimal #: 005.432
Paperback: 512 pages
Edition: 1
|
Editorial Reviews
|
Product Description
The wide range of applications available in GNU/Linux includes not only pure applications, but also tools and utilities for the GNU/Linux environment. GNU/Linux Application Programming takes a holistic approach to teaching developers the ins-and-outs of GNU/Linux programming using APIs, tools, communication, and scripting. Covering a variety of topics related to GNU/Linux application programming, the book is split into six parts: The GNU/Linux Operating System, GNU Tools, Application Development, Advanced Topics (including communication and synchronization and distributed computing), Debugging GNU/Linux Applications, and Scripting. The book introduces programmers to the environment from the lowest layers (kernel, device drivers, modules) to the user layer (applications, libraries, tools), using an evolutionary approach that builds on knowledge to cover the more complex aspects of the operating system. Through a readable, code-based style developers will learn about the relevant topics of file handling, pipes and sockets, processes and POSIX threads, inter-process communication, and other development topics. After working through the text, they’ll have the knowledge base and skills to begin developing applications in the GNU/Linux environment. Key Features! * Focuses on GNU/ Linux, not only the Linux APIs, but the GNU tools and libraries that make Linux programming possible * Covers a variety of useful APIs for process management, shared memory, message queues, semaphores, POSIX, file handling, sockets, and more * Provides detailed discussion of scripting and integration with the GNU/Linux environment with bash, including useful shell commands * Introduces developers to GNU/Linux from the lowest layers (kernel, device drivers, modules) to the user layer (applications, libraries, tools) * Explores the multiprocess and multithreaded programming APIs, including debugging applications with the GNU Debugger * Includes a CD-ROM with code snippets for all the detailed APIs and the figures from the book On the CD! * SOURCE CODE - Includes code examples for all the detailed APIs from the book * FIGURES - Includes all of the figures from the book SYSTEM REQUIREMENTS PC: Linux with a 2.4 or 2.6 Kernel (tested with Red Hat and Fedora); Pentium I Processor or greater; CD-ROM drive; Hard drive; 256MB of RAM; 1MB of hard drive space for the code examples.
|
Customer Reviews
|
Wonderful book
Rating (5)
Date: 2008-04-25
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 below the level of integrated development environments. It describes makefiles, gcc, debugging, object file analysis, sockets, pthreads, performance analysis and much more. The latest edition also has an excellent overview of virtualization.
The author doesn't go into detail on any one subject, and that is what makes the book so good. I can find details in various online sources. 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.
|
|
Lazy authoring and dodgy code
Rating (3)
Date: 2007-10-21
7 out of 7 customers found this reveiw helpful
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.
|
|
Disappointing code examples
Rating (2)
Date: 2007-09-03
11 out of 11 customers found this reveiw helpful
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.
|
|
Great reference if you program for the Linux platform
Rating (5)
Date: 2007-07-01
3 out of 3 customers found this reveiw helpful
This book covers a wide breadth of what you need to get started with Linux programming. The writing is very good and readable.
The examples though simple, are very clear and concise, and makes you understand at a fundamental level what elements of Linux you need to know.
The ones I liked in particular were:
- IPC (interprocess communication)
- Linux process model, and pThreads
- shell scripting, awk, sed
- bison, flex
- tools like GDB (debugger), gprof (performance), gcov (code coverage)
- sockets programming
Note that this book does not go very deep into these topics, but if you need a refresher on the basics, or you don't know a particular area of linux, this book is highly recommended.
Most of the examples are in C, as expected, (being Linux) except for a very short example in Ruby with Sockets programing.
|
|
great book to get you going
Rating (5)
Date: 2007-06-09
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, and threadx.
I found myself needing to come up to speed fast on a lot of little things - multi threading, communications, piping and build processes. This book covers it all in good enough detail to get you on your feet fast. The sections on signals was especially helpful as was the nice overview of gdb which while not the debugger type I'm used to - really proved to me how useful that old program still is (and since I'm stuck with the command line version of it - how to really make that version sing).
As a quick reference/introduction this book can't be beat. Highly recommended
|
|
Retail Price: $49.95
Amazon.com's Price:$6.95
That's 86% Off!
|
|