Penguin Power!
Buy Linux distributions at discount prices!
Linux| Perl| PHP| Webserv| Databases| Sysadmin| Programming| Filesystems| Java| Webprog
News from Slashdot
Job Seeking Hacker Gets 30 Months In Prison

Air Guns Shake Up Earthquake Monitoring

Half of Fortune 500s, US Agencies Still Infected With DNSChanger Trojan

Ex-FCC Chair: Spectrum Plan "Single Worst Telecom Bill I've Seen"

iOS Vs. Android: Which Has the Crashiest Apps?

Simulators Take the Humans Out of Hiring

Google Pulls Support For CDMA Devices

Finding Lost Recording From the 1880s

India Turns Down American Fighter Jets, Buys From France

New Hampshire Passes 'Open Source Bill'


Related products:

GNU/Linux Application Programming (Programming Series) GNU/Linux Application Programming (Programming Series)

Linux Kernel Development (2nd Edition) Linux Kernel Development (2nd Edition)

Linux Device Drivers, 3rd Edition Linux Device Drivers, 3rd Edition

Linux Programming by Example : The Fundamentals Linux Programming by Example : The Fundamentals

Building Embedded Linux Systems Building Embedded Linux Systems

General

Linux Application Development (2nd Edition)

General
Format: Hardcover
Author: Michael K. Johnson
ReleaseDate: 17 November, 2004
Publisher: Addison-Wesley Professional
Rating:

A lot of good info in one place, but organization needs work
Within its sturdy covers, Linux Application Development by Michael K. The Linux operating system provides a sophisticated framework for running programs. Johnson and Erik W. Troan provides much of what intermediate to advanced programmers need to know to take advantage of that framework.

The book is divided into four major parts: Getting Started, Development Tools and Environment, System Programming and Development Libraries.

Part 1 - Getting Started, is a very high-level overview of Linux itself. The three chapters cover barely 20 pages, and discuss the history of Linux, its licensing, and the online documentation.

Part 2 - Development Tools and Environment gets more detailed, but ends up as a medium-level view of what tools you might use to actually create and debug your application. Six chapters covering about 75 pages discuss editors (Emacs and vi), make, the GNU debugger gdb, tracing, gcc options, glibc, memory debugging tools, libraries, and the environment. Each chapter feels a little light-weight except for the one on memory debugging tools.

If the first two parts seemed to just skim the surface somewhat, Part 3 - System Programming definitely dives into the deep end of the pool. Part 3 has 13 chapters and covers 450 pages, almost two-thirds of the total book. My major complaint with Part 3 is that related chapters appear to be separated by others. Five major groups of functionality are covered.

The Unix/Linux process model is explained in detail in Chapter 10, and should be followed by chapter 15, which goes into job control. File handling is introduced in chapter 11, expanded in chapter 13, and directory handling is covered in chapter 14. Interprocess communication is discussed in chapters 12 - Signal Processing (discussing simple semaphores) and chapter 17 - Networking with Sockets, which extends IPC across the network. User interfaces are covered in chapters 16 (terminals and pseudo-terminals), 20 (virtual consoles), and 21 (text-based interfaces for the Linux console). Timers, encryption, and writing secure programs are the topics of chapters 18, 19, and 22.

Finally, Part 4 covers the various development libraries commonly available to the programmer. Chapter 23 covers the ins and outs of string handling and regular expressions. Using S-Lang to handle the terminal is the main interest of the next chapter. Chapter 25 discusses database interfaces, specifically qdbm, which is licensed under the LGPL. Traditional option functions getopt and getopt_long and their cousin on steriods popt are detailed in the following chapter. The final two chapters cover dynamic loading of shared objects with the advantages that provides, and user identification and authentication, covering id-to-name translation, and Pluggable Authentication Modules (PAM).

This book has a lot of information packed within its covers, When programming, one needs a number of reference books at hand, and Linux Application Development should definitely be one of the handiest. My only concerns were how the first two parts seemed skimpy compared to the rest of the book, and the part on System Programming could have been laid out better. That said, Linux Application Development rates a 4 out of 5.
.


Will become a well-worn addition to your programming shelf..
Johnson and Erik W. (This review is for the second edition)

If you're involved in trying to port software to a Unix/Linux application platform, you should get a copy of the 2nd edition of Linux Application Development by Michael K. Troan (Addison Wesley). This will become a key part of your learning.

Chapter Breakout:
Part 1 - Getting Started - History Of Linux Development; Licenses And Copyright; Online System Documentation
Part 2 - Development Tools And Environment - Development Tools; gcc Options And Extensions; The GNU C Library; Memory Debugging Tools; Creating And Using Libraries; Linux System Environment
Part 3 - System Programming - The Process Model; Simple File Handling; Signal Processing; Advanced File Handling; Directory Operations; Job Control; Terminals And Pseudo Terminals; Networking With Sockets; Time; Random Numbers; Programming Virtual Consoles; The Linux Console; Writing Secure Programs
Part 4 - Development Libraries - String Matching; Terminal Handling With S-Lang; A Hashed Database Library; Parsing Command-Line Options; Dynamic Loading At Run Time; User Identification And Authentication
Appendix A - Header Files; Appendix B - ladsh Source Code; Glossary; Bibliography; Index

With the recent rapid uptake of Linux-based servers and desktops, more and more companies are looking at porting their software from Windows platforms over to Linux. The trouble with porting in that instance is that the underlying operating system dependancies are all different, and unless you understand how to work with the OS, you're lost. Linux Application Development does an excellent job in first introducing the common tools that are used for application development on Linux. The assumption is that you'll be programming in C, but within that framework the authors explain each tool and how it can aid in developing your system (such as memory-checking tools that come with the GNU C library). Once the subject of application development environments is finished, they move on to the actual OS and how it should interface with the application. The book presents a lot of code for examples, as well as explaining exactly why things work as they do. By the time you've gotten to the end of the material, you should have a more-than-adequate understanding of how to build applications for Linux/Unix.

Excellent material for the application developer who needs to build on the Linux platform.


Excellent C language introduction
The first few chapters go over the differences between Linux and unix. This is a well written introduction to C development on Linux starting with the very basics of process and file I/O, going all the way through networking, regular expressions and lightweight databases. Then cover development tool basics.

This is a high end reference that is light on screenshots (almost none), that has well written and annotated example code. It's reminiscent of the classic Advanced Unix Programming. With the exception that this book is larger and has better exposition. In particular this book will answer almost any question you have about file I/O, process management, and networking.

This is an excellent book. It gets my full recommendation.



Go to lyrics-now.com for music lyrics and song lyrics.
Bass and guitar tablatures: Fretplay.com, Guitar tabs, Bass tabs, Fresh tabs, How to read tabs
Plan your travel and holiday here: Travel Helper!