Resources

Please consult the course's main page.

Week 1

Topics:
Basic Operating Systems concepts.
Working with the console (GNU/Linux + bash).
Console stdin, stdout, stderr, redirects, pipes. Bash: cat, echo, cut, grep, head, tail, less, stat, find.
Basic C OS programming.
Filesystem tree walk, dirent.h.
screen/tmux, strace, gdb.

Basic script: shell script that compiles the given argument, assuming it to be a C file
make.sh

Week 2

Topics:
The fork() function.
The exec() family of functions.
Pids, signals. Assigning signal-specific behaviour.
kill, killall, ps, top. Ctrl-z, jobs, bg, fg, & .

Week 3

Topics:
Interprocess communication. Fifos, Pipes and file descriptor duplication.

Week 4

Topics:
Interprocess communication. local sockets, socketpairs.

Week 5

Topics:
Network programming basics. System tools (ip, ifconfig, traceroute, netstat, wireshark).

Week 6

Topics:
Network communication. remote sockets, client/server applications, sequential/iterative servers. GNU Makefile.

Week 7

Topics:
Concurrent servers.