Linux Training Overview
This course introduces the participants to system level programming in the C
language in a RHEL 6 environment. The course focuses on RHEL 6 system calls
and library functions, how to use them, and their underlying mechanisms. The
course deals with many facets of the RHEL6 operating system, including:
introduction to RHEL6 kernel structure, I/O, Signals, Signal handlers, Timers,
Processes, Multi-Tasking, 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 RHEL 6 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 RHEL 6
system.
Course
Linux Training Prerequisites
It is assumed that the participant has a solid background in basic RHEL 6
utilities and editors (such as vim), 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 programmable mechanisms in a RHEL6 environment
- Write applications using standard RHEL6 system calls and library functions
Linux Training Course outline
System Programming Environment of the RHEL 6
- 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
- spinlocks and barriers
- signals (generation and handling)
- System information:
- uname
- hostname
- load averages
Interprocess Data Communication Facilities
- Overview of RHEL 6 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
|