Linux Training Overview
This course introduces the participants to system level programming in the C
language in a RHEL5 environment. The course focuses on RHEL5 system calls and
library functions, how to use them, and their underlying mechanisms. The course
deals with many facets of the RHEL5 operating system, including: introduction to
RHEL5 kernel structure, I/O, Signals, Signal handlers, Timers, Processes, MultiTasking, Inter-Process Communication (IPC) Pipes, Shared memory, Message
Queues, Semaphores, Networking, Sockets, using TCP/IP and UDP/IP.Throughout
the course the information presented is related to the participant through: the
execution of common RHEL5 user/administrator commands, and writing, compiling,
and executing example C language programs which demonstrate the use of system
routines and accessing system data structures on a live RHEL5 system
This course is the equivalent of Red Hat course 033, with additional
shell scripting topics.
Linux Training Prerequisites
It is assumed that the participant has a solid background in basic RHEL5 utilities and editors
(such as vi), and a working knowledge of the C (or C++) programming language(s).
Linux Training Course duration
This course normally requires five (5) days, 60% lecture, 40% hands on lab exercises.
Linux Training Course Objectives
Upon completion of this course the participant will be able to:
- Explain the various mechanisms available to the programmer in a RHEL5 environment
- Write a wide variety of applications using standard RHEL5 system calls and library functions
Linux Training Course outline
System Programming Environment of the RHEL5
- Environment of a C language program
- System level programming requirements:
- C compiler issues
- Header files and libraries
- Special data types used
- Useful functions
- Error handling (basic)
- Documentation
- Security Issues
File Systems
- Types of file I/O
- File I/O structures
- File I/O access types
- Dealing with STDIN, STDOUT, STDERR
- Creating and using temporary files
- Directory file access and manipulation
- Permissions
Process Creation and Control
- Attributes (username, UID, PID, Groups)
- Creation methods
- Multi-tasking
- Shells
- Synchronization
- An introduction to threads
Synchronization and System Information
- Time issues:
- how time is maintained
- timers
- General synchronization
- semaphores
- mutexes
- signals (generation and handling)
- System information:
- uname
- hostname
- load averages
Interprocess Data Communication Facilities
- Overview of RHEL5 IPC Facilities
- Memory Mapped files
- Pipes and Named Pipes
- Messages Queues
- Creating and Using Shared Memory structures
Sharing Code Between Processes
- Building shared object (libraries)
- Static Linking
- Dynamic Linking
Networking
- Concepts and basic requirements
- Socket creation and usage
- TCP/IP level connections
- UDP/IP level connections
|