You probably want to read the wiki ... https://github.com/angrave/SystemProgramming/wiki
Angrave's Crowd-Sourced System Programming Book used at UIUC