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.