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
- Inter-process communication
- Process control blocks
- Process states
- Instruction set architecture (amd64, aarch64, rv64gc)
- Application binary interface (ABIs)
- Linux
aarch64
syscall ABI - x86-64 ABI
- .elf files
- Linux
- Kernel
- File descriptor
- Syscall (Linux syscalls)
exit_group
(exit status)fork
(spawning processes)
- Linux kernel
- Library
- Static libraries (link time)
- Dynamic libraries (runtime)
- Semantic versioning
Tools
- Windows Subsystem for Linux
- Docker
- Meson
- Linux utilities
strace
(syscalls)ldd
(dynamic libraries)- Valgrind (dynamic memory allocation)
man
(documentation manuals)
Extra notes
To compile with Meson: