This repository contains solutions for the Systems Programming practical course at TUM.
.
├── README.md
├── task00-sort
├── task01-syscalls
├── task02-fileio
└── task03-processes
- External sort implementation under memory constraints
- Supports ascending and reverse order (
-r)
➡️ See: task00-sort/
- System call wrappers using
syscall() - Direct syscall invocation via inline assembly
- Minimal syscall tracer using
ptrace()
➡️ See: task01-syscalls/
- In-memory filesystem implemented using FUSE
- Supports hierarchical files and directories
- Read / write / append operations
- Symbolic links and filesystem statistics
- Log-based crash recovery (operation replay)
➡️ See: task02-fileio/
- Unix-like shell implementation
- Multi-stage pipeline execution using
pipe - Input / output redirection
- Background process execution
- Builtin process management commands:
waitkillexit
- Flex/Bison-based command parser
➡️ See: task03-processes/
Each task is self-contained.
Example:
cd task00-sort
makeRefer to the README inside each task directory for details.
- Target platform: Linux x86-64
- Languages: C / C++
- Each task is independent and can be built separately