Course covers operating systems and systems programming with a focus on Linux and UNIX-based systems. Followed by ECE454 — Computer Systems Programming.
Concepts covered
- Virtualisation
- Virtual memory
- Process
- Instruction set architecture (amd64, aarch64, rv64gc)
- Application binary interface (ABIs)
- Linux
aarch64
syscall ABI - x86-64 ABI
- .elf files
- Linux
- Kernel
- Library
- Static libraries (link time)
- Dynamic libraries (runtime)
- Semantic versioning
- Linux utilities
strace
(syscalls)ldd
(dynamic libraries)- Valgrind (dynamic memory allocation)
Tools
Extra notes
To compile with Meson: