651-905-3729 Microsoft Silver Learning Partner EC Counsel Reseller compTIA Authorized Partner

Advanced Unix / Linux Systems Programming Classroom Live Eagan, MN December 11, 2017

Price: $3,000

This course runs for a duration of 5 Days.

The class will run daily from 9:00am to 5:00pm.

Class Location: Knowledge Transfer - Eagan, MN.

Enroll today to reserve your spot!

Space is limited. Enroll today.

Enroll Now

Description

This course is 60% lecture, 40% hands on lab exercises and introduces the participants to system level programming in the C language in a Unix and Linux  environment. The course focuses on Unix/Linux system calls and library functions, how to use them, and their underlying mechanisms. The course deals with many facets of the Unix operating system, including: introduction to Unix/Linux kernel structure, I/O, Signals, Signal handlers, Timers, Processes, Multi-Tasking,Multi-Threading, 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 Unix/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 Unix and/or Linux system.

**Include C++ wrappers and class examples**

Course Objectives

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

  • Explain the various mechanisms available to the programmer in a Unix/Linux environment
  • Write a wide variety of applications using standard Unix system calls and library functions

Course Overview

System Programming Environment of the Unix/Linux  Environment

  • 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 (process-level)
  • An introduction to threads
  • Threads with signals and synchronization

Advanced Unix / Linux Systems Programming

Synchronization and System Information

  • Time issues:
  •         how time is maintained
  •         timers
  • General synchronization
  •         semaphores
  •         mutexes, barriers, spin locks
  •         signals (generation and handling)
  • System information:
  •         uname
  •         hostname
  •         load averages

Interprocess Data Communication Facilities

  • Overview of Unix 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

Prerequisites

  • It is assumed that the participant has a solid background in basic Unix/Linux utilities and editors (such as vi/vim), and a working knowledge of the C (or C++) programming language(s).  The material in this course applies to all major Unix variants (Oracle Solaris, HP-UX, IBM AIX, and all Linux types).  Environmental or execution differences will be shown when applicable.