Необходимый минимум знаний системного программиста, который имеет дело с архитектурами и ОСями, содержится в уникальной книге: Рэндал Э. Брайант, Дэвид О'Халларон Компьютерные системы. Архитектура и программирование.
По этой книге есть онлайн курс: www.coursera.org/course/hwswinterface
Касаясь вообще, "всего, что должен знать программист" - не могу не посоветовать эту замечательную статью, опирающуюся на элитарное американское высшее образование в области CS, и имеющую самое, что ни на есть практическое применение:
habrahabr.ru/post/251747