Milestone map
3 milestones
Understand Process Management and Implement a Shell
8–16 weeks (includes C and UNIX systems programming prerequisites)
Study process management: process states, the fork-exec model, process scheduling (FIFO, round-robin, priority scheduling), and inter-process communication (pipes, signals). Implement a simple UNIX shell in C or Python that supports: command execution (fork-exec), input/output redirection, pipes between two commands, and background processes with &.
Proof required
Submit: a public GitHub repository containing your shell implementation with a test script demonstrating: command execution, input/output redirection, a pipe between two commands, and a background process; and a 200-word explanation of why fork() creates a copy of the entire address space and what the OS does to make this efficient. A CS lecturer or systems programmer must confirm the implementation is correct and the explanation is accurate.
What gets checked
Common mistakes
Resources
Foundationstart here
Depthgo deeper
What a verifier looks for
You'll sign in first, then come straight back here.
Implement a Memory Allocator and Study Virtual Memory
8–14 weeks (after milestone 1)
Study virtual memory: page tables, TLBs, demand paging, and page replacement (LRU, clock). Implement a simple memory allocator in C using mmap or sbrk: support malloc, free, and realloc with a first-fit free list. Write a test harness demonstrating correct allocation, deallocation, and fragmentation behaviour.
Proof required
Submit: a public GitHub repository containing your memory allocator implementation with a test harness showing: correct allocation and deallocation, free list merging, and a fragmentation demonstration (alloc/free pattern that causes fragmentation, and your handling of it); and a 200-word explanation of why internal and external fragmentation occur and how your allocator addresses each. A CS lecturer or systems programmer must confirm the implementation is correct.
What gets checked
Common mistakes
Resources
Foundationstart here
Depthgo deeper
What a verifier looks for
You'll sign in first, then come straight back here.
Present OS Knowledge and Answer Systems Programming Questions
4–6 weeks (after milestone 2)
Write a systems analysis (400 words) explaining how your shell and memory allocator interact with the operating system kernel — what system calls each makes, what the kernel does in response, and what the performance implications are. Present to a CS lecturer or systems programmer who poses at least two novel systems questions you must answer in real time.
Proof required
Submit: a systems analysis (at least 400 words) tracing the kernel interactions of your shell and allocator; and a recording or transcript of a live review with a CS lecturer or systems programmer where they posed at least two novel systems questions and you responded.
What gets checked
Common mistakes
Resources
Foundationstart here
Depthgo deeper
What a verifier looks for
You'll sign in first, then come straight back here.