Cover image for Linux programming unleashed
Title:
Linux programming unleashed
Author:
Wall, Kurt.
Personal Author:
Publication Information:
Indianapolis, Ind. : Sams, [1999]

©1999
Physical Description:
xxiv, 818 pages : illustrations ; 24 cm
General Note:
Includes index.
Language:
English
Title Subject:
ISBN:
9780672316074
Format :
Book

Available:*

Library
Call Number
Material Type
Home Location
Status
Central Library QA76.76.O63 W356 1999 Adult Non-Fiction Central Closed Stacks
Searching...

On Order

Summary

Summary

PLEASE PROVIDE COURSE INFORMATION

PLEASE PROVIDE


Author Notes

Kurt Wall is a Linux author and consultant. He maintains the Informix on Linux FAQ, is President of the International Informix Users Group's Linux SIG, and serves on the Board of Directors of the Salt Lake Linux User Group.
Mark Watson is a senior Al software engineer at Intelligenesis Corporation. He is the author of 12 books on Al, Java, and C++.
Mark Whitis is a self-educated, consulting, computer engineer. He has his own company, Free ElectronLabs, and works for Digital By Design.


Table of Contents

Introductionp. 1
Part I The Linux Programming Toolkitp. 5
1 Overviewp. 7
The Little OS That Didp. 8
The Little OS That Willp. 8
A Brief History of Linuxp. 9
Linux and UNIXp. 9
Programming Linuxp. 10
Why Linux Programming?p. 10
2 Setting Up a Development Systemp. 13
Hardware Selectionp. 14
Processor/Motherboardp. 15
User Interaction Hardware: Video, Sound, Keyboard, and Mousep. 19
Keyboard and Mousep. 23
Communication Devices, Ports, and Busesp. 24
Storage Devicesp. 29
External Peripheralsp. 30
Complete Systemsp. 33
Laptopsp. 34
Installationp. 34
3 Using GNU ccp. 39
Features of GNU ccp. 40
A Short Tutorialp. 40
Common Command-line Optionsp. 43
Optimization Optionsp. 47
Debugging Optionsp. 48
GNU C Extensionsp. 49
4 Project Management Using GNU makep. 53
Why make?p. 54
Writing Makefilesp. 54
More About Rulesp. 56
Additional make Command-line Optionsp. 61
Debugging makep. 62
Common make Error Messagesp. 63
Useful Makefile Targetsp. 63
5 Creating Self-Configuring Software with autoconfp. 65
Understanding autoconfp. 66
Built-In Macrosp. 69
Generic Macrosp. 76
An Annotated autoconf Scriptp. 77
6 Comparing and Merging Source Filesp. 85
Comparing Filesp. 86
Preparing Source Code Patchesp. 98
7 Version Control with RCSp. 103
Terminologyp. 104
Basic RCS Usagep. 105
rcsdiffp. 110
Other RCS Commandsp. 113
8 Creating Programs in Emacsp. 115
Introduction to Emacsp. 116
Features Supporting Programmingp. 125
Automating Emacs with Emacs Lispp. 132
Part II System Programmingp. 135
9 I/O Routinesp. 137
File Descriptorsp. 138
Calls That Use File Descriptorsp. 138
Types of Filesp. 152
10 File Manipulationp. 161
The File Functionsp. 162
Formatted Outputp. 165
11 Process Controlp. 173
Attributesp. 174
System Calls and Library Functionsp. 175
Scheduling Parametersp. 183
Threadsp. 184
Sample Programsp. 191
12 Accessing System Informationp. 215
Process Infop. 217
General System Infop. 221
Libraries and Utilitiesp. 227
13 Handling Errorsp. 229
Please Pause for a Brief Editorialp. 230
C-Language Facilitiesp. 230
The System Logging Facilityp. 239
14 Memory Managementp. 247
Reviewing C Memory Managementp. 248
Memory Mapping Filesp. 252
Finding and Fixing Memory Problemsp. 257
Part III Interprocess Communication and Network Programmingp. 267
15 Introduction to IPC: Using Pipesp. 269
Introduction to Using Pipesp. 271
16 Message Queuesp. 275
Creating a Sample Message Queue Programp. 276
Running the Sample Message Queue Programp. 278
17 Shared Memoryp. 281
Configuring Linux to Use Shared Memoryp. 282
Sample Program Using Shared Memoryp. 283
Running the Shared Memory Program Examplep. 285
18 Semaphoresp. 287
An Example Program Using Semaphoresp. 288
Running the Semaphore Example Programp. 293
19 TCP/IP and Socket Programmingp. 295
System Calls to Support Socket Programmingp. 296
Client/Server Examples Using Socketsp. 301
A Simple Web Server and Sample Web Clientp. 304
20 UDP: The User Data Protocolp. 311
An Example Program for Sending Data with UDPp. 313
An Example Program for Receiving UDP Datap. 314
Running the UDP Example Programsp. 315
21 Using Multicast Socketsp. 317
Configuring Linux to Support Multicast IPp. 318
Sample Programs for Multicast IP Broadcastp. 319
22 Non-blocking Socket I/Op. 325
Sample Program for Non-blocking IOp. 326
Running the Non-blocking Sample Programp. 329
23 A C++ Class Library for TCP Socketsp. 331
Design of C++ Client/Server Classesp. 332
Implementation of C++ Client/Server Classesp. 335
Testing the C++ Client/Server Classesp. 339
24 Using Librariesp. 341
Comparing libc5 and libc6p. 342
Library Toolsp. 343
Writing and Using Static Librariesp. 346
Writing and Using Shared Librariesp. 352
Using Dynamically Loaded Shared Objectsp. 354
25 Device Driversp. 359
Types of Driversp. 360
The Demonstration Hardwarep. 363
Development Configurationp. 369
Low Level Port I/Op. 370
Initiating Interrupts to Utilize Device Driversp. 372
Accessing Memory Using DMAp. 373
Simple Usermode Test Driverp. 374
Debugging Kernel Level Driversp. 375
Bottom Half and Top Halfp. 376
Creating a Kernel Driverp. 376
Other Sources of Informationp. 408
Part IV Programming the User Interfacep. 409
26 Terminal Control the Hard Wayp. 411
The Terminal Interfacep. 412
Controlling Terminalsp. 413
Using the Terminal Interfacep. 418
Changing Terminal Modesp. 420
Using terminfop. 422
27 Screen Manipulation with ncursesp. 433
A Short History of ncursesp. 434
Compiling with ncursesp. 435
Debugging ncurses Programsp. 435
About Windowsp. 436
Initialization and Terminationp. 439
Input and Outputp. 443
Color Routinesp. 455
Window Managementp. 458
Miscellaneous Utility Functionsp. 458
28 X Window Programmingp. 463
X Conceptsp. 464
The Xlib APIp. 466
The X Toolkit APIp. 475
29 Using Athena and Motif Widgetsp. 479
Using Athena Widgetsp. 480
Using Motif Widgetsp. 491
Writing a Custom Athena Widgetp. 498
Using Both Athena and Motif in C++ Programsp. 507
Using a C++ Class Library for Athena Widgetsp. 508
30 GUI Programming Using GTKp. 519
Introduction to GTKp. 521
A GTK Program for Displaying XML Filesp. 528
A GUI Program Using the Notebook Widgetp. 537
31 GUI Programming Using Qtp. 543
Event-Handling By Overriding QWidget Class Methodsp. 545
Event-Handling Using Qt Slots and Signalsp. 550
32 GUI Programming Using Javap. 559
A Brief Introduction to Javap. 560
Writing a Chat Engine Using Socketsp. 575
Introduction to AWTp. 580
Writing a Chat Program Using AWTp. 583
Introduction to JFCp. 586
Writing a Chat Program Using JFCp. 590
Using Native Java Compilersp. 594
33 OpenGL/Mesa Graphics Programmingp. 595
OpenGL is a Software Interface to Graphics Hardwarep. 596
The Orbits Sample Programp. 597
Part V Special Programming Techniquesp. 607
34 Shell Programming with GNU bashp. 609
Why bash?p. 610
bash Basicsp. 610
Using bash Variablesp. 613
Using bash Operatorsp. 615
Flow Controlp. 619
Shell Functionsp. 628
Input and Outputp. 629
Command-line Processingp. 633
Processes and Job Controlp. 635
35 Secure Programmingp. 639
Types of Applicationsp. 640
Specific Code Issuesp. 642
Erasing Buffersp. 677
HTML Form Submissions Past Firewallsp. 677
Snooping, Hijacking, and Man in the Middle Attacksp. 678
HTML Server Includesp. 679
Preforked Server Issuesp. 679
Timeoutsp. 679
Three Factor Authenticationp. 680
Pluggable Authentication Modulesp. 680
General Program Robustnessp. 681
Cryptographyp. 681
36 Debugging: GNU gdbp. 687
Compiling for gdbp. 688
Using Basic gdb Commandsp. 689
Advanced gdb Concepts and Commandsp. 698
Part VI Finishing Touchesp. 705
37 Package Managementp. 707
Understanding tar Filesp. 708
Understanding the install Commandp. 711
Understanding the Red Hat Package Manager (RPM)p. 713
38 Documentationp. 721
man Pagesp. 722
Creating SGML Documents Using SGML-toolsp. 727
39 Licensingp. 735
The MIT/X-style Licensep. 736
The BSD-style Licensep. 737
The Artistic Licensep. 738
The GNU General Public Licensep. 739
The Open Source Definitionp. 741
Choosing the Right Licensep. 744
A A Symbol Table Libraryp. 745
Available Documentationp. 746
B GNU General Public Licensep. 765
Indexp. 775

Google Preview