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