Second Edition


Additions to and modifications from the first to the second edition include:

  • The whole book has been updated to take into account the new Single Unix Specification, issue 6; the updated version of the POSIX standard.

  • A table of example source code has been added to make it easier to find sample programs.

  • Small segments of example source code now are listed with line numbers printed, making it easier for you to orient yourself in respect to each entire soure code example.

  • Chapter 1 has an updated and expanded history of Linux development.

  • Chapter 4 now discusses the strace and ltrace utilities.

  • Chapter 6 is a new chapter that discusses the GNU C library (glibc) and the standards on which it is based. Of particular interest, it explains how (and why) to use feature test macros. It also describes some basic types used by system calls discussed throughout the book, how to discover the capabilities of your system at run time, covers some miscellaneous system interfaces glibc provides, and describes glibc's approach to backward compatibility.

  • Chapter 7 has significantly expanded information on memory debugging tools, including new memory debugging facilities in the GNU C Library, a new version of mpr, and the new Valgrind tool.

  • Chapter 12 discusses real-time signals and signal contexts.

  • Chapter 13 documents the poll() and epoll system calls, which provide recommended alternatives to select().

  • Chapter 16 now discusses and recommends the newer mechanism for allocating Pseudo TTYs, and covers the modification of the utmp and wtmp system databases.

  • Chapter 17 now covers IPv6 as well as IPv4, including new system library interfaces for writing programs that can use both IPv6 and IPv4 interchangeably. It still explains the older interfaces covered in the first edition, in order to enable you to maintain code that uses those interfaces and to port that older code to the newer interfaces. It also discusses more functionality that is required of many network server programs, such as non-blocking accept().

  • Chapter 22 is a new chapter that discusses the basic requirements of writing secure programs, and explains why security concerns apply to all programs, not just system daemons and utilities.

  • Chapter 23 has much-improved discussion of using regular expressions, including a simple version of the grep utility as an example.

  • Chapter 26 covers the latest improvements to the popt library and has better example source code, more than doubling the length of the chapter.

  • Chapter 28 has useful coverage of the Linux-PAM implementation of PAM added.

  • Chapter 25 now documents the qdbm library rather than Berkeley db, as the qdbm license is less restrictive.

  • The index and glossary have been greatly improved in scope and quality. In particular, canonical entries in the index are now flagged in bold to make it obvious where to look first.

  • There are smaller changes throughout the book, with nearly every chapter having important updates.

Subtractions include:

  • How to find generic Linux information on mailing lists, Web sites, and newsgroups; this information changes too rapidly to be part of a book that should otherwise be useful for many years.

  • Discussion of manipulating I/O ports; this facility is generally deprecated because it conflicts with Linux's device and power management structure.

  • Verbatim copies of the GNU General Public License and GNU Library General Public License. While these two licenses are as important as ever, it will not increase public awareness of their contents to print them again. Also, several other licenses have become more important since the first edition was published.

  • The Checker tool for memory debugging is no longer maintained, so the second edition no longer discusses it.


    Linux Application Development
    Linux Application Development (paperback) (2nd Edition)
    ISBN: 0321563220
    EAN: 2147483647
    Year: 2003
    Pages: 168 © 2008-2017.
    If you may any questions please contact us: