Advanced Red Hat Linux Systems Programming

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



Wintrac Inc.
16523 SW McGwire Ct.
Beaverton OR 97007
Wintrac, Inc. All rights reserved.                                                                               Site Map   |   Terms of Use   |   Privacy Policy