Linux Systems Programming (Course Series)¶
Courses¶
Systems Programming in Linux is a series of courses, each of about two or three days worth of content (mixed lecture and exercises).
Linux Systems Programming: Introduction. A big picture of Linux/UNIX programming is given, serving as the basis for all other courses in this series.
Shell intro
Everything is a file
Toolchain, and Debugging
Core concepts: processes, files and directories, and permissions
Linux Systems Programming: Network Programming. A thorough walkthrough of network programming.
Paradigms, and basic system calls (
socket()
,connect()
,bind()
,listen()
,accept()
)TCP/IP networking: TCP and UDP communication
UNIX domain sockets
CAN-Bus networking (optional)
Async:
select()
,poll()
, andepoll()
Linux Systems Programming: Multithreading.
Introduction to POSIX Threads
Race conditions, and locking mechanisms
Communication mechanisms
Realtime
Linux Systems Programming: Virtual Memory, IPC, Shared Libraries.
Virtuelles memory
POSIX IPC: semaphore, message queues
Linux specific system calls:
signalfd()
,timerfd_create()
, oreventfd()
Prerequisites¶
Attendees should be fluent in C.