1 Building Blocks of Unix and Linux
Overview
Processes and Threads
Filesystem
Kernel
User Space
2 Demo Sessions
Processes
Everything is a File
3 Programming Basics
Toolchain and Software
Build
System Calls vs. Library
Functions
Error Handling
Exercises
4 File I/O
Basics
Exercises
Duplicating
Miscellaneous
Exercises
What Has Happened
5 Processes
Basics
Process Attributes
Life Cycle of Processes
Exercise: Processes
Signals
Exercise: Signals
6 File System
Owner, Permissions
Directories and Links
7 POSIX Threads
Basics
Thread Life Cycle
Exercises: Thread
Creation, Race
Condition
Synchronization
Exercises: Mutex
Communication
Exercises: Condition
Variable
Miscellaneous
Last Warning
8 Scheduling and Realtime
Basics
Realtime
Priority Inversion
9 Sockets
Basics
TCP/IP Sockets
Exercises: TCP/IP
UNIX Domain Sockets
Ubung: UNIX Domain ¨
Sockets
10 I/O Multiplexing
Basics
Exercise: select() and
poll()
Signal Handling,
Revisited: signalfd()
Exercise: signalfd()
Timers:
timerfd create()
Arbitrary Events:
eventfd()
Exercise: eventfd()
File Change Events:
inotify
11 Virtual Memory
Virtual Memory
Memory Mappings
Memory Mappings:
System Calls
12 POSIX IPC
Basics
Message Queues
Semaphores
Shared Memory
Exercise: POSIX
Message Queues
13 Shared Libraries
Basics
Building and Using
Explicit Loading
14 Closing Words
Books
Summary