Global Knowledge

1-800-COURSES
Chat Now

Shopping Cart | My Global Knowledge Login | United States United States [change region]

  • Courses
    • Browse Catalog
    • Delivery Methods
    • New Courses
    • Special Offers
    • Guaranteed Dates
    • Search Wizard
  • Certifications
  • Training Solutions
    • Corporate Training
    • Government Training
    • Partner with Us
  • Training Locations
    • Atlanta
    • Chicago
    • Dallas
    • Morristown
    • New York
    • Raleigh
    • San Jose
    • Washington, DC
    • All 150+ Locations
  • Knowledge Center
    • Assessments
    • Case Studies
    • Demos
    • Events
    • Lab Topologies
    • Mobile Apps
    • Practice Files
    • Special Reports
    • Twitter
    • Videos
    • Webinars
    • White Papers
  • Contact Us
Red Hat Linux Programming

Home > Course Catalog >  Red HatŪ Linux Training > Red HatŪ Linux Programming

Red Hat® Linux Programming (RHD251)

Gain the skills essential to programming and software development for Linux-based applications and products.

This intensive course rapidly trains programmers to develop applications and programs on Red Hat Enterprise Linux. Through realistic labs, programming exercises, and demonstrations, you'll get hands-on training and learn concepts and skills essential to programming and software development for Linux-based applications and products.

What You'll Learn

  • GNU Compiler Collection
  • Building Software with Make
  • The GNU C Library and System Calls
  • Program Arguments and Environment
  • Building Libraries
  • Time Functions
  • Process Management
  • Memory Operations
  • Debugging
  • Basic File Operations
  • Communicating with Pipes
  • Managing Signals
  • Programming with Threads
  • Advanced File Operations
  • Interprocess Communication (IPC)

Who Needs to Attend

  • Experienced C programmers who want to learn key skills for creating applications and programs on Red Hat Enterprise Linux
  • Windows and UNIX programmers who are migrating their programs to Linux

Prerequisites

  • Experience in C programming
  • RH133 or equivalent UNIX or Linux workstation user skills for developers
  • Shell scripting in a UNIX or Linux environment
  • Experience with editors such as vi, emacs

Follow-On Courses

  • Red HatŪ Linux Kernel Internals 1 (RHD361)
  • Red HatŪ Linux Kernel Internals 2: Device Drivers (RHD362)

Course Outline

1. GNU Compiler Collection (GCC)

  • History of GCC
  • Four Stages of GCC
  • Interrupting the Compiler
  • Compiling a C Program
  • Preprocessor Features
  • Predefined Preprocessor Symbols
  • Warnings and Extensions
  • Optimization
  • Linking

2. Building Software with Make

  • Introducing make(1)
  • How make Works
  • Makefile Rule Syntax
  • Example: Makefile First Steps
  • Makefile Improved
  • Implicit Rules
  • Example: Simpler Is Better Makefile
  • Variables
  • Defining Variables
  • Example: Makefile with Variables
  • Automatic Variables
  • Special Targets
  • Defining Useful Phony Targets

3. The GNU C Library and System Calls

  • Library Goals
  • Library Standards
  • GNU C Library - glibc
  • Library Functions vs. System Calls
  • Using System Calls
  • Handling Errors with errno
  • Making Sense of errno
  • Using strace

4. Program Arguments and Environment

  • Program Startup
  • Using argc/argv
  • Handling Options with getopt()
  • Handling Options with getopt_long()
  • Environment
  • Manipulating the Environment
  • Program Exit
  • Registering Exit Handlers

5. Building Libraries

  • Why Use Libraries?
  • Static vs. Shared
  • Static Library Benefits
  • Shared Library Benefits
  • Creating a Static Library
  • Using Static Libraries
  • Creating a Shared Library
  • Using Shared Libraries
  • Shared Library Management
  • Library Locations
  • ldconfig

6. Time Functions

  • When Does Time Begin?
  • Time Data Types
  • Determining Real Time
  • Converting time_t
  • Converting tm Structure
  • Process Time
  • Time Arithmetic
  • Second Resolution Timers
  • Fine-Grained Timers<
  • Real Time Clock (RTC)

7. Process Management

  • What a Process Is
  • Process Relationships
  • Create a Child Process
  • Doing Something Else
  • Related execve() Functions
  • Wait For a Child
  • More Precise Waiting
  • Changing Priority/Nice
  • Real Time Priority

8. Memory Operations

  • Allocating/Freeing Memory
  • Memory Alignment
  • Locked Memory
  • Memory Copy/Initialization
  • Memory Comparison/Search

9. Debugging

  • What Is My Program Doing?
  • Source Level Debugging
  • Invoking gdb
  • Getting Started with gdb
  • Examining and Changing Memory
  • Debuginfo Libraries
  • Using gdb with a Running Process
  • Using gdb to Autopsy a Crash
  • Debugging Libraries - ElectricFence
  • Debugging with valgrind
  • Profiling for Performance

10. Basic File Operations

  • Stream vs. System Calls
  • Opening/Closing Streams
  • Stream Input/Output Functions
  • Stream Status/Errors
  • Stream File Positioning
  • Stream Buffering
  • Temporary/Scratch Files
  • Opening/Closing File Descriptors
  • File Descriptor I/O
  • Repositioning File Descriptors
  • Stream/File Descriptor Conversions
  • cat using ANSI I/O
  • cat using POSIX I/O

11. Communicating with Pipes

  • Introduction to Pipes
  • Standard I/O: popen()/pclose()
  • Using popen()/pclose()
  • System Call: pipe()
  • Using pipe()
  • Named Pipes
  • Using Named Pipes
  • For Further Reading

12. Managing Signals

  • What Signals Are
  • Blocking/Checking Signals
  • Working with Signal Sets
  • Example of Blocking Signals
  • Handling Signals with sigaction()
  • sigaction() Example
  • Handling Signals with signal()
  • Sending Signals
  • Real-Time Signals

13. Programming with Threads

  • Introducing Threaded Programming
  • Applications Suited to Threads
  • Building Threaded Programs
  • Creating Threads
  • Thread Identity
  • Synchronizing by Joining
  • Detaching Threads
  • Stopping Threads
  • Synchronizing with Mutexes
  • Using Mutexes
  • Read/Write Locks
  • Conditional Variables
  • Using Conditional Variables
  • A Conditional Variable Gotcha
  • For Further Reading

14. Advanced File Operations

  • Directory Operations
  • File System Operations
  • Multiplexed I/O with select()
  • Miscellaneous I/O Functions
  • Memory Mapped I/O
  • Using Memory Mapped I/O
  • File Locking

15. Interprocess Communication (IPC)

  • Interprocess Communication (IPC)
  • POSIX IPC Overview
  • POSIX Shared Memory
  • POSIX Semaphores
  • POSIX Message Queues
  • System V IPC Overview
  • System V IPC Shared Memory
  • System V IPC Semaphore Arrays
  • System V IPC Message Queues

16. Basic Network Programming

  • Linux Networking Overview
  • Getting Started with socket()
  • Client Functions
  • Specifying IPv4 Addresses
  • Host Versus Network Byte Order
  • Example TCP/IP Client
  • Address Conversion Functions
  • Using getaddrinfo()
  • Server Functions
  • Example TCP/IP Server
  • Datagram Communication with UDP

17. Working with the Linux Community

  • Getting in Touch with the Community
  • General Considerations
  • Building a Community
  • Licenses
  • GPL
  • LGPL
  • BSD
  • Creative Commons

Red HatŪ Linux

Classroom

Course Code: 1276

$4000 USD

5 Day Course


Payment Options

Alert Me Alert Me

Schedule and Registration

View Schedule
Other Delivery Methods

On-Site

Resources

PDF of this course

 

Share

Copyright ©2013 Global Knowledge Training LLC  All rights reserved.  1-800-COURSES (1-800-268-7737) Privacy  Legal  Policies  Site Map  Blog RSSRSS