• Igor Zhirkov. Low-Level Programming: C, Assembly, and Program Execution on Intel® 64 Architecture. Apress, 2017.

Про low level сейчас мало свежих книг, потому мимо этой пройти сложно. Но лучше бы и пройти, отложив на будущее. Озлоблённость и недоумение вызваны неудовлетворённым ожиданием. Я хотел книгу про ассемблер, процессоры, архитектуры, красивости и всякое такое. А получил методичку какую-то отечественному студенту.

В книге 446 страниц. Если убрать “технические” страницы (обложка, содержание, индекс, благодарности, титульные страницы глав и т.п.), а их 36, получим 410. Но ещё есть приложения: про gdb (9), make (5), семь из 333 syscalls (6), сводочка про перфтесты (3). Ещё минус 23 страницы, в остатке 387. Буду злобным и summary-страницы в конце каждой главы посчитаю ненужными: 17. Итого получаем книгу в 360 страниц.

Но… тадам! Со 127-й страницы по 220-ю нам пересказывают основы языка C! А с 221-й по 231-ю галопом про БНФ, AST и парсинг с семантикой. Зачем-то. А с 241-й страницы по 261-ю галопом про good code practices. Снова зачем-то. Эдак 120 страниц добавляю в минус. Осталось 240. Из которых 115 посвящены “Assembly Language and Computer Architecture” и 125 теме “Between C and Assembly”.

Вот сами подумайте, что можно уместить в 115 страниц по заданной теме? Правильно. Снова галопом. И автор прям сознательно указывает, что команды не описывает, мол, всё устаревает, топайте в интернеты, в мануалы от Intel, там научитесь. Ну офигеть мне удобно метаться туда-сюда, просто вот разе на десятом восторг от решения. Проверочные вопросы примерно из той же области: “What is the difference between sar and shr? Check Intel docs” — кхм, уважаемый Игорь, мне казалось, что задача учебника также и в том, чтобы рассказать мне об этой разнице, а не форвардить в мануалы Intel, которые я и без того почитаю. В общем, в сравнении с другими книгами эта тема разобрана просто никак. Очень конспективно, лишь бы зачёт сдать.

Единственное, за что хочется сказать “спасибо” — Between-тема. Она тоже конспективно, тоже галопом, но весь этот дайджест собран в одном месте и позволяет раскручивать интернеты более точечно и системно.

Итого… Ну, 125 страниц из 446. Я не знаю, кому и зачем нужна такая книга. Не знаю, кто ставил ей хорошие оценки на Амазоне. Есть гораздо более правильные книги по C. И гораздо более правильные о практике программирования. И про ассемблер, как уже знаю. Автор очевидно хорошо знает тему. Но нафига пытаться упихнуть в удава десять слонов? И о чём и для чего всё-таки книга? Практику всё равно после неё до фига молотить. Теоретику слишком мало написано. Интересующемуся (вот типа меня) слишком конспект и как-то… чуть дубово написано, пардон.

В общем, я грустно разочарован.