Фактически, когда я начал заниматься разработкой для Linux, книгой, которая дала мне хорошее представление о роли ОС, было «Справочное руководство по архитектуре ARM».
Я понял основные понятия о том, как работает процессор общего назначения:
различные режимы (супервизор, пользователь и т. Д.), Концепция виртуальной памяти, страница, таблица страниц. Различные стеки и т.д ...
И затем, все эти вещи, касающиеся пространства пользователя, пространства ядра, системного вызова, процесса, контекста выполнения потока и т. Д., Очень хорошо вписались в ментальную модель моего процессора.
Затем я прочитал «Драйвер устройства Linux», это было второе издание, но с тех пор было опубликовано третье, и оно показало мне аспект работы ОС. Итак, книга по программированию в порядке, но понимание того, как работает процессор, очень помогает