GNU/Linux Application Programming (Programming Series)
This book was written with GNU/Linux application developers in mind. You ll note that topics such as the Linux kernel and device drivers are absent. This was intentional, and while they re fascinating topics in their own right, they are rarely necessary to develop applications and tools in the GNU/Linux environment.
This book is split into five parts , each focusing on different aspects of GNU/Linux programming. Part I, Introduction, introduces GNU/Linux for the beginner. It addresses the GNU/Linux architecture, a short introduction to the process model, and also licenses and a brief introduction to open source development and licenses.
Part II, GNU Tools, concentrates on the necessary tools for GNU/Linux programming. The de facto standard GNU compiler toolchain is explored, along with the GNU make automated build system. Building and using libraries (both static and dynamic) are then investigated. Coverage testing and profiling are then explored, using the gcov and gprof utilities. Finally, the topic of application bundling and distribution is discussed with automake and autoconf .
With an introduction to the GNU/Linux architecture and necessary tools for application development, we focus next in Part III, Application Development Topics, on the most useful of the services available within GNU/Linux. This includes pipes, Sockets programming, dealing with files, both traditional processes and POSIX threads, message queues, semaphores, and finally shared memory management.
In Part IV, GNU/Linux Shells and Scripting, we move up to application development using shells and scripting languages. Some of the most useful GNU/_Linux commands that you ll encounter in programming on GNU/Linux are covered, and there is a tutorial of the Bourne-Again Shell (bash). Text processing is explored using two of the most popular string processing languages (awk and sed ). Finally, we explore the topic of parser generation using GNU flex and bison utilities (lex and yacc-compatible parser generator).
Finally, in Part V of the book, Debugging and Testing, debugging is addressed from a variety of perspectives. We investigate some of the unit-testing frameworks that can help in automated regression. The GNU Debugger is introduced, with treatment of the most common commands and techniques. Finally, the topic of code hardening is explored, along with a variety of debugging tools and techniques to assist in the development of reliable and secure GNU/Linux applications.
While the book was written with an implicit order in mind, each chapter can be read in isolation, depending upon your needs. Where applicable , references to other chapters are provided if more information is needed on a related topic.
Threads in This Book
This book can be written part by part and chapter by chapter, but a number of threads run through it that can be followed independently. A reader interested in pursuing a particular aspect of the GNU/Linux operating system can concentrate on the following sets of chapters for a given topic thread:
GNU/Linux Interprocess Communication Methods: Chapters 11, 12, 15, 16, and 17.
Scripting and Text Processing: Chapters 20, 21, 22, and 23.
Building Efficient and Reliable GNU/Linux Applications: Chapters 4, 8, 24, and 26.
Multiprocess and Multithreaded Applications: Chapters 13 and 14.
GNU/Linux Testing and Profiling: Chapters 7, 8, 24, and 25.
GNU Tools for Application Development: Chapters 4, 5, 9, and 25.
GNU Tools for Packaging and Distribution: Chapters 5, 9, and 19.
Категории