Недавно у нас в гостях был
Игорь Подвойский — руководитель группы разработки компонентов мультимедиа в проекте KasperskyOS.
Игорь поделился большой подборкой книг и материалов для тех, кто хочет глубже разобраться в системной разработке, операционных системах, C/C++, Linux, архитектуре компьютеров и не только.
Сохраняйте:
Современная инженерная культура:
▫️«Software Engineering at Google» T. Winters
▫️«
Site Reliability Engineering» B. Beyer
▫️«How Google Tests Software» J. Whittaker
Для тех, кто хочет разрабатывать инфраструктуру:
▫️«Designing Data-Intensive Applications» M. Kleppmann
База для новичков:
▫️«Архитектура компьютера» Э. Таненбаум, Т. Остин
▫️«Современные операционные системы» Э. Таненбаум, Х. Бос
«
Программирование на языке ассемблера NASM для ОС Unix» А. Столяров
«
Архитектура операционной системы UNIX» M. Bach
«
The little book about OS development» E. Helin
Кое-что по Linux:
▫️«
Linux Device Drivers» J. Corbet, A. Rubini, G. Kroah-Hartman
▫️«
The Linux Kernel Module Programming Guide» P. Salzman
▫️«
Writing device drivers in Linux: A brief tutorial» X. Calbet
По операционным системам:
▫️«
xv6 А simple, Unix-like teaching operating system» R. Cox
▫️
Исходник xv6
Исчерпывающая открытая книга по параллельному программированию:
▫️«
Is Parallel Programming Hard, And, If So, What Can You Do About It?» P. McKenney
Про память, кэши и прочее:
▫️«
What Every Programmer Should Know About Memory» U. Drepper
Оптимизация на C, C++ и ассемблере для x86:
▫️
Software optimization resources
По алгоритмам:
▫️«
Алгоритмы» С. Дасгупта
▫️«
Competitive Programmer's Handbook» A. Laaksonen
Математика для программистов:
«▫️
Математика для программистов» Д. Юричев
Введение в ассемблер для ARMv8:
▫️
A Guide to ARM64 / AArch64 Assembly on Linux with Shellcodes and Cryptography
Современный C:
▫️«
Modern C» J. Gustedt
Введение в разработку бэкенда компилятора:
▫️«
Essentials of Compilation» J. Siek
Список для разработчиков компиляторов от Квентина Карбоне:
▫️
Resources for Amateur Compiler Writers