What to Learn Next & Final Checklist
Where to go after this course, and a checklist to confirm you have mastered every topic.
What to Learn Next
Build a kernel: work through xv6 (MIT 6.S081) or write a tiny kernel for RISC-V with QEMU.
Linux internals: *Linux Kernel Development* (Love), the kernel documentation, and writing a simple kernel module on a test machine.
Computer architecture in depth: *Computer Organization and Design* (Patterson & Hennessy) and *Computer Architecture: A Quantitative Approach* (Hennessy & Patterson).
Operating systems in depth: *Operating Systems: Three Easy Pieces* (Arpaci-Dusseau, free online).
Performance: *Systems Performance* (Brendan Gregg), perf and eBPF tools.
Embedded and real-time: FreeRTOS or Zephyr on a microcontroller; the EngiLipi Embedded, RTOS and Microcontroller sections.
Hardware design: Verilog/VHDL on an FPGA — build the TinyCPU of Module 6 in hardware.
Final Course Checklist
☐ Layers of abstraction ☐ Binary, two's complement, IEEE 754 ☐ Logic gates and adders ☐ Flip-flops and registers ☐ ALU and flags ☐ ISAs: x86-64, ARM64, RISC-V ☐ Fetch-decode-execute ☐ Assembly and calling conventions ☐ Kernel vs user mode ☐ Linking and loading (ELF) ☐ Processes: fork, exec, wait ☐ System calls and strace ☐ Interrupts, exceptions, signals ☐ CPU scheduling ☐ Synchronization ☐ Deadlock and Banker's algorithm ☐ Memory hierarchy and caches ☐ Virtual memory and TLB ☐ Page replacement ☐ Memory allocation ☐ File systems ☐ I/O, DMA, storage ☐ Pipelining and hazards ☐ Branch prediction and OoO ☐ Cache coherence and memory ordering ☐ Virtualization and containers ☐ Boot and platform protection ☐ Performance analysis ☐ Tracing a system call end to end ☐ Interview preparation
EngiLipi — Learn Engineering and Technology from Fundamentals to Advanced Practice