Custom Classes:
Axian specializes in customizing our classes to meet your
specific needs. Please call or e-mail us with your requirements.
Axian, Inc.
4800 S.W. Griffth Dr., Suite 202, Beaverton, OR 97005
Phone: (503) 644-6106
Fax: (503) 643-8425
info@axian.com
www.axian.com
Call 644-6106, ext. 107
or
e-mail Axian training
for course registration or more information
Course Files and Links:
|
|
COURSE OBJECTIVES
Linux Programming and Introduction to X is
designed to quickly bring experienced programmers up to speed in a Linux environment. Upon
completion of the course, students will be comfortable on a Linux system and will
understand the fundamentals of the X Window System.
Students will learn:
- Programming in C in a Linux environment.
- Shell programming.
- Linux Concepts/Techniques including standards and compliance,
working with files, processes and signals, inter-process communication, semaphores,
messages, shared memory and sockets.
- Linux Programming in C including makefiles, version control,
compiling, linking and debugging.
- GUI Development using the X Window System including X
concepts, basic X programming in C, window attributes, the graphics context, drawing
graphics and text, color, events, keyboard and mouse.
TEXTS
- Beginning Linux Programming by Neil Matthew &
Richard Stones
- Xlib Programming Manual by Adrian Nye
- Linux/etc by Terry Griffin; articles reprinted from
Computer Bits magazine, Nov. 1996 - Jan. 1999
INSTRUCTIONAL APPROACH
This course will be taught in a classroom with one computer
per student. The emphasis will be on hands-on programming, with roughly one half of the
total time being spent on labs and exercises. The Red Hat 5.2 Linux distribution will be
used with the KDE desktop environment.
The class is divided into 23 sessions, each consisting of
both lecture and lab. The lectures are intended to be interactive and will include review
of the lab assignments. The sessions range from 0.5 hours to 5 hours, and are presented
over a period of 5 days.
PREREQUISITES
- Students should be proficient in the C programming language.
- Successful completion of Axian's Linux
Use and Administration course, or equivalent.
LINUX PROGRAMMING AND INTRODUCTION TO X
Course Outline
- SESSION 1: Linux Programming: Package Overview
Topics:
- ghostview
- perl
- java
- tcl/tk
- expect
- tex/latex
- apache
- SESSION 2: Linux Programming: Make
Topics:
- Makefiles for simple applications
- more complicated rules
- making libraries
- building large projects
- SESSION 3: Linux Programming: Version control
Topics:
- SESSION 4: Linux Programming: Compilers
Topics:
- gcc, g++, ecgs
- commercially available compilers
- other languages
- SESSION 5: Linux Programming: Linking and loading
libraries.
Topics:
- transition from libc5 to glibc
- static libraries (*.a, like Windows .LIB)
- library tools (ar, ranlib)
- shared libraries (*.so, like Windows DLL)
- manipulating shared libraries( ldd, ldconfig)
- stripping executables (strip)
- ld (loader)
- SESSION 6: Linux Programming: Debugging and profiling
Topics:
- gdb ( and xxgdb)
- ddd
- Electric Fence
- gprof
- SESSION 7: Concepts/Techniques: Standards and Compliance
Topics:
- Posix compliance
- Linux standards
- Living in a heterogeneous world
- Cross platform issues and portability.
- SESSION 8: Concepts/Techniques: Working with files
Topics:
- Files and Devices
- System Calls, device drivers
- Low Level File Access
- I/O Library
- File and directory maintenance
- SESSION 9: Concepts/Techniques: Processes and Signals
Topics:
- Process Structure
- Scheduling
- Starting New Processes
- Waiting; zombies, redirection; threads
- Signals
- SESSION 10: Concepts/Techniques: Inter-process
communication
Topics:
- Process Pipes
- parent and child processes
- named pipes (FIFO's)
- SESSION 11: Concepts/Techniques: Semaphores, messages,
shared memory
Topics:
- Semaphores
- Shared Memory
- Message Queues
- SESSION 12: Concepts/Techniques: Sockets
Topics:
- Socket attributes
- Using Sockets
- Socket Addresses
- Communications
- Byte Ordering
- SESSION 13: Concepts/Techniques: Overview of Unix Scripting
Languages
Topics:
- MS-DOS/MS-Windows Analogy
- Awk
- Tcl
- Perl
- Python
- SESSION 14: Concepts/Techniques: Where Java fits in
Topics:
- Advantages, disadvantages
- Java Script
- Java tools for Linux
- SESSION 15: X: Overview of GUI Development using the X
Window System
Topics:
- Versions of X
- X Window System Concepts
- X Window System Software Architecture
- Overview of Xlib
- SESSION 16: X: Concepts
Topics:
- How Xlib works
- What are windows?
- Introduction to X Graphics
- Window Characteristics
- Introduction to Events
- SESSION 17: X: Basic Window Program
Topics:
- Running the Program
- The Main of basicwin
- SESSION 18: X: Window Attributes
Topics:
- Setting Window Attributes
- Window Attribute Structures
- Program-settable Attributes
- SESSION 19: X: The Graphics Context
Topics:
- Creating and Setting a Graphics Context
- Switching between Graphics Contexts
- Controlling the Effect of a Graphics Primitive
- Line Characteristics
- Patterning
- SESSION 20: X: Drawing Graphics and Text
Topics:
- Fonts and Text
- Regions
- Cursors
- Bitmap Handling
- SESSION 21: X: Color
Topics:
- Color Terms and Concepts
- Allocating Shared Colors
- Storing Private Colors
- Standard Colormaps
- SESSION 22: X: Events
Topics:
- Event Processing
- Event Types
- The Event Queue
- Handling Events
- Selecting Events
- Sending Events
- SESSION 23: X: The Keyboard and Pointer
Topics:
- The Keyboard
- The Pointer
- Border Crossing and Keyboard Focus Events
- Grabbing the Keyboard and Pointer
- Keyboard Preferences
- Pointer Preferences
LINUX PROGRAMMING AND INTRODUCTION TO X
(c) COPYRIGHT AXIAN, INC. 1999 |