*Буду весьма благодарен за репост или любую иную помощь в распространении*
Друзья, в июне в издательстве Apress (часть Springer) выходит моя книжка "Low-level Programming: C, Assembly, and Program Execution on Intel 64 architecture". Она про низкоуровневое программирование, а именно:
- ассемблер для Intel 64;
- детально о самых нужных аспектах архитектуры компьютера (регистры, виртуальная память, кольца защиты, системные вызовы);
- С11 и как писать на нём хорошо;
- кое-что про модели вычислений и зачем они нужны на практике;
- как происходят основные стадии компиляции и линковки, какая информация есть в ELF;
- как выглядят оттранслированные программы и почему именно так;
- как устроены динамические библиотеки;
- многопоточность;
- что такое модели памяти и реордеринги.
Я прикрепил сюда черновик введения (до редакции и верстки) с оглавлением для лучшего представления о структуре книги.
Лучшее предложение на бумажную версию сейчас на Амазоне (предзаказ): https://www.amazon.com/Low-Level-Programming-Assembly-Execution-Architecture/dp/1484224027
Я постарался сделать книгу максимально доступной и информативной и отразить в ней своё видение этой области. Акцент сделан на том, чтобы дать достаточно полное понимание вышеперечисленных пунктов "без магии" и научить работать с важными источниками информации (документация), а не переписывать стандарты и руководства для всего подряд.
В составе около 12-ти лабораторных работ и 425 вопросов для закрепления материала или самостоятельной проработки. Ко всем будут опубликованы ответы/решения на GitHub.
Прообразом для книги послужила методичка, собравшая в себе фактически конспект лекций по моему курсу "Языки системного программирования" в ИТМО. Курс получился достаточно успешным (насколько это возможно в контексте ИТМО), что демонстрируют великолепные итоговые проекты некоторых студентов. Видеодемонстрации можно посмотреть в нашей группе. Надеюсь, что с полноценной книжкой будет еще лучше.
В книжке материала больше, он актуальнее и лучше подан. Это получилось благодаря отзывам моих студентов и коллег. Главные добавления: многопоточность, модели памяти, подробный рассказ про динамические библиотеки и C11.
Я очень благодарен всем помогающим мне в преподавании и написании книжки: моим старшим и младшим коллегам Павлу Балакшину, Николаю Лукьянову, Никите Пичугину, Владу Гусеву, Евгению Иванову, Михаилу Косякову и всем другим; моим замечательным студентам этих лет; спасибо Ивану Логинову, Валерию Кирееву, Дмитрию Халанскому, Ивану Олейникову за помощь в правке черновика; наконец, всем моим друзьям, кто поддерживал меня эти долгие шесть лет написания книги. Иногда лишь вы удерживали меня от того, чтобы всё не забросить :)