Linux/UNIX IPC Programming course outline
- Course Introduction
- IPC: Introduction and Overview
- Categorizing IPC
- Choosing an IPC mechanism
- Fundamentals
- Error handling
- Notes on code examples
- Pipes and FIFOs
- Preamble: file descriptors and file descriptor duplication
- Creating and using pipes
- FIFOs
- Connecting filters with pipes
- Sockets: Concepts and UNIX Domain
- Socket types and domains
- Creating and binding a socket
- System calls: stream sockets
- UNIX domain stream sockets
- System calls: datagram sockets
- UNIX domain datagram sockets
- Further details of UNIX domain sockets
- UNIX Domain Sockets: Ancillary Data (*)
- Ancillary data
- Ancillary message types
- Example: passing a file descriptor over a socket
- Further details
- Sockets: Internet Domain
- Internet domain sockets
- Data-representation issues
- Loopback and wildcard addresses
- Host addresses and port numbers
- Host and service conversion
- Internet domain sockets example
- Additional sockets system calls
- Alternative I/O Models
- Nonblocking I/O
- Signal-driven I/O
- I/O multiplexing: poll()
- Event-loop programming
- Alternative I/O Models: epoll
- Problems with poll() and select()
- The epoll API
- epoll events
- Edge-triggered notification
- epoll API quirks
- eventfd
- Overview of eventfd
- eventfd operations
- Semaphore semantics for eventfd
- POSIX IPC
- POSIX Semaphores
- Named semaphores
- Semaphore operations
- Unnamed semaphores
- POSIX Shared Memory
- Overview
- Creating and opening shared memory objects
- Using shared memory objects
- Synchronizing access to shared memory
- POSIX Message Queues
- Opening, closing, and unlinking a message queue
- Message queue attributes
- Sending and receiving messages
- The mqueue filesystem
- Message queue limits and defaults
- Message notification (*)
- Message notification via a signal (*)
- Message notification via a thread (*)
- Other IPC methods (*)
- Pseudoterminals
- File locks
- Cross-memory attach
- Shared file mappings
(*) Topics marked with an asterisk will be covered subject to time
constraints.
Return to the course overview