This project belongs to the practical course Advanced Systems Programming in C/Rust
- task1_syscalls: use
syscall API
andasm assembly
to implement read/write; useptrace
mechanism to trace a subprocess'sread/write
syscall and its return value - task2_fileio: use
FUSE API
to implement a in-memory filesystem - task3_process: implement an
interactive shell
(including pipeline and builtin commands) - task4_concurrency: implement
spinlock
(based on CAS),lock-based hashmap
andlock-free hashmap
- task5_memory: implement an efficient heap memory management(malloc, free, calloc, realloc) by reusing/spliting/merging free blocks; implement a
thread-safe
malloc by TLS - task6_sockets: implement a TCP/IP server(with multithreaded
epoll
) and client - task7_performance:
gdb
,perf
,bcc
,flamegraph
, etc. - task8_container: build a sandbox based on the Linux
namespace
mechanism