Home Consultancy Training Software

 

 

Course Syllabus
Unix/Linux/Posix Systems Programming

 

This Course is intended for programmers who wish to write programs which interface with the Unix/Linux kernel through the system call interface. Such programs may constitute a turnkey system where Unix or Linux is embedded.  Where differences in system implementation exist, the Posix standard is used.

 

* Introduction

- Facilities and Concepts

 

- Posix

* Input and Output

- Low level I/O; read, write, open, close

 

- The standard I/O library

 

- File status and fcntl

 

- File locking; advisory and mandatory

 

- Devices and the ioctl call

 

- Scatter/gather

 

- Memory mapped files

 

- File attributes

 

- Asynchronous I/O

 

- Directory management

 

 

* Processes

- Description of a process, creation with fork

 

- Running programs with exec

 

- Command line arguments and environment variables

 

- Waiting for processes

 

- Altering process attributes

 

- Real and effective users

 

- Memory Locking

 

 

* Timers

- Getting/setting the time

 

- Using Timers

 

 

* Signals

- Normal usage, catching, use as a communications method

 

- The non- local goto, longjmp

 

- Posix Enhanced signal mechanism

 

 

* Pipes

- Description, creation, use for process communication

 

- Pipes and the standard I/P and O/P, the dup system call

 

- FIFO’s

 

 

* Posix or System V IPC

- Message passing, Shared memory, Semaphores

 

 

* Threads

- Overview, Threads and Processes, implementations

 

- Thread creation and termination

 

- Thread scheduling

* Thread Synchronisation

- Mutexes

 

- Condition Variables

 

Notes

  1. Participants receive copies of all slide material.
  2. A comprehensive list of exercises is provided along with worked solutions.
  3. The Course is regularly updated to include new material.
  4. Emphasis on different aspects will change according to the participants interests.
  5. The Section on Inter Process Communication (IPC) uses either the Posix or System V model depending on the target system.
  6. Some knowledge of programming in C and a basic knowledge of Unix are prerequisites to this course.
  7. The length of the Course is normally four days.
  8. This course is often combined with our Network Sockets Programming in C course.