UMBC Training Centers logo

Linux Systems Programming

 

Course Description | Outline | Cybersecurity Training | IT Training

Course Outline

Module 1 - 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

Module 2 - 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

Module 3 - Process Creation and Control

  • Attributes (username, UID, PID, Groups)
  • Creation methods
  • Multi-tasking
  • Shells
  • Synchronization
  • An introduction to threads

Module 4 - 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

Module 5 - 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

Module 6 - Sharing Code Between Processes

  • Building shared object (libraries)
  • Static Linking
  • Dynamic Linking
  • Networking

Module 7 - Concepts and basic requirements

  • Socket creation and usage
  • TCP/IP level connections
  • UDP/IP level connections