training

 

Advanced Linux System Programming – 5 Days

Course Description

This course introduces the participants to system level programming in the C language in a Linux environment. The course focuses on Linux  system calls and library functions, how to use them, and their underlying mechanisms. The course deals with many facets of the Linux  operating system, including: introduction to Linux 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 Linux  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 Linux  system.

Course Objectives

Upon completion of this course the participant will be able to:

  • Explain the programmable mechanisms in a Linux environment
  • Write applications using standard Linux system calls and library functions

Prerequisites

It is assumed that the participant has a solid background in basic Linux utilities and editors (such as vim), and a working knowledge of the C (or C++) programming language(s).

Outline

                     

                   System Programming Environment of Linux

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 POSIX 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 Linux  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

 

MindIQ.com

Print Friendly, PDF & Email