Part I Getting Started.
Chapter 1 History of Linux Development
1.1 A Short History of Free Unix Software
1.2 Development of Linux
1.3 Notional Lineage of Unix Systems
1.4 Linux Lineage
Chapter 2 Licenses and Copyright
2.1 Copyright
2.2 Licensing
2.3 Free Software Licenses
Chapter 3 Online System Documentation
3.1 The man Pages
3.2 The Info Pages
3.3 Other Documentation
4.2 Make
4.3 The GNU Debugger
4.4 Tracing Program Actions
Chapter 5 gcc Options and Extensions
5.1 gcc Options
5.2 Header Files
Chapter 6 The GNU C Library
6.1 Feature Selection
6.2 POSIX Interfaces
6.3 Compatibility
Chapter 7 Memory Debugging Tools
7.1 Buggy Code
7.2 Memory-Checking Tools Included in glibc
7.3 Finding Memory Leaks with mpr
7.4 Investigating Memory Errors with Valgrind
7.5 Electric Fence
Chapter 8 Creating and Using Libraries
8.1 Static Libraries
8.2 Shared Libraries
8.3 Designing Shared Libraries
8.4 Building Shared Libraries
8.5 Installing Shared Libraries
8.6 Using Shared Libraries
Chapter 9 Linux System Environment
9.1 The Process Environment
9.2 Understanding System Calls
9.3 Finding Header and Library Files
Part 3 System Programming
Chapter 10 The Process Model
10.1 Defining a Process
10.2 Process Attributes
10.3 Process Information
10.4 Process Primitives
10.5 Simple Children
10.6 Sessions and Process Groups
10.7 Introduction to ladsh
10.8 Creating Clones
Chapter 11 Simple File Handling
11.1 The File Mode
11.2 Basic File Operations
11.3 Querying and Changing Inode Information
11.4 Manipulating Directory Entries
11.5 Manipulating File Descriptors
11.6 Creating Unnamed Pipes
11.7 Adding Redirection to ladsh
Chapter 12 Signal Processing
12.1 Signal Concepts
12.2 The Linux (and PosIx) Signal API
12.3 Available Signals
12.4 Writing Signal Handlers
12.5 Reopening Log Files
12.6 Real-Time Signals
12.7 Learning About a Signal
Chapter 13 Advanced File Handling
13.1 Input and Output Multiplexing
13.2 Memory Mapping
13.3 File Locking
13.4 Alternatives to read() and write()
Chapter 14 Directory Operations
14.1 The Current Working Directory
14.2 Changing the Root Directory
14.3 Creating and Removing Directories
14.4 Reading a Directory's Contents
14.5 File Name Globbing
14.6 Adding Directories and Globbing to ladsh
14.7 Walking File System Trees
14.8 Directory Change Notification
Chapter 15 Job Control..
15.1 Job Control Basics
15.2 Job Control in ladsh
Chapter 16 Terminals and Pseudo Terminals
16.1 tty Operations
16.2 termios Overview
16.3 termios Examples
16.4 termios Debugging
16.5 termios Reference
16.6 Pseudo ttys
Chapter 17 Networking with Sockets
17.1 Protocol Support
17.2 Utility Functions
17.3 Basic Socket Operations
17.5 Networking Machines with TCP/IP
17.6 Using UDP Datagrams
17.7 Socket Errors
17.8 Legacy Networking Functions
Chapter 18 Time
18.1 Telling Time and Dates
18.2 Using Timers
Chapter 19 Random Numbers
19.1 Pseudo-Random Numbers
19.2 Cryptography and Random Numbers
Chapter 20 Programming Virtual Consoles
20.1 Getting Started
20.2 Beeping
20.3 Determining Whether the Terminal Is a VC
20.4 Finding the Current VC
20.5 Managing VC Switching
20.6 Example: The open Command
Chapter 21 The Linux Console
21.1 Capability Databases
21.2 Glyphs, Characters, and Maps
21.3 Linux Console Capabilities
21.4 Direct Screen Writing
Chapter 22 Writing Secure Programs
22.1 When Security Matters
22.2 Minimizing the Opportunity for Attack
22.3 Common Security Holes
22.4 Running as a Daemon
Part 4 Development Libraries
Chapter 23 String Matching
23.1 Globbing Arbitrary Strings
23.2 Regular Expressions
Chapter 24 Terminal Handling with S-Lang
24.1 Input Handling
24.2 Output Handling
Chapter 25 A Hashed Database Library
25.1 Overview
25.2 Basic Operations
25.3 Reading Records
25.4 Modifying the Database
25.5 Example
Chapter 26 Parsing Command-Line Options
26.1 The Option Table
26.2 Using the Option Table
26.3 Using Callbacks
26.4 Error Handling
26.5 Option Aliasing
26.6 Parsing Argument Strings
26.7 Handling Extra Arguments
26.8 Sample Application
Chapter 27 Dynamic Loading at Run Time
27.1 The dl Interface
Chapter 28 User identification and Authentication
28.1 ID-to-Name Translation
28.2 Pluggable Authentication Modules
Appendices
Appendix A Header Files
Appendix B ladsh Source Code
Glossary
Bibliography
Index...