UNIX System Programming

Have Queries? Ask us +91 72592 22234

Course Overview

This UNIX System Programming training course is designed to give delegates practical experience in the administration of a SVR4 compatible Unix System. Practical work will concentrate on the basic SVR4 unix commands rather than vendor-specific administration menu driven or GUI tools.

Course Content

UNIX Standards

  • Brief History of UNIX
  • AT&T and Berkeley UNIX Systems
  • Major Vendors
  • What is a Standard?
  • What is POSIX?
  • Other Industry Specs and Standards
  • Library vs. System-Level Functions

Files and Directories

  • Basic File Types
  • File Descriptors
  • The open() and creat() Functions
  • Keeping Track of Open Files
  • File Table Entries
  • The v-node Structure
  • The fcntl() Function
  • The fcntl() Function - with F_DUPFD Command
  • File Attributes
  • The access() Function
  • link(), unlink(), remove(), and rename() Functions
  • Functions to Create, Remove, and Read Directories

System I/O

  • Standard I/O vs system I/O
  • System I/O Calls
  • File and Record Locking


  • What is a Process?
  • Process Creation and Termination
  • Process Memory Layout
  • Dynamic Memory Allocation
  • Accessing Environment Variables
  • Real and Effective User IDs

Process Management

  • The Difference Between Programs and Processes
  • The fork() System Function
  • Parent and Child
  • The exec System Functions
  • Current Image and New Image
  • The wait() Functions
  • The waitpid() Function
  • Interpreter files and exec

Basic Interprocess Communication: Pipes

  • Interprocess Communication
  • Pipes
  • FIFOs


  • What is a Signal?
  • Types of Signals
  • Signal Actions
  • Blocking Signals from Delivery
  • The sigaction() function
  • Signal Sets and Operations
  • Sending a Signal to Another Process
  • Blocking Signals with sigprocmask()
  • Scheduling and Waiting for Signals
  • Restarting System Calls (SVR4)
  • Signals and Reentrancy

Introduction to Pthreads

  • Processes and Threads
  • Creating Threads
  • Multitasking
  • Overview of Thread Architectures
  • Processes Versus Threads
  • The Pthreads API
  • Thread Termination
  • Joining Threads
  • Detaching Threads
  • Passing Arguments to Threads

Pthreads Synchronization

  • The Sharing Problem
  • Mutexes
  • Creating and Initializing Mutexes
  • Using Mutexes
  • Additional Synchronization Requirement
  • Using Condition Variables

Overview of Client/Server Programming with Berkeley Sockets

  • Designing Applications for a Distributed Environment
  • Clients and Servers
  • Ports and Services
  • Connectionless vs. Connection-Oriented Servers
  • Stateless vs. Stateful Servers
  • Concurrency Issues

The Berkeley Sockets API

  • Berkeley Sockets
  • Data Structures of the Sockets API
  • Socket System Calls
  • Socket Utility Functions

TCP Client Design

  • Algorithms instead of Details
  • Client Architecture
  • Generic Client/Server Model - TCP
  • The TCP Client Algorithm

TCP Server Design

  • General Concepts
  • Iterative Servers
  • Concurrent Servers
  • Performance Consideration
  • An Iterative Server Design
  • A Concurrent Server Design

System V Interprocess Communication

  • System V IPC
  • Elements Common to msg, shm, and sem Facilities
  • The Three System V IPC Facilities
  • IPC via Message Queues
  • IPC via Shared Memory
  • Coordinating the Use of Shared Memory Segments
  • Semaphore Sets - semget()
  • Semaphore Sets - semctl()
  • Semaphore Sets - the semop() call
  • Shared Memory Coordination Using Semaphores
  • Commands for IPC Facility Handling - ipcs and ipcrm

Customer Reviews

Thanks to Xpertised and the tutor who walked me through all the topics with Practical exposure which is helping me in my current project.

Course was quite helpful in terms of understanding of concepts and practicality. Its really a very friendly environment to learn. The timing were mutually chosen, as we both are working professional. I am quite satisfied with the course.


For Batch Details
Call us at: +91 7259222234

Not sure? Consult Our Experts

Looking for a Training for


My Team/Organization

I agree to be contacted over mail or phone

Call us at: +91 7259222234