Week 1: General Linux Introduction - Emacs and shell
- GUI vs CLI
- File System
- Hard/Symbolic links
- File permission/chmod
- Commands in Shell
Week 2: Bash Scripting
- Bash
- Bash pipes (stdin vs stdout vs stderr)
- Pathing (relative vs absolute)
- Echo
- Regular expression (grep & sed)
- While and for loops in bash
Week 3: Building and Compiling
- Configure and Make
- Patch and Diff
- Python scripting
Week 4: Bash Scripting
- Compiling with make
- Basic make file
- Using dependencies
- Variables and comments
- Git
- SHA5 Hash
- Repo
- add/commit/pull/push/fetch/clone
- Branch
- Tags
Week 5: Debugging in C
- Debugging with gdb (jesus christ this is disgusting)
Week 6: Setting up an SSH server
- Private vs Public keys
- Possible spoofing tactics and bypasses
- SSH agent
Week 7: System calls
- read/write vs putchar/getchar
- buffers
- Kernel mode vs user mode
- Why are system calls slow?
Week 8: Multithreading and processing
- Multithreading
- Cores
- p_threads
- Mutex/atomic operations
- Deadlock problems
- Multiprocessing
Week 9: Dynamic Linking vs Static Linking
- Speed differences between them
- GCC flags
- attribute((constructor)) and attribute((constructor))
Week 10: Presentations
More information in: