Linux (Posix) Systems Programming - Course Syllabus

(This page uses style sheets.)

This Course is intended for programmers who wish to write programs which interface with the Linux kernel through the system call interface. Such programs may constitute a turnkey system where Linux is embedded.

Introduction
Facilities and Concepts
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
Standard I/P and O/P; getchar and putchar
Devices and the ioctl call
Streams
Directories 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
Pipes
Description, creation, use for process communication
Pipes and the standard I/P and O/P, the dup system call, FIFO's
Signals
Normal usage, catching, use as a communications method
The non- local goto, longjmp
Enhanced signal mechanism of System V.3 and Posix
System V IPC
Message passing, Shared memory, Semaphores

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 Course is geared towards Unix System V or POSIX.1 though most is applicable to other variants.
  6. A 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.