The Security Model........................................................................................754
Preemptive Multitasking ................................................................................755
Multiuser by Design ......................................................................................756
Interprocess Communication ........................................................................757
The Building Blocks Philosophy ....................................................................757
Graphical Programming Environments ....................................................................759
Eclipse: The Universal Tool Platform..............................................................759
KDevelop: KDE's IDE ....................................................................................761
Code Crusader ..............................................................................................762
The Command-Line Programming Environment ....................................................764
Linux Programming Interfaces ................................................................................765
Creating Command-Line Interfaces ........................................................................765
Creating Text-Mode User Interfaces with ncurses ..........................................766
Creating Text-Mode User Interfaces with S-Lang............................................769
Creating Graphical Interfaces ..................................................................................771
Application Programming Interfaces........................................................................773
Summary ................................................................................................................777
Chapter 29: Programming Tools and Utilities. . . . . . . . . . . . . . . . 779
The Well-Stocked Toolkit ........................................................................................779
Using the GCC Compiler ........................................................................................780
Compiling Multiple Source Code Files ....................................................................782
GCC Command-Line Options ................................................................................784
Automating Builds with make ................................................................................786
Library Utilities ......................................................................................................788
The nm Command ..................................................................................................789
The ar Command ....................................................................................................790
The ldd Command ..................................................................................................791
The ldconfig Command ..........................................................................................792
Environment Variables and Configuration Files ......................................................792
Source Code Control ..............................................................................................793
Source Code Control Using RCS..............................................................................793
Checking Files In and Out ............................................................................794
Making Changes to Repository Files ..............................................................795
Additional Command-Line Options ..............................................................795
Source Code Control with CVS................................................................................796
Debugging with GNU Debugger ............................................................................800
Starting GDB ..........................................................................................................801
Inspecting Code in the Debugger ............................................................................803
Examining Data ......................................................................................................804
Setting Breakpoints..................................................................................................806
Working with Source Code......................................................................................807
Summary ................................................................................................................808
Appendix A: Media . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 809
Appendix B: Entering the Linux Community . . . . . . . . . . . . . . . . 819
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825
xxxi
Contents