EncartaLabs

UNIX System Programming

( Duration: 2 Days )

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.

By attending UNIX System Programming workshop, Participants will learn:

  • Adding, changing and deleting users and user groups
  • Managing user passwords
  • Configuring login files
  • Running background tasks at regular intervals
  • Creating file systems
  • Mounting, monitoring and repairing file systems
  • Managing file access
  • Backing up and restoring files and directories using standard utilities
  • Managing swap space
  • Adding printers to the system
  • Monitoring and controlling print jobs
  • Starting and shutting down the system
  • Customizing start-up and shutdown procedures
  • Monitoring system performance with the sar utility
  • Configuring syslog to manage system event messages
  • Carrying out various housekeeping procedures to manage disk space

  • Knowledge of UNIX
  • Knowledge of UNIX Shell Programming

IT staff responsible for the maintenance and day-to-day running of a SVR4 compatible UNIX system. Typically, where several different versions of UNIX systems are supported and the delegate needs knowledge of administration procedures common to all that adhere to SVR4 standards.

COURSE AGENDA

1

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
2

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
3

System I/O

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

Processes

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

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
6

Basic Interprocess Communication: Pipes

  • Interprocess Communication
  • Pipes
  • FIFOs
7

Signals

  • 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
8

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
9

Pthreads Synchronization

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

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
11

The Berkeley Sockets API

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

TCP Client Design

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

TCP Server Design

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

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

Encarta Labs Advantage

  • One Stop Corporate Training Solution Providers for over 4,000 Modules on a variety of subjects
  • All courses are delivered by Industry Veterans
  • Get jumpstarted from newbie to production ready in a matter of few days
  • Trained more than 50,000 Corporate executives across the Globe
  • All our trainings are conducted in workshop mode with more focus on hands-on sessions

View our other course offerings by visiting http://encartalabs.com/course-catalogue-all.php

Contact us for delivering this course as a public/open-house workshop/online training for a group of 10+ candidates.

Top