Figure I.1: Copyright 1999, Free Software Foundation, Inc. Permission is granted to copy, distribute, and/or modify this image under the terms in the GNU General Public License or GNU Free
Chapter 1: U/Linux History
Figure 1.1: Timeline of UNIX/Linux and the GNU. [RobotWisdom02]
Figure 1.2: Linux development timeline [Wikipedia04].
Chapter 2: GNU/Linux Architecture
Figure 2.1: High-level view of the GNU/Linux operating system.
Figure 2.2: GNU/Linux operating system architecture.
Figure 2.3: Abstraction provided by the Virtual File System.
Figure 2.4: Network subsystem hierarchy.
Chapter 4: The GNU Compiler Toolchain
Figure 4.1: The stages of compilation.
Chapter 5: Building Software with GNU make
Figure 5.1: Directory structure of example project.
Chapter 6: Building and Using Libraries
Figure 6.1: Memory savings of static versus shared libraries.
Chapter 9: Building Packages with automake/autoconf
Figure 9.1: Directory structure of example project.
Figure 9.2: Directory structure of example project with Autotool files.
Chapter 10: File Handling in GNU/Linux
Figure 10.1: Nonsequential reads in a binary file.
Chapter 11: Programming with Pipes
Figure 11.1: Simple pipe example.
Figure 11.2: Half-duplex pipe example from Listing 11.1.
Chapter 12: Introduction to Sockets Programming
Figure 12.1: Layered model of communication.
Figure 12.2: Graphical view of host/protocol/port relationship.
Figure 12.3: Visualization of a Socket between two hosts .
Figure 12.4: Client/server symmetry in Sockets applications.
Chapter 13: GNU/Linux Process Model
Figure 13.1: Graphical illustration of Listing 13.4.
Chapter 14: POSIX Threads (Pthreads) Programming
Figure 14.1: Forking a new process.
Figure 14.2: Creating a new thread.
Chapter 15: IPC with Message Queues
Figure 15.1: Message queue API functions.
Chapter 16: Synchronization with Semaphores
Figure 16.1: Simple binary semaphore example with two processes.
Figure 16.2: Counting semaphore example with two processes.
Chapter 19: GNU/Linux Commands
Figure 19.1: Program input and output.
Chapter 21: Editing with sed
Figure 21.1: The sed model as a text filter.
Figure 21.2: Anatomy of a simple sed invocation.
Chapter 22: Text Processing with awk
Figure 22.1: Structure of an awk program.
Chapter 23: Parser Generation with flex and bison
Figure 23.1: Parse tree for a sample C code fragment.
Figure 23.2: Incomplete parse tree for an erroneous C code fragment.
Figure 23.3: Typical phases in configuration parsing.
Figure 23.4: Parsing phases with flex and bison flows.
Figure 23.5: Grammar definitions in lexer and parser flow.
Chapter 24: Software Unit Testing Frameworks
Figure 24.1: System testing (or end-to-end) perspective.
Figure 24.2: System components are made up of units.
Figure 24.3: Unit testing perspective of an individual software unit.